2

ビューのみでエディターを持たない内部 Eclipse RCP アプリケーションがあります。

WorkBenchAdvisor で Eclipse saveAndRestore API を使用して、ワークベンチの状態を保存および復元します。期待どおりに動作します。

ユーザー権限に基づいてビューの表示を制御します。

アプリケーションに 2 人のユーザーがいるとします。マネージャー兼従業員。マネージャーがログインするとすべてのビューが表示され、従業員がログインすると一部のビューが非表示になります。ここまでは順調ですね。

マネージャーがログインしてすべてのビューを開き、アプリケーションを閉じたとします。従業員が同じマシンにログインするようになりました。問題は、日食がワークベンチの状態を復元するため、従業員が権限を持たないビューも復元されることです。

復元されたビューに対するユーザーの許可を確認し、それに応じてそれらを表示しないことができる、Eclipse によって提供されるプレースホルダーはありますか?

この問題を解決する方法についてアドバイスをお願いします。

ユーザーの認証は、WorkBenchAdvisor で開かれたログイン ダイアログを使用して行われます。

使用した Eclipse バージョン: 3.7

あなたの助けに感謝。

ありがとう

4

2 に答える 2

2

拡張ポイントの定義にrestorableフラグがあります。これにより、開始時にビューを復元しないようにすることができます。vieworg.eclipse.ui.views

于 2013-10-31T09:43:46.293 に答える
2

ビュー ステートを memento に永続化する場合は、ビューを表示できるユーザーに関する追加情報を保存します。saveState(IMemento memento)あなたのビューでそのオーバーライドのために。その後、すべてがロードされたら、関連のないビューを強制的に閉じることができます ( のメソッドを確認してくださいWorkbenchWindowAdvisor)。

別の可能性は、ビューの方法を投入PartInitExceptionすることです。initこれにより、コンテンツの代わりに、指定したエラー メッセージ (「このビューを開く権限がありません」など) が表示されたままビューが開きます。

于 2013-10-31T07:58:13.607 に答える