protected void fireTreeNodeChanged(Layer layer) { TreeModelEvent event = createTreeModelEvent(layer); for (TreeModelListener treeModelListener : treeModelListeners.keySet()) { treeModelListener.treeNodesChanged(event); } }
@Override public void handleLayerDataChanged(Layer layer, Rectangle2D modelRegion) { SwingUtilities.invokeLater(() -> fireTreeNodeChanged(layer)); }
@Override public void handleLayersRemoved(Layer parentLayer, Layer[] childLayers) { SwingUtilities.invokeLater(() -> fireTreeStructureChanged(parentLayer)); } }
layer3.getChildren().add(layer5); LayerTreeModel treeModel = new LayerTreeModel(layer0); assertSame(layer0, treeModel.getRoot()); assertEquals(0, path.length); assertEquals(3, treeModel.getChildCount(layer0)); assertSame(layer1, treeModel.getChild(layer0, 0)); assertSame(layer2, treeModel.getChild(layer0, 1)); assertSame(layer3, treeModel.getChild(layer0, 2)); assertEquals(0, treeModel.getChildCount(layer1)); assertEquals(0, treeModel.getChildCount(layer2)); assertEquals(2, treeModel.getChildCount(layer3)); assertSame(layer4, treeModel.getChild(layer3, 0)); assertSame(layer5, treeModel.getChild(layer3, 1)); treeModel.addTreeModelListener(listener); final List<Layer> children = layer3.getChildren();
private void initUI() { layerTreeModel = new LayerTreeModel(view.getRootLayer()); layerTree = createCheckBoxTree(layerTreeModel); layerTree.setCellRenderer(new MyTreeCellRenderer());
private void updateLayerTreeSelection(Layer selectedLayer) { if (selectedLayer != null) { Layer[] layerPath = LayerUtils.getLayerPath(layerTreeModel.getRootLayer(), selectedLayer); if (layerPath.length > 0) { layerTree.setSelectionPath(new TreePath(layerPath)); } else { layerTree.clearSelection(); } } else { layerTree.clearSelection(); } }
private void updateLayerTreeVisibility(Layer layer) { CheckBoxTreeSelectionModel checkBoxTreeSelectionModel = layerTree.getCheckBoxTreeSelectionModel(); Layer[] layerPath = LayerUtils.getLayerPath(layerTreeModel.getRootLayer(), layer); if (layerPath.length > 0) { if (layer.isVisible()) { checkBoxTreeSelectionModel.addSelectionPath(new TreePath(layerPath)); } else { checkBoxTreeSelectionModel.removeSelectionPath(new TreePath(layerPath)); } final List<Layer> children = layer.getChildren(); if (!children.isEmpty()) { for (Layer child : children) { updateLayerTreeVisibility(child); } } } }
protected void fireTreeNodesRemoved(Layer parentLayer) { TreeModelEvent event = createTreeModelEvent(parentLayer); for (TreeModelListener treeModelListener : treeModelListeners.keySet()) { treeModelListener.treeNodesRemoved(event); } }
@Override public void handleLayerPropertyChanged(Layer layer, PropertyChangeEvent event) { SwingUtilities.invokeLater(() -> fireTreeNodeChanged(layer)); }
@Override public void handleLayersAdded(Layer parentLayer, Layer[] childLayers) { SwingUtilities.invokeLater(() -> fireTreeStructureChanged(parentLayer)); }
protected void fireTreeStructureChanged(Layer parentLayer) { TreeModelEvent event = createTreeModelEvent(parentLayer); for (TreeModelListener treeModelListener : treeModelListeners.keySet()) { treeModelListener.treeStructureChanged(event); } }
@Override public void valueForPathChanged(TreePath path, Object newValue) { if (newValue instanceof String) { Layer layer = (Layer) path.getLastPathComponent(); String oldName = layer.getName(); String newName = (String) newValue; if (!oldName.equals(newName)) { layer.setName(newName); fireTreeNodeChanged(layer); } } }
protected void fireTreeNodesInserted(Layer parentLayer) { TreeModelEvent event = createTreeModelEvent(parentLayer); for (TreeModelListener treeModelListener : treeModelListeners.keySet()) { treeModelListener.treeNodesInserted(event); } }