0

RCP アプリケーションには 2 つのビューがあり、タスク (バックグラウンド操作) を実行しています。操作のステータスはビュー 1 に表示されます。私が達成しようとしているのは、進行中のタスク中に、ユーザーが他のビューに移動/トラバースできないようにすることです。それら(他のビュー)は無効にする必要があります。

回避策として、IWorkbenchPage の showView メソッドを使用してみました。

activePage.showView(view.ID,null,IWorkbenchPage.VIEW_VISIBLE);

VIEW_VISIBLE、VIEW_ACTIVATE、VIEW_CREATE の 3 つの定数を使用しました。ただし、私の場合は何も機能しませんでした。ちなみに、showView メソッドの署名では、セカンダリ ID とは何かを理解できませんでした。

以下は私の問題のシミュレートされたデモです ここに画像の説明を入力

ここで、ユーザーは操作中にデモを表示するためにトラバースできますが、実際にはそうすべきではありません。どうすればこれを解決できますか、アイデアを教えてください。

4

3 に答える 3

3

ビューを実際に無効にすることはできません (「無効なビュー」という概念はありません)。あなたができる唯一のことは、それを隠すことです。これを行うには hideView() メソッドを使用します。

于 2012-05-24T08:20:49.543 に答える
2

これを行う別の方法はProgressService、操作の進行中にモーダル進行状況ダイアログを表示するためにを使用することです。このように、ユーザーはUIを操作する前に、操作が完了するまで待つ必要があります。

PlatformUI.getWorkbench().getProgressService().run(true, false, runnable);  

http://wiki.eclipse.org/FAQ_Why_should_I_use_the_new_progress_service%3Fを参照してください

于 2012-05-24T08:33:37.487 に答える
1

他の SWT コントロールを無効にするのと同じように、ビューを無効にできsetEnabled(false)ますComposite。多くの場合、オーバーライドによって行われますViewPart.showBusy(...)...

于 2012-05-26T08:59:32.027 に答える