javax.swing.tree.DefaultMutableTreeNode#getPath ( )源码实例Demo

下面列出了javax.swing.tree.DefaultMutableTreeNode#getPath ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: TrakEM2   文件: ProjectTree.java
/** Move up (-1) or down (1). */
private void move(final DefaultMutableTreeNode node, final int direction) {
	final ProjectThing pt = (ProjectThing)node.getUserObject();
	if (null == pt) return;
	// Move: within the list of children of the parent ProjectThing:
	if (!pt.move(direction)) return;
	// If moved, reposition within the list of children
	final DefaultMutableTreeNode parent_node = (DefaultMutableTreeNode)node.getParent();
	int index = parent_node.getChildCount() -1;
	((DefaultTreeModel)this.getModel()).removeNodeFromParent(node);
	index = pt.getParent().getChildren().indexOf(pt);
	((DefaultTreeModel)this.getModel()).insertNodeInto(node, parent_node, index);
	// restore selection path
	final TreePath trp = new TreePath(node.getPath());
	this.scrollPathToVisible(trp);
	this.setSelectionPath(trp);
	this.updateUILater();
}
 
源代码2 项目: netbeans   文件: ManageInspectionsOperatot.java
private TreeNode[] getPath(Object node, String deap, String item, boolean debug) {
    if (node instanceof DefaultMutableTreeNode) {
        DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode) node;
        if (debug) {
            System.out.println(deap + dmtn.toString());
        }
        if (dmtn.toString().equals(item)) {
            if (debug) {
                System.out.println("EQUAL!!! <" + item + ">");
            }
            return dmtn.getPath();
        }
        TreeNode[] curPath;
        for (int i = 0; i < dmtn.getChildCount(); i++) {
            curPath = getPath(dmtn.getChildAt(i), deap + "__", item, debug);
            if (curPath != null) {
                return curPath;
            }
        }
    }
    return null;
}
 
源代码3 项目: consulo   文件: AbstractProjectViewPane.java
public void expand(@Nullable final Object[] path, final boolean requestFocus) {
  if (getTreeBuilder() == null || path == null) return;
  AbstractTreeUi ui = getTreeBuilder().getUi();
  if (ui != null) ui.buildNodeForPath(path);

  DefaultMutableTreeNode node = ui == null ? null : ui.getNodeForPath(path);
  if (node == null) {
    return;
  }
  TreePath treePath = new TreePath(node.getPath());
  myTree.expandPath(treePath);
  if (requestFocus) {
    IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> IdeFocusManager.getGlobalInstance().requestFocus(myTree, true));
  }
  TreeUtil.selectPath(myTree, treePath);
}
 
源代码4 项目: MikuMikuStudio   文件: TreeUtil.java
/**
 * @param tree com.sun.java.swing.JTree
 * @param start com.sun.java.swing.tree.DefaultMutableTreeNode
 */
public static void expandTree(JTree tree, TreeNode start, int level) {
    for (Enumeration children = start.children(); children.hasMoreElements();) {
        DefaultMutableTreeNode dtm = (DefaultMutableTreeNode) children.nextElement();
        //System.out.println(dtm.getUserObject()+" "+dtm.getDepth());
        if (!dtm.isLeaf() && dtm.getLevel() <= level) {
            //
            TreePath tp = new TreePath(dtm.getPath());
            tree.expandPath(tp);
            //
            expandTree(tree, dtm, level);
        }
    }
    return;
}
 
源代码5 项目: snap-desktop   文件: FilterOpUI.java
private static void expandAll(JTree tree) {
    DefaultMutableTreeNode actNode = (DefaultMutableTreeNode) tree.getModel().getRoot();
    while (actNode != null) {
        if (!actNode.isLeaf()) {
            final TreePath actPath = new TreePath(actNode.getPath());
            tree.expandRow(tree.getRowForPath(actPath));
        }
        actNode = actNode.getNextNode();
    }
}
 
源代码6 项目: netbeans   文件: PathsCustomizer.java
@Override
public void intervalAdded(ListDataEvent e) {
    for (int i = e.getIndex1(); i >= e.getIndex0(); i--) {
        Object obj = listModel.getElementAt(i);
        if (obj instanceof ClassPathSupport.Item) {
            DefaultMutableTreeNode node = toTreeNode(obj);
            treeModel.insertNodeInto(node, (MutableTreeNode)treeModel.getRoot(), e.getIndex0());
            TreePath path = new TreePath(node.getPath());
            tree.setSelectionPath(path);
            tree.makeVisible(path);
        }
    }
}
 
源代码7 项目: netbeans   文件: PathsCustomizer.java
@Override
public void intervalAdded(ListDataEvent e) {
    for (int i = e.getIndex1(); i >= e.getIndex0(); i--) {
        Object obj = listModel.getElementAt(i);
        if (obj instanceof ClassPathSupport.Item) {
            DefaultMutableTreeNode node = toTreeNode(obj);
            treeModel.insertNodeInto(node, (MutableTreeNode)treeModel.getRoot(), e.getIndex0());
            TreePath path = new TreePath(node.getPath());
            tree.setSelectionPath(path);
            tree.makeVisible(path);
        }
    }
}
 
源代码8 项目: consulo   文件: OccurenceNavigatorSupport.java
@Override
public OccurenceInfo goNextOccurence() {
  DefaultMutableTreeNode node = findNode(myTree, true);
  if (node == null) return null;
  TreePath treePath = new TreePath(node.getPath());
  TreeUtil.selectPath(myTree, treePath);
  Navigatable editSourceDescriptor = createDescriptorForNode(node);
  if (editSourceDescriptor == null) return null;
  Counters counters = calculatePosition(node);
  return new OccurenceInfo(editSourceDescriptor, counters.myFoundOccurenceNumber, counters.myOccurencesCount);
}
 
源代码9 项目: freecol   文件: ColopediaPanel.java
private void select(String id) {
    DefaultMutableTreeNode node = nodeMap.get(id);
    if (node == null) {
        logger.warning("Unable to find node with id '" + id + "'.");
    } else {
        TreePath oldPath = tree.getSelectionPath();
        if (oldPath != null && oldPath.getParentPath() != null) {
            tree.collapsePath(oldPath.getParentPath());
        }
        TreePath newPath = new TreePath(node.getPath());
        tree.scrollPathToVisible(newPath);
        tree.expandPath(newPath);
        showDetails((ColopediaTreeItem) node.getUserObject());
    }
}
 
源代码10 项目: flutter-intellij   文件: InspectorPanel.java
private TreePath getTreePath(DiagnosticsNode node) {
  if (node == null) {
    return null;
  }
  final DefaultMutableTreeNode treeNode = valueToTreeNode.get(node.getValueRef());
  if (treeNode == null) {
    return null;
  }
  return new TreePath(treeNode.getPath());
}
 
源代码11 项目: flutter-intellij   文件: InspectorTreeUI.java
private Rectangle getSubtreeBounds(DefaultMutableTreeNode node, Rectangle clipBounds) {
  if (node == null) {
    return null;
  }
  final TreePath path = new TreePath(node.getPath());
  final int depth = path.getPathCount() - 1;
  final Rectangle rootBounds = tree.getPathBounds(path);
  if (rootBounds == null) {
    return null;
  }
  // We use getRowX instead of the value from rootBounds as we want to include
  // the down arrows
  final int minX = getRowX(-1, depth - 1);
  final int minY = rootBounds.y;

  Rectangle bounds;
  final Rectangle descendantBounds = tree.getPathBounds(getLastExpandedDescendant(path));
  if (descendantBounds != null) {
    final int maxY = (int)descendantBounds.getMaxY();
    final int maxX = (int)clipBounds.getMaxX();
    bounds = new Rectangle(minX, minY, maxX - minX, maxY - minY);
  }
  else {
    // This case shouldn't really happen unless we have a bug but using just
    // the root node bounds is a safe fallback.
    bounds = rootBounds;
  }
  return bounds.intersection(clipBounds);
}
 
源代码12 项目: flutter-intellij   文件: InspectorPanel.java
private TreePath getTreePath(DiagnosticsNode node) {
  if (node == null) {
    return null;
  }
  final DefaultMutableTreeNode treeNode = valueToTreeNode.get(node.getValueRef());
  if (treeNode == null) {
    return null;
  }
  return new TreePath(treeNode.getPath());
}
 
源代码13 项目: ciscorouter   文件: OutputReview.java
/**
 * Deletes the selected node from the tree and removes the corresponding entry from the report.
 * @param evt
 */
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteActionPerformed
    selected = (DefaultMutableTreeNode) reportTree.getLastSelectedPathComponent();
    if (selected == null) {
        //Nothing is selected
        return;
    }
    //If it's a host
    if (selected.getPath().length == 2) {
        String hostname = selected.toString();
        int toDelete = this.getIndexOfHost(hostname);
        if (toDelete == -1) {
            return;
        }
        report.getReports().remove(toDelete);
    } else if (selected.getPath().length == 3) { //If it's a rule
        String host = selected.getParent().toString();
        String rule = selected.toString();
        int hostNum = this.getIndexOfHost(host);
        int ruleNum = this.getIndexOfRule(hostNum, rule);
        if (hostNum == -1 || ruleNum == -1) {
            return;
        }
        report.getReports().get(hostNum).getMatchedRules().remove(ruleNum);
    }
    MutableTreeNode parent = (MutableTreeNode) selected.getParent();
    int index = parent.getIndex(selected);
    parent.remove(selected);
    model.nodesWereRemoved(parent, new int[]{index}, new Object[]{selected});
    reportTree.setModel(model);

}
 
源代码14 项目: consulo   文件: TemplateListPanel.java
private void setSelectedNode(DefaultMutableTreeNode node) {
  TreePath path = new TreePath(node.getPath());
  myTree.expandPath(path.getParentPath());
  int row = myTree.getRowForPath(path);
  myTree.setSelectionRow(row);
  myTree.scrollRowToVisible(row);
}
 
源代码15 项目: RefactoringMiner   文件: UMLModelASTReader.java
private String getAnonymousBinaryName(DefaultMutableTreeNode node) {
	StringBuilder name = new StringBuilder();
	TreeNode[] path = node.getPath();
	for(int i=0; i<path.length; i++) {
		DefaultMutableTreeNode tmp = (DefaultMutableTreeNode)path[i];
		if(tmp.getUserObject() != null) {
			DefaultMutableTreeNode parent = (DefaultMutableTreeNode)tmp.getParent();
			int index = parent.getIndex(tmp);
			name.append(index+1);
			if(i < path.length-1)
				name.append(".");
		}
	}
	return name.toString();
}
 
源代码16 项目: TrakEM2   文件: LayerTree.java
/** Used by the Loader.importStack and the "many new layers" command. */
public void addLayer(LayerSet layer_set, Layer layer) {
	if (null == layer_set || null == layer) return;
	try {
		// find the node that contains the LayerSet
		DefaultMutableTreeNode root_node = (DefaultMutableTreeNode)this.getModel().getRoot();
		LayerThing root_lt = (LayerThing)root_node.getUserObject();
		Thing thing = null;
		if (root_lt.getObject().equals(layer_set)) thing = root_lt;
		else thing = root_lt.findChild(layer_set);
		DefaultMutableTreeNode parent_node = DNDTree.findNode(thing, this);
		if (null == parent_node) { Utils.log("LayerTree: LayerSet not found."); return; }
		LayerThing parent_thing = (LayerThing)parent_node.getUserObject();
		double z = layer.getZ();
		// find the node whose 'z' is larger than z, and add the Layer before that.
		int n = parent_node.getChildCount();
		int i = 0;
		for (; i < n; i++) {
			DefaultMutableTreeNode child_node = (DefaultMutableTreeNode)parent_node.getChildAt(i);
			LayerThing child_thing = (LayerThing)child_node.getUserObject();
			if (!child_thing.getType().equals("layer")) {
				continue;
			}
			double iz = ((Layer)child_thing.getObject()).getZ();
			if (iz < z) {
				continue;
			}
			// else, add the layer here, after the 'i' layer which has a larger z
			break;
		}
		TemplateThing tt = parent_thing.getChildTemplate("layer");
		if (null == tt) {
			Utils.log("LayerTree: Null template Thing!");
			return;
		}
		LayerThing new_thing = new LayerThing(tt, layer.getProject(), layer);
		// Add the new_thing to the tree
		if (null != new_thing) {
			parent_thing.addChild(new_thing);
			DefaultMutableTreeNode new_node = new DefaultMutableTreeNode(new_thing);
			//TODO when changing the Z of a layer, the insertion is proper but an empty space is left //Utils.log("LayerTree: inserting at: " + i);
			((DefaultTreeModel)this.getModel()).insertNodeInto(new_node, parent_node, i);
			TreePath treePath = new TreePath(new_node.getPath());
			this.scrollPathToVisible(treePath);
			this.setSelectionPath(treePath);
		}
	} catch (Exception e) { IJError.print(e); }
}
 
源代码17 项目: java-swing-tips   文件: MainPanel.java
private MainPanel() {
  super(new BorderLayout());
  ImageIcon icon = new ImageIcon(getClass().getResource("restore_to_background_color.gif"));

  DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
  DefaultMutableTreeNode s0 = new DefaultMutableTreeNode(new NodeObject("default", icon));
  DefaultMutableTreeNode s1 = new DefaultMutableTreeNode(new NodeObject("setImageObserver", icon));
  root.add(s0);
  root.add(s1);
  JTree tree = new JTree(new DefaultTreeModel(root)) {
    @Override public void updateUI() {
      setCellRenderer(null);
      super.updateUI();
      TreeCellRenderer r = getCellRenderer();
      setCellRenderer((tree, value, selected, expanded, leaf, row, hasFocus) -> {
        JLabel l = (JLabel) r.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
        Object v = Optional.ofNullable(value)
            .filter(DefaultMutableTreeNode.class::isInstance).map(DefaultMutableTreeNode.class::cast)
            .map(DefaultMutableTreeNode::getUserObject).orElse(null);
        if (v instanceof NodeObject) {
          NodeObject uo = (NodeObject) v;
          l.setText(Objects.toString(uo.title, ""));
          l.setIcon(uo.icon);
        } else {
          l.setText(Objects.toString(value, ""));
          l.setIcon(null);
        }
        return l;
      });
    }
  };
  TreePath path = new TreePath(s1.getPath());
  // Wastefulness: icon.setImageObserver((ImageObserver) tree);
  icon.setImageObserver((img, infoflags, x, y, w, h) -> {
    if (!tree.isShowing()) {
      return false;
    }
    Rectangle cellRect = tree.getPathBounds(path);
    if ((infoflags & (FRAMEBITS | ALLBITS)) != 0 && Objects.nonNull(cellRect)) {
      tree.repaint(cellRect);
    }
    return (infoflags & (ALLBITS | ABORT)) == 0;
  });
  tree.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
  add(new JScrollPane(tree));
  setPreferredSize(new Dimension(320, 240));
}
 
源代码18 项目: consulo   文件: ProjectViewTestUtil.java
protected static boolean isExpanded(DefaultMutableTreeNode nodeForElement, AbstractProjectViewPSIPane pane) {
  TreePath path = new TreePath(nodeForElement.getPath());
  return pane.getTree().isExpanded(path.getParentPath());
}
 
源代码19 项目: weblaf   文件: DictionariesTree.java
public void selectAndShow ( final DefaultMutableTreeNode node )
{
    final TreePath path = new TreePath ( node.getPath () );
    setSelectionPath ( path );
    scrollPathToVisible ( path );
}
 
源代码20 项目: jaamsim   文件: ObjectSelector.java
@Override
public void setEntity(Entity ent) {

	if (ent == currentEntity)
		return;
	currentEntity = ent;

	if (tree == null)
		return;

	JaamSimModel simModel = GUIFrame.getJaamSimModel();
	if (simModel == null || simModel.getSimulation() == null)
		return;

	long curSequence = simModel.getEntitySequence();
	if (entSequence != curSequence) {
		entSequence = curSequence;
		updateTree(simModel);
	}

	if (currentEntity == null) {
		tree.setSelectionPath(null);
		tree.setEditable(false);
		return;
	}

	tree.setEditable(true);

	DefaultMutableTreeNode root = (DefaultMutableTreeNode)tree.getModel().getRoot();
	Enumeration<?> e = root.depthFirstEnumeration();
	while (e.hasMoreElements()) {
		DefaultMutableTreeNode aNode = (DefaultMutableTreeNode)e.nextElement();
		if (aNode.getUserObject() == currentEntity) {
			TreePath path = new TreePath(aNode.getPath());
			tree.scrollPathToVisible(path);
			tree.setSelectionPath(path);
			return;
		}
	}

	// Entity not found in the tree
	tree.setSelectionPath(null);
	tree.setEditable(false);
}