コンテキスト: Netbeans プラットフォーム RCP ベースの Lua IDE を設計しています。ユーザーが簡単にファイルを有効/無効にしたり、エイリアスを追加してビルド時にファイルの名前を変更できるようにするビルド システムを実装しました。UI の観点から、ファイルの有効化と無効化を簡素化するために、プロジェクトの論理タブのカスタム ノードの横にチェックボックスを配置する必要があると感じています。
問題: デフォルトのビューはルックアップで CheckableNode を尊重しないため、デフォルトの BeanTreeView を Outline ビューに置き換えたいと考えています。これを行う最善の方法はわかりませんが、私たちが考案した解決策は間違った方法のようです。コンポーネントのサイズが適切に変更されず、ネイティブ BeanTreeView のように起動時にノードが自動展開されません。
実装の詳細: DataObject ノード デリゲートをプロキシする FilterNode を作成しました。また、ルックアップに独自のプロパティ セットを追加し、CheckableNode を実装するクラスを追加しました (したがって、アウトライン ビューの左側にチェックボックスがあります)。
これが現在の外観です。これがまさに私たちが望んでいる外観です。
インストールに使用したコードは次のとおりです。
final String PROJECT_LOGICAL_TAB_ID = "projectTabLogical_tc";
WindowManager.getDefault().invokeWhenUIReady(new Runnable() {
@Override
public void run() {
TopComponent findTopComponent = WindowManager.getDefault().findTopComponent(PROJECT_LOGICAL_TAB_ID);
if (findTopComponent != null) {
Component[] components = findTopComponent.getComponents();
for (Component component : components) {
component.setVisible(false);
}
OutlineView myView2 = new OutlineView("Filename");
Outline outline2 = myView2.getOutline();
outline2.setRootVisible(false);
outline2.setTableHeader(null);
findTopComponent.add(myView2, BorderLayout.CENTER);
findTopComponent.revalidate();
findTopComponent.validate();
findTopComponent.repaint();
}
}
});
前もって感謝します。