Java 类javafx.scene.control.TreeItem.TreeModificationEvent 实例源码
项目:org.csstudio.display.builder
文件:TreeHelper.java
/** Trigger a redraw of a tree item
*
* <p>Call when the model item's representation changed,
* so tree item with existing value object needs to be
* redrawn.
*
* @param item {@link TreeItem}
*/
public static <TV> void triggerTreeItemRefresh(final TreeItem<TV> item)
{
// TreeView or TreeItem has no 'refresh()', update or redraw method.
// 'setValue' only triggers a refresh of the item if value is different
//
// final TV value = item.getValue();
// item.setValue(null);
// item.setValue(value);
// The API does expose the valueChangedEvent(), so send that
Event.fireEvent(item, new TreeModificationEvent<TV>(TreeItem.<TV>valueChangedEvent(), item, item.getValue()));
}
项目:drive-uploader
文件:DriveDirectoryChooserViewController.java
private TreeItem<File> createNode (File dir) {
TreeItem<File> treeItem = null ;
if (dir == null) {
treeItem = new TreeItem<File>();
treeItem.setExpanded(true);
} else {
treeItem = new TreeItem<File>(dir) {
private Boolean isLeaf = null ;
@Override
public boolean isLeaf() {
if (isLeaf != null) {
return isLeaf.booleanValue() ;
}
try {
FileList children = DriveUtils.findDirectories (drive, DriveUtils.newId(dir.getId()), Integer.valueOf(1)) ;
isLeaf = Boolean.valueOf(children.getItems() == null || children.getItems().isEmpty()) ;
return isLeaf.booleanValue() ;
} catch (IOException e) {
logger.error("Error occurred while getting children list", e);
}
return true;
}} ;
treeItem.setExpanded(false);
}
treeItem.addEventHandler(TreeItem.branchExpandedEvent (), new EventHandler<TreeModificationEvent<File>>() {
@Override
public void handle(TreeModificationEvent<File> arg0) {
if (TreeItem.branchExpandedEvent ().equals(arg0.getEventType())) {
logger.info("Branch expanded");
TreeItem<File> node = arg0.getTreeItem() ;
File nodeFile = node.getValue() ;
if (node.getChildren().isEmpty()) {
try {
FileList children = DriveUtils.findDirectories (drive, DriveUtils.newId(nodeFile.getId()), null) ;
if (children != null && children.getItems() != null) {
for (File child : children.getItems()) {
node.getChildren().add(createNode(child));
}
}
} catch (IOException e) {
logger.error("Error occurred while expanding the tree", e);
}
}
}
}
});
return treeItem ;
}