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

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

源代码1 项目: CQL   文件: CodeEditor.java
private TreePath conv(TreePath path) {
	TreePath parent = path.getParentPath();
	if (parent == null) {
		return new TreePath(tree.getModel().getRoot());
	}
	TreePath rest = conv(parent);
	DefaultMutableTreeNode last = (DefaultMutableTreeNode) rest.getLastPathComponent();
	DefaultMutableTreeNode us = (DefaultMutableTreeNode) path.getLastPathComponent();
	Enumeration<TreeNode> cs = last.children();
	if (cs == null) {
		return null;
	}
	while (cs.hasMoreElements()) {
		DefaultMutableTreeNode m = (DefaultMutableTreeNode) cs.nextElement();
		if (nodeEq(m, us)) {
			return rest.pathByAddingChild(m);
		}
	}
	return null;
}
 
源代码2 项目: Zettelkasten   文件: TreeUtil.java
private static void expandAllTrees(TreePath parent, JTree tree) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) parent.getLastPathComponent();
    if (node.getChildCount() >= 0) {
        for (Enumeration e = node.children(); e.hasMoreElements();) {
            DefaultMutableTreeNode n = (DefaultMutableTreeNode) e.nextElement();
            TreePath path = parent.pathByAddingChild(n);
            expandAllTrees(path, tree);
        }
    }
    // retrieve treenode user object
    TreeUserObject userObject = (TreeUserObject) node.getUserObject();
    // check whether deepest level is reached.
    if ((expandLevel != -1 && node.getLevel() < expandLevel) || -1 == expandLevel) {
        // check whether treenode-id is in the list of collapsed items
        if (userObject != null && collapsedNodes.contains(userObject.getId())) {
            // if yes, collapse treenode
            tree.collapsePath(parent);
        } else {
            // else expand it
            tree.expandPath(parent);
        }
    } else {
        tree.collapsePath(parent);
    }
}
 
源代码3 项目: consulo   文件: ProjectTreeBuilder.java
private void updateNodesContaining(@Nonnull Collection<VirtualFile> filesToRefresh, @Nonnull DefaultMutableTreeNode rootNode) {
  if (!(rootNode.getUserObject() instanceof ProjectViewNode)) return;
  ProjectViewNode node = (ProjectViewNode)rootNode.getUserObject();
  Collection<VirtualFile> containingFiles = null;
  for (VirtualFile virtualFile : filesToRefresh) {
    if (!virtualFile.isValid()) {
      addSubtreeToUpdate(rootNode); // file must be deleted
      return;
    }
    if (node.contains(virtualFile)) {
      if (containingFiles == null) containingFiles = new SmartList<>();
      containingFiles.add(virtualFile);
    }
  }
  if (containingFiles != null) {
    updateNode(rootNode);
    Enumeration children = rootNode.children();
    while (children.hasMoreElements()) {
      DefaultMutableTreeNode child = (DefaultMutableTreeNode)children.nextElement();
      updateNodesContaining(containingFiles, child);
    }
  }
}
 
源代码4 项目: mts   文件: ModelTreeRTStats.java
synchronized public DefaultMutableTreeNode getNode(DefaultMutableTreeNode nodeChild, DefaultMutableTreeNode nodeParent) {
    // Initialisation of the node returned
    DefaultMutableTreeNode node = null;

    // We get all children of node parent
    Enumeration<DefaultMutableTreeNode> allChildren = (Enumeration<DefaultMutableTreeNode>)(Object)nodeParent.children();

    // For each child
    while (allChildren.hasMoreElements()) {
        // Get the current child
        node = allChildren.nextElement();

        // If this child match (with the name) with the node searching
        if (node.toString().equals(nodeChild.toString())) {
            // We return the node
            return node;
        }
    }

    // Else (that's mean we don't found) we return the new node child
    node = nodeChild;
    return node;
}
 
源代码5 项目: jlibs   文件: PreorderWalker.java
public static void main(String[] args){
    Class<Number> c1 = Number.class;
    Class<Integer> c2 = Integer.class;
    System.out.println(c1.isAssignableFrom(c2));
    System.out.println(c1.isAssignableFrom(c2));

    JFrame frame = new JFrame();
    JTree tree = new JTree();
    frame.getContentPane().add(new JScrollPane(tree));
    frame.pack();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);

    final PreorderWalker<DefaultMutableTreeNode> seq = new PreorderWalker<DefaultMutableTreeNode>((DefaultMutableTreeNode)tree.getModel().getRoot(), new Navigator<DefaultMutableTreeNode>(){
        @Override
        @SuppressWarnings({"unchecked"})
        public Sequence<DefaultMutableTreeNode> children(DefaultMutableTreeNode elem){
            return new EnumeratedSequence<DefaultMutableTreeNode>(elem.children());
        }
    });
    WalkerUtil.print(seq, null);
}
 
源代码6 项目: jd-gui   文件: TreeTabbedPanel.java
@SuppressWarnings("unchecked")
protected DefaultMutableTreeNode searchTreeNode(URI uri, DefaultMutableTreeNode node) {
    if (node instanceof TreeNodeExpandable) {
        ((TreeNodeExpandable)node).populateTreeNode(api);
    }

    String u = uri.toString();
    T child = null;
    Enumeration enumeration = node.children();

    while (enumeration.hasMoreElements()) {
        T element = (T)enumeration.nextElement();
        String childU = element.getUri().toString();

        if (u.length() > childU.length()) {
            if (u.startsWith(childU)) {
                char c = u.charAt(childU.length());
                if ((c == '/') || (c == '!')) {
                    child = element;
                    break;
                }
            }
        } else if (u.equals(childU)) {
            child = element;
            break;
        }
    }

    if (child != null) {
        if (u.equals(child.getUri().toString())) {
            return child;
        } else {
            // Parent tree node found -> Recursive call
            return searchTreeNode(uri, child);
        }
    } else {
        // Not found
        return null;
    }
}
 
源代码7 项目: nosql4idea   文件: RedisFragmentedKeyTreeModel.java
private static void addChildren(DefaultMutableTreeNode parentNode, DefaultMutableTreeNode originalChildNode) {
    Enumeration children = originalChildNode.children();
    while (children.hasMoreElements()) {
        DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) children.nextElement();
        parentNode.add((MutableTreeNode) childNode.clone());
    }
}
 
源代码8 项目: snap-desktop   文件: FilterOpUI.java
private static DefaultMutableTreeNode findItem(DefaultMutableTreeNode parentItem, String filterName) {
    if (!parentItem.isLeaf()) {
        final Enumeration enumeration = parentItem.children();
        while (enumeration.hasMoreElements()) {
            final DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) enumeration.nextElement();
            final DefaultMutableTreeNode found = findItem(treeNode, filterName);
            if (found != null)
                return found;
        }
    }

    if (parentItem.toString().equals(filterName))
        return parentItem;
    return null;
}
 
源代码9 项目: IrScrutinizer   文件: TreeImporter.java
@Override
public void treeExpanded(TreeExpansionEvent event) {
    DefaultMutableTreeNode remote = (DefaultMutableTreeNode) event.getPath().getLastPathComponent();
    if (!Remote.class.isInstance(remote.getUserObject())) // Just to be on the safe side...
        return;

    for (Enumeration e = remote.children(); e.hasMoreElements();) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
        Command command = (Command) node.getUserObject();
    }
}
 
源代码10 项目: size-analyzer   文件: AnalyzeSizeToolWindow.java
private void showCategoryInCategoryPanelFor(DefaultMutableTreeNode categoryNode) {
  CategoryData category = (CategoryData) categoryNode.getUserObject();
  categoryTitle.clear();
  categoryTitle.append(category.toString(), SimpleTextAttributes.REGULAR_BOLD_ATTRIBUTES);
  if (category.totalSizeSaved() != null) {
    categoryTitle.append(
        "  Estimated savings: " + category.totalSizeSaved(),
        SimpleTextAttributes.GRAYED_ATTRIBUTES);
  }
  categoryTitle.setMaximumSize(categoryTitle.getPreferredSize());

  suggestionsPanel.removeAll();
  for (Enumeration<?> nodeEnumeration = categoryNode.children();
      nodeEnumeration.hasMoreElements(); ) {
    Object nodeValue = nodeEnumeration.nextElement();
    if (nodeValue instanceof DefaultMutableTreeNode) {
      DefaultMutableTreeNode node = (DefaultMutableTreeNode) nodeValue;
      String linkTitle = extractLinkTitle(node);
      suggestionsPanel.add(
          new LinkLabel<>(
              linkTitle,
              null,
              new LinkListener<Object>() {
                @Override
                @SuppressWarnings("rawtypes") // Declaration uses raw type, needed for override.
                public void linkSelected(LinkLabel source, Object linkData) {
                  suggestionTree.clearSelection();
                  TreePath selectedNode =
                      new TreePath(((DefaultMutableTreeNode) linkData).getPath());
                  suggestionTree.addSelectionPath(selectedNode);
                  suggestionTree.scrollPathToVisible(selectedNode);
                }
              },
              node));
    }
  }
}
 
源代码11 项目: ghidra   文件: HelpModuleCollection.java
private void addPrebuiltItem(DefaultMutableTreeNode tn, Path tocPath,
		Map<String, TOCItemExternal> mapByDisplay) {

	Object userObject = tn.getUserObject();
	CustomTreeItemDecorator item = (CustomTreeItemDecorator) userObject;
	if (item != null) {
		DefaultMutableTreeNode parent = (DefaultMutableTreeNode) tn.getParent();
		TOCItemExternal parentItem = null;
		if (parent != null) {
			CustomTreeItemDecorator dec = (CustomTreeItemDecorator) parent.getUserObject();
			if (dec != null) {
				parentItem = mapByDisplay.get(dec.getDisplayText());
			}
		}

		ID targetID = item.getID();

		String displayText = item.getDisplayText();
		String tocID = item.getTocID();
		String target = targetID == null ? null : targetID.getIDString();
		TOCItemExternal external = new TOCItemExternal(parentItem, tocPath, tocID, displayText,
			target, item.getName(), -1);
		mapByDisplay.put(displayText, external);
	}

	@SuppressWarnings("rawtypes")
	Enumeration children = tn.children();
	while (children.hasMoreElements()) {
		DefaultMutableTreeNode child = (DefaultMutableTreeNode) children.nextElement();
		addPrebuiltItem(child, tocPath, mapByDisplay);
	}
}
 
源代码12 项目: swing_library   文件: FilterTreeModel.java
/**
 * Clone/Copy a tree node. TreeNodes in Swing don't support deep cloning.
 * 
 * @param orig to be cloned
 * @return cloned copy
 */
private DefaultMutableTreeNode copyNode(final DefaultMutableTreeNode orig) {
	if (orig == null)
		return null;
	DefaultMutableTreeNode newOne = new DefaultMutableTreeNode();
	newOne.setUserObject(orig.getUserObject());
	newOne.setAllowsChildren(!orig.isLeaf());

	Enumeration<DefaultMutableTreeNode> enm = orig.children();
	while (enm.hasMoreElements()) {
		DefaultMutableTreeNode child = enm.nextElement();
		newOne.add(copyNode(child));
	}
	return newOne;
}
 
源代码13 项目: Luyten   文件: Model.java
@SuppressWarnings("unchecked")
public DefaultMutableTreeNode getChild(DefaultMutableTreeNode node, TreeNodeUserObject name) {
	Enumeration<DefaultMutableTreeNode> entry = node.children();
	while (entry.hasMoreElements()) {
		DefaultMutableTreeNode nods = entry.nextElement();
		if (((TreeNodeUserObject) nods.getUserObject()).getOriginalName().equals(name.getOriginalName())) {
			return nods;
		}
	}
	return null;
}
 
源代码14 项目: megamek   文件: CamoChoiceDialog.java
/**
 * This recursive method is a hack: DirectoryItems flattens the directory
 * structure, but it provides useful functionality, so this method will
 * reconstruct the directory structure for the JTree.
 *
 * @param node
 * @param names
 */
private void addCategoryToTree(DefaultMutableTreeNode node, String[] names) {

    // Shouldn't happen
    if (names.length == 0) {
        return;
    }

    boolean matched = false;
    for (Enumeration<?> e = node.children(); e.hasMoreElements();) {
        DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) e.nextElement();
        String nodeName = (String) childNode.getUserObject();
        if (nodeName.equals(names[0])) {
            if (names.length > 1) {
                addCategoryToTree(childNode,
                        Arrays.copyOfRange(names, 1, names.length));
                matched = true;
            } else {
                // I guess we're done? This shouldn't happen, as there
                // shouldn't be duplicates
            }
        }
    }

    // If we didn't match, lets create nodes for each name
    if (!matched) {
        DefaultMutableTreeNode root = node;
        for (int i = 0; i < names.length; i++) {
            DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(
                    names[i]);
            root.add(newNode);
            root = newNode;
        }
    }
}
 
源代码15 项目: accumulo-examples   文件: Viewer.java
@Override
public void treeCollapsed(TreeExpansionEvent event) {
  DefaultMutableTreeNode node = (DefaultMutableTreeNode) event.getPath().getLastPathComponent();
  @SuppressWarnings("unchecked")
  Enumeration<DefaultMutableTreeNode> children = node.children();
  while (children.hasMoreElements()) {
    DefaultMutableTreeNode child = children.nextElement();
    log.debug("removing children of " + ((NodeInfo) child.getUserObject()).getFullName());
    child.removeAllChildren();
  }
}
 
源代码16 项目: java-swing-tips   文件: MainPanel.java
private void updateParentUserObject(DefaultMutableTreeNode parent) {
  FilterableNode uo = (FilterableNode) parent.getUserObject();
  // Java 9: Enumeration<TreeNode> children = parent.children();
  Enumeration<?> children = parent.children();
  while (children.hasMoreElements()) {
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) children.nextElement();
    FilterableNode check = (FilterableNode) node.getUserObject();
    if (check.status) {
      uo.status = true;
      return;
    }
  }
  uo.status = false;
}
 
源代码17 项目: mts   文件: ModelTreeRTStats.java
synchronized public void insertNode(DefaultMutableTreeNode nodeChild, DefaultMutableTreeNode nodeParent, int position) {
    // Flag for know if the nodeChild already exist in the nodeParent
    boolean alreadyExist = false;

    // We get all children of node parent
    Enumeration<DefaultMutableTreeNode> allChildren = (Enumeration<DefaultMutableTreeNode>)(Object)nodeParent.children();

    // For each child
    while (allChildren.hasMoreElements()) {
        // If this child match (with the name) with the node searching
        if (allChildren.nextElement().toString().equals(nodeChild.toString())) {
            // That's mean the node already exist
            alreadyExist = true;
        }
    }

    // If the node don't exist
    if (!alreadyExist) {
        // We really insert the node in the tree in the good position
        insertNodeInto(nodeChild, nodeParent, position);

        // Code for expand only this new node

        // We get the path of the child
        TreeNode[] childTreeNode = nodeChild.getPath();

        // We prepare a new TreeNode tab for the path of the parent (=the child path without the last element)
        TreeNode[] parentTreeNode = new TreeNode[childTreeNode.length - 1];

        // If tree is ready
        if (sectionIsCreate) {
            // Increment variable to progress in parent path
            int i = 0;

            // For each element of childTreeNode
            for (TreeNode currentNode : childTreeNode) {
                // if we are not on the last element
                if (i < childTreeNode.length - 1) {
                    // parentTreeNode received the currentNode for the child path
                    parentTreeNode[i] = currentNode;
                }
                // Increment i
                i++;
            }
        }
    }
    // Else we not insert again the node
}
 
源代码18 项目: CodeGen   文件: TemplatesUI.java
@Override
public boolean isModified(){
    Templates templates = settingManager.getTemplates();
    DefaultMutableTreeNode topNode = (DefaultMutableTreeNode) templateTree.getModel().getRoot();
    // 获取映射map
    Map<String, List<CodeGroup>> groupsMap = templates.getGroupsMap();
    Map<String, List<CodeTemplate>> templateMap = templates.getTemplatesMap();

    // root的判断, 数量判断, name?
    List<CodeRoot> roots = templates.getRoots();
    if(topNode.getChildCount() != roots.size()){
        return true;
    }
    Enumeration rootEnum = topNode.children();
    while (rootEnum.hasMoreElements()) {
        // 组的判断, 数量判断
        DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) rootEnum.nextElement();
        CodeRoot root = (CodeRoot) rootNode.getUserObject();
        if (rootNode.getChildCount() != groupsMap.get(root.getId()).size()) {
            return true;
        }
        Enumeration enumeration = rootNode.children();
        while(enumeration.hasMoreElements()){
            // 模板判断, 数量判断
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement();
            CodeGroup group = (CodeGroup) node.getUserObject();
            if(node.getChildCount() != templateMap.get(group.getId()).size()){
                return true;
            }
            if(templateEditor != null){
                Enumeration childEnum = node.children();
                while(childEnum.hasMoreElements()){
                    // 模板内容判断
                    DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) childEnum.nextElement();
                    CodeTemplate template = (CodeTemplate) childNode.getUserObject();
                    CodeTemplate tmp = templateEditor.getCodeTemplate();
                    if (Objects.isNull(tmp.getOrder())) {
                        tmp.setOrder(Integer.valueOf(1));
                    }
                    if(template.getId().equals(tmp.getId()) && !template.equals(tmp)){
                        return true;
                    }
                }
            }
        }
    }
    return false;
}
 
源代码19 项目: CodeGen   文件: TemplatesUI.java
@Override
public void apply() {
    List<CodeRoot> roots = new ArrayList<>();
    DefaultTreeModel treeModel = (DefaultTreeModel) templateTree.getModel();
    DefaultMutableTreeNode topNode = (DefaultMutableTreeNode) treeModel.getRoot();
    Enumeration rootEnum = topNode.children();
    // 获取所有root
    while (rootEnum.hasMoreElements()) {
        List<CodeGroup> groups = new ArrayList<>();
        DefaultMutableTreeNode rootNode = (DefaultMutableTreeNode) rootEnum.nextElement();
        Enumeration enumeration = rootNode.children();
        // 获取所有组
        while(enumeration.hasMoreElements()){
            List<CodeTemplate> templates = new ArrayList<>();
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) enumeration.nextElement();
            Enumeration childEnum = node.children();
            // 获取所有模板
            while(childEnum.hasMoreElements()){
                DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) childEnum.nextElement();
                CodeTemplate template = (CodeTemplate) childNode.getUserObject();
                if(templateEditor != null){
                    CodeTemplate tmp = templateEditor.getCodeTemplate();
                    if(template.getId().equals(tmp.getId())){
                        template = tmp;
                    }
                }
                if (Objects.isNull(template.getOrder())) {
                    template.setOrder(Integer.valueOf(1));
                }
                templates.add(template);
            }
            CodeGroup group = (CodeGroup) node.getUserObject();
            Collections.sort(templates, Comparator.comparing(CodeTemplate::getOrder));
            group.setTemplates(templates);
            groups.add(group);
        }
        CodeRoot root = (CodeRoot) rootNode.getUserObject();
        root.setGroups(groups);
        roots.add(root);
    }
    settingManager.getTemplates().setRoots(roots);
    reset();
}
 
源代码20 项目: megamek   文件: CamoChoiceDialog.java
public void setPlayer(IPlayer p) {
    player = p;

    category = player.getCamoCategory();
    if (category.equals(IPlayer.NO_CAMO) && (null != entity) && (p.getColorIndex() >= 0)) {
        filename = (String) camoModel.getValueAt(
                p.getColorIndex(), 0);
    } else {
        filename = player.getCamoFileName();
    }
    if (sourceButton != null) {
        sourceButton.setIcon(generateIcon(category, filename));
    }
    // This cumbersome code takes the category name and transforms it into
    // a TreePath so it can be selected in the dialog
    String[] names = category.split(Pattern.quote("/"));
    DefaultMutableTreeNode node = (DefaultMutableTreeNode) treeCategories
            .getModel().getRoot();
    for (int i = 0; i < names.length; i++) {
        for (Enumeration<?> e = node.children(); e.hasMoreElements();) {
            DefaultMutableTreeNode child = (DefaultMutableTreeNode) e.nextElement();
            if (names[i].equals(child.getUserObject())) {
                node = child;
                break;
            }
        }
    }
    treeCategories.setSelectionPath(new TreePath(node.getPath()));
    fillTable(category);
    int rowIndex = 0;
    for (int i = 0; i < camoModel.getRowCount(); i++) {
        if (((String) camoModel.getValueAt(i, 0)).equals(filename)) {
            rowIndex = i;
            break;
        }
    }
    
    if(rowIndex < 0 || rowIndex >= tableCamo.getRowCount()) {
        System.out.println("Attempting to set invalid camo index " + rowIndex + " for player " + p.getName() + ". Using default instead.");
    } else {
        tableCamo.setRowSelectionInterval(rowIndex, rowIndex);
    }
}