Eclipse CheckboxTreeViewerノード選択状態の初期化
CheckboxTreeViewerコントロールを使用する場合、選択した状態を初期化します.コードは次のとおりです.
初期化:
キーコードは次の文です.
これにより、ノードのデータソースオブジェクトを取得し、プロパティに基づいて検索する必要がなくなります.
// Create the tree viewer to display the file tree
tv = new CheckboxTreeViewer(composite);
// When user checks a checkbox in the tree, check all its children
tv.addCheckStateListener(new ICheckStateListener() {
public void checkStateChanged(CheckStateChangedEvent event) {
// If the item is checked . . .
if (event.getChecked()) {
// . . . check all its children
tv.setSubtreeChecked(event.getElement(), true);
}
}
});
tv.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
tv.setContentProvider(new FileTreeContentProvider());
tv.setLabelProvider(new FileTreeLabelProvider());
初期化:
IProjectDescription description = project.getDescription();
String[] natures = description.getNatureIds();
TreeItem[] list = tv.getTree().getItems();
//
for (TreeItem item : list) {
Element element = (Element) item.getData();
for (String nature : natures) {
if (element.elementText("natureId").equals(nature)) {
item.setChecked(true);
}
}
}
キーコードは次の文です.
Element element = (Element) item.getData();
これにより、ノードのデータソースオブジェクトを取得し、プロパティに基づいて検索する必要がなくなります.