use of javafx.scene.control.TreeTableView in project Gargoyle by callakrsos.
the class CustomSkinConfigView method initialize.
@FXML
public void initialize() {
ttvIConfig.setRowFactory(new Callback<TreeTableView<ConfigurationTreeItem>, TreeTableRow<ConfigurationTreeItem>>() {
@Override
public TreeTableRow<ConfigurationTreeItem> call(TreeTableView<ConfigurationTreeItem> param) {
TreeTableRow<ConfigurationTreeItem> treeTableRow = new TreeTableRow<>();
treeTableRow.setOnMouseClicked(ev -> {
ConfigurationTreeItem item = treeTableRow.getItem();
selectedItem.set(item);
});
return treeTableRow;
}
});
ttcConfig.setCellValueFactory(param -> param.getValue().getValue().itemNameProperty());
ConfigurationTreeItem root = new ConfigurationTreeItem();
root.setItemName("Basic");
{
ConfigurationLeafNodeItem fontConfigItem = new ConfigurationLeafNodeItem();
fontConfigItem.setItemName("Font Management");
fontConfigItem.setContentNode(FontViewComposite.class);
ConfigurationLeafNodeItem backgroundConfigItem = new ConfigurationLeafNodeItem();
backgroundConfigItem.setItemName("Color Management");
backgroundConfigItem.setContentNode(SkinPreviewViewComposite.class);
root.setChildrens(Arrays.asList(fontConfigItem, backgroundConfigItem));
}
TreeItem<ConfigurationTreeItem> createNode = new ConfigItemTreeItem().createNode(root);
createNode.setExpanded(true);
ttvIConfig.setRoot(createNode);
ttvIConfig.setOnMouseClicked(ev -> {
if (ev.getClickCount() == 2) {
load(selectedItem.get());
}
});
selectedItem.addListener((oba, o, n) -> {
btnEdit.setDisable(true);
if (n instanceof ConfigurationLeafNodeItem) {
if (((ConfigurationLeafNodeItem) n).getContentNode() != null) {
btnEdit.setDisable(false);
}
}
});
}
Aggregations