Edit C:\Program Files\Java\jdk1.8.0_121\javafx\scene\control\cell\DefaultTreeCell.java
/* * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package javafx.scene.control.cell; import javafx.beans.InvalidationListener; import javafx.beans.Observable; import javafx.beans.WeakInvalidationListener; import javafx.scene.Node; import javafx.scene.control.TreeCell; import javafx.scene.control.TreeItem; import javafx.scene.layout.HBox; import java.lang.ref.WeakReference; /* * Package-protected class used by cell implementations to handle graphics changes * to TreeItem. */ class DefaultTreeCell<T> extends TreeCell<T> { private HBox hbox; private WeakReference<TreeItem<T>> treeItemRef; private InvalidationListener treeItemGraphicListener = observable -> { updateDisplay(getItem(), isEmpty()); }; private InvalidationListener treeItemListener = new InvalidationListener() { @Override public void invalidated(Observable observable) { TreeItem<T> oldTreeItem = treeItemRef == null ? null : treeItemRef.get(); if (oldTreeItem != null) { oldTreeItem.graphicProperty().removeListener(weakTreeItemGraphicListener); } TreeItem<T> newTreeItem = getTreeItem(); if (newTreeItem != null) { newTreeItem.graphicProperty().addListener(weakTreeItemGraphicListener); treeItemRef = new WeakReference<TreeItem<T>>(newTreeItem); } } }; private WeakInvalidationListener weakTreeItemGraphicListener = new WeakInvalidationListener(treeItemGraphicListener); private WeakInvalidationListener weakTreeItemListener = new WeakInvalidationListener(treeItemListener); public DefaultTreeCell() { treeItemProperty().addListener(weakTreeItemListener); if (getTreeItem() != null) { getTreeItem().graphicProperty().addListener(weakTreeItemGraphicListener); } } void updateDisplay(T item, boolean empty) { if (item == null || empty) { hbox = null; setText(null); setGraphic(null); } else { // update the graphic if one is set in the TreeItem TreeItem<T> treeItem = getTreeItem(); if (treeItem != null && treeItem.getGraphic() != null) { if (item instanceof Node) { setText(null); // the item is a Node, and the graphic exists, so // we must insert both into an HBox and present that // to the user (see RT-15910) if (hbox == null) { hbox = new HBox(3); } hbox.getChildren().setAll(treeItem.getGraphic(), (Node)item); setGraphic(hbox); } else { hbox = null; setText(item.toString()); setGraphic(treeItem.getGraphic()); } } else { hbox = null; if (item instanceof Node) { setText(null); setGraphic((Node)item); } else { setText(item.toString()); setGraphic(null); } } } } @Override public void updateItem(T item, boolean empty) { super.updateItem(item, empty); updateDisplay(item, empty); } }
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de