2011-01-12 10 views
1

私はEclipseプラグイン開発の下で働いています。いくつかのオブジェクトを表示および変更するために2つのビューパーツを実装しました。各ビューパーツは、修正されたオブジェクトを保存し、ツールバーに保存ボタンを有効にするためにISaveablePartを実装します。Eclipseツールバーで保存アクションを有効にするにはどうすればよいですか?

問題がある:私はプロジェクトエクスプローラで私のオブジェクトを選択すると、保存ボタンが有効になっていない、だけすべて保存が有効になっています。

この場合、保存ボタンを有効にする機能はありますか?

答えて

3

上記のとおり、最初にISaveablePartを実装する必要があります。

イベントを起動する必要があります(IWorkbenchPartConstants.PROP_DIRTYを参照)。これは、エディタに汚れているかどうか尋ねます(ISaveablePart#isDirty())。答えがtrueの場合、保存ボタンが有効になります。

例としてFormEditor#editorDirtyStateChanged()を参照してください。

+0

ご協力いただきありがとうございます。私はすでにPROP_DIRTYの実行を実装しましたが、まだ問題があります。私はISaveablePartを実装し、汚れているので、私はそれらにフォーカスを設定すると、SAVEボタンが有効になって2つのビューがあります。これらのビューは、ProjectExplorerで選択されたオブジェクトのプロパティを変更します(オブジェクトをダーティにします)。したがって、質問:これらのビューではなく、ProjectExplorerにフォーカスが設定されているときに、どのようにSAVEボタンを有効にするのですか?選択されたオブジェクトが汚れてフォーカスがそこにない場合、SAVEボタンを有効にする方法を意味します。 – deephace

+0

Eclipseフレームワークで自然にサポートされていないことをしようとしています。各パーツには独自のライフサイクルの保存があります。唯一の方法は、作業がすべての部品をある種のグローバルハンドラに登録することです。それを回避する方法はありません。 ProjectExplorerはISaveablePartを実装する必要があります。つまり、独自のロールを作成する必要があります。 – andyczerwonka

+0

お返事ありがとうございます!確かに、唯一の方法は自分のCommonNavigatorを実装することですが、依然として多くの問題があります。 – deephace

関連する問題