私のEclipse RCPアプリケーションには、ダブルクリック後に表示される要素を描画するために、さまざまなエディターを選択できるTreeViewerがあります。私のトップメニューには、描画を有効/無効にするオプションがあります。エディターのアクションは次のようになります。
public class EnableEditorAction implements IEditorActionDelegate {
IEditor hallEditor = null;
@Override
public void run(IAction action) {
if (hallEditor != null){
hallEditor.setMachineHallEditMode(true);
}
}
@Override
public void setActiveEditor(IAction action, IEditorPart targetEditor) {
// check for enabled
boolean bEnabled = false;
if (targetEditor != null && targetEditor instanceof IMachineHallEditor) {
hallEditor = (IMachineHallEditor) targetEditor;
bEnabled = !hallEditor.isMachineHallEditingMode();
}
action.setEnabled(bEnabled);
}
@Override
public void selectionChanged(IAction action, ISelection selection) {
if (hallEditor != null) {
action.setEnabled(!hallEditor.isMachineHallEditingMode());
}
}
}
私が抱えている問題は、エディター内をクリックしたときにのみメニューオプションが有効になることです。私が望むのは、左側の TreeViewer のエディタの 1 つをクリックした後も、メニュー オプションを有効にすることです。
どうすればいいですか?