Java Code Examples for javax.swing.tree.DefaultMutableTreeNode#insert()

The following examples show how to use javax.swing.tree.DefaultMutableTreeNode#insert() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: NavigationTree.java    From OpERP with MIT License 6 votes vote down vote up
public void addNode(TaskPane taskPane, String parentTaskPaneToString,
		int index) {
	if (nodeMap.containsKey(parentTaskPaneToString)) {
		DefaultMutableTreeNode parentNode = nodeMap
				.get(parentTaskPaneToString);
		DefaultMutableTreeNode node = new DefaultMutableTreeNode(taskPane);

		if (index == -1)
			parentNode.add(node);
		else
			parentNode.insert(node, index);

		nodeMap.put(taskPane.toString(), node);
	} else
		throw new IllegalArgumentException("Illegal arguements in addNode");
}
 
Example 2
Source File: SortTreeHelper.java    From ISO8583 with GNU General Public License v3.0 6 votes vote down vote up
public static void sort(DefaultMutableTreeNode parent) {
	int n = parent.getChildCount();
	for (int i = 0; i < n - 1; i++) {
		int min = i;
		for (int j = i + 1; j < n; j++) {
			if (tnc.compare((DefaultMutableTreeNode) parent.getChildAt(min), (DefaultMutableTreeNode) parent.getChildAt(j)) > 0) {
				min = j;
			}
		}
		if (i != min) {
			MutableTreeNode a = (MutableTreeNode) parent.getChildAt(i);
			MutableTreeNode b = (MutableTreeNode) parent.getChildAt(min);
			parent.insert(b, i);
			parent.insert(a, min);
			
			updateTree = true;
		}
	}
}
 
Example 3
Source File: ActionUrl.java    From consulo with Apache License 2.0 6 votes vote down vote up
private static void movePathInActionsTree(JTree tree, ActionUrl url){
  final TreePath treePath = CustomizationUtil.getTreePath(tree, url);
  if (treePath != null){
    if (treePath.getLastPathComponent() != null){
      final DefaultMutableTreeNode parent = ((DefaultMutableTreeNode)treePath.getLastPathComponent());
      final int absolutePosition = url.getAbsolutePosition();
      final int initialPosition = url.getInitialPosition();
      if (parent.getChildCount() > absolutePosition && absolutePosition >= 0) {
        if (parent.getChildCount() > initialPosition && initialPosition >= 0) {
          final DefaultMutableTreeNode child = (DefaultMutableTreeNode)parent.getChildAt(initialPosition);
          if (child.getUserObject().equals(url.getComponent())){
            parent.remove(child);
            parent.insert(child, absolutePosition);
          }
        }
      }
    }
  }
}
 
Example 4
Source File: MainPanel.java    From java-swing-tips with MIT License 6 votes vote down vote up
public static void sortTree1(DefaultMutableTreeNode root) {
  int n = root.getChildCount();
  for (int i = 0; i < n - 1; i++) {
    for (int j = n - 1; j > i; j--) {
      DefaultMutableTreeNode curNode = (DefaultMutableTreeNode) root.getChildAt(j);
      DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) root.getChildAt(j - 1);
      if (!prevNode.isLeaf()) {
        sortTree1(prevNode);
      }
      if (tnc.compare(prevNode, curNode) > 0) {
        SWAP_COUNTER.getAndIncrement();
        root.insert(curNode, j - 1);
        root.insert(prevNode, j);
      }
    }
  }
}
 
Example 5
Source File: MainPanel.java    From java-swing-tips with MIT License 6 votes vote down vote up
private static void sort2(DefaultMutableTreeNode parent) {
  int n = parent.getChildCount();
  for (int i = 0; i < n - 1; i++) {
    int min = i;
    for (int j = i + 1; j < n; j++) {
      if (tnc.compare((DefaultMutableTreeNode) parent.getChildAt(min),
          (DefaultMutableTreeNode) parent.getChildAt(j)) > 0) {
        min = j;
      }
    }
    if (i != min) {
      SWAP_COUNTER.getAndIncrement();
      MutableTreeNode a = (MutableTreeNode) parent.getChildAt(i);
      MutableTreeNode b = (MutableTreeNode) parent.getChildAt(min);
      parent.insert(b, i);
      parent.insert(a, min);
      // MutableTreeNode node = (MutableTreeNode) parent.getChildAt(min);
      // parent.insert(node, i);
      // COMPARE_COUNTER++;
    }
  }
}
 
Example 6
Source File: StructurePanel.java    From nextreports-designer with Apache License 2.0 6 votes vote down vote up
@SuppressWarnings("unchecked")
private DefaultMutableTreeNode getBandRowTreeNode(String bandName, int row) {
    DefaultMutableTreeNode bandNode = getBandTreeNode(bandName);
    Enumeration rows = bandNode.children();
    while (rows.hasMoreElements()) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) rows.nextElement();
        Object userObject = node.getUserObject();
        if ((Integer) userObject == row) {
            return node;
        }
    }

    StructureTreeNode rowNode = new StructureTreeNode(row);
    bandNode.insert(rowNode, row);

    return rowNode;
}
 
Example 7
Source File: IfStatementExpressionAnalyzer.java    From JDeodorant with MIT License 5 votes vote down vote up
private void processExpression(DefaultMutableTreeNode parent, Expression expression) {
	if(expression instanceof InfixExpression) {
		InfixExpression infixExpression = (InfixExpression)expression;
		InfixExpression.Operator operator = infixExpression.getOperator();
		if(operator.equals(InfixExpression.Operator.CONDITIONAL_AND) || operator.equals(InfixExpression.Operator.CONDITIONAL_OR)) {
			parent.setUserObject(operator);
			DefaultMutableTreeNode leftOperandNode = new DefaultMutableTreeNode();
			DefaultMutableTreeNode rightOperandNode = new DefaultMutableTreeNode();
			parent.add(leftOperandNode);
			parent.add(rightOperandNode);
			processExpression(leftOperandNode, infixExpression.getLeftOperand());
			processExpression(rightOperandNode, infixExpression.getRightOperand());
			if(infixExpression.hasExtendedOperands()) {
				DefaultMutableTreeNode grandParent = (DefaultMutableTreeNode)parent.getParent();
				int parentIndex = -1;
				if(grandParent != null)
					parentIndex = grandParent.getIndex(parent);
				DefaultMutableTreeNode newParent = processExtendedOperands(parent, infixExpression.extendedOperands());
				if(grandParent != null)
					grandParent.insert(newParent, parentIndex);
				else
					root = newParent;
			}
		}
		else {
			parent.setUserObject(infixExpression);
		}
	}
	else {
		parent.setUserObject(expression);
	}
}
 
Example 8
Source File: ActionUrl.java    From consulo with Apache License 2.0 5 votes vote down vote up
private static void addPathToActionsTree(JTree tree, ActionUrl url) {
  final TreePath treePath = CustomizationUtil.getTreePath(tree, url);
  if (treePath == null) return;
  DefaultMutableTreeNode node = (DefaultMutableTreeNode)treePath.getLastPathComponent();
  final int absolutePosition = url.getAbsolutePosition();
  if (node.getChildCount() >= absolutePosition && absolutePosition >= 0) {
    if (url.getComponent() instanceof Group){
      node.insert(ActionsTreeUtil.createNode((Group)url.getComponent()), absolutePosition);
    } else {
      node.insert(new DefaultMutableTreeNode(url.getComponent()), absolutePosition);
    }
  }
}
 
Example 9
Source File: StructurePanel.java    From nextreports-designer with Apache License 2.0 5 votes vote down vote up
@SuppressWarnings("unchecked")
private DefaultMutableTreeNode getBandRowInsertedTreeNode(String bandName, int bandRow, int row) {

    DefaultMutableTreeNode bandNode = getBandTreeNode(bandName);

    // tree must be traversed in preorder (band by band)        
    Enumeration en = rootNode.preorderEnumeration();
    String currentBandName = ReportLayout.HEADER_BAND_NAME;
    while (en.hasMoreElements()) {
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) en.nextElement();
        Object userObject = node.getUserObject();
        if (userObject instanceof Band) {
            currentBandName = ((Band) userObject).getName();
        } else if (userObject instanceof ReportGridCell) {
            // increment rows for all report grid cells which are in the rows
            // following the inserted row
            ReportGridCell reportGridCell = (ReportGridCell) userObject;
            if (row <= reportGridCell.getRow()) {
                reportGridCell.setRow(reportGridCell.getRow() + 1);
            }
        } else if (userObject instanceof Integer) {
            // modify 'row' nodes in the tree (for the current band)
            if (bandName.equals(currentBandName)) {
                if ((Integer) userObject == bandRow) {
                    DefaultMutableTreeNode sibling = node.getNextSibling();
                    node.setUserObject(((Integer) node.getUserObject()).intValue() + 1);
                    while (sibling != null) {
                        sibling.setUserObject(((Integer) sibling.getUserObject()).intValue() + 1);
                        sibling = sibling.getNextSibling();
                    }
                }
            }
        }
    }

    DefaultMutableTreeNode rowNode = new StructureTreeNode(bandRow);
    bandNode.insert(rowNode, bandRow);

    return rowNode;
}
 
Example 10
Source File: StructurePanel.java    From nextreports-designer with Apache License 2.0 5 votes vote down vote up
private StructureTreeNode getBandElementTreeNode(String bandName, int row, int column) {
    DefaultMutableTreeNode bandNode = getBandRowTreeNode(bandName, row);
    StructureTreeNode child;
    if (bandNode.getChildCount() <= column) {
        child = new StructureTreeNode(new ReportGridCell(null, row, column));
        child.setVisible(false);
        bandNode.insert(child, column);
    } else {
        child = (StructureTreeNode) bandNode.getChildAt(column);
    }

    return child;
}
 
Example 11
Source File: TreeGuiView.java    From niftyeditor with Apache License 2.0 5 votes vote down vote up
private void updateNode(Object arg) {
    UpdateElementEvent event = (UpdateElementEvent) arg;
    if(event.getElement() instanceof GScreen){
        //This function update the position in the tree
        //but Screens never needs such of feature. 
        return;
    }
    int i = this.getIndex(event.getElement());
    DefaultMutableTreeNode node = searchNode(event.getElement());
    DefaultMutableTreeNode parent = (DefaultMutableTreeNode) node.getParent();
    parent.insert(node, i);
    jTree2.updateUI();
}
 
Example 12
Source File: IfStatementExpressionAnalyzer.java    From JDeodorant with MIT License 5 votes vote down vote up
public DefaultMutableTreeNode getRemainingExpression(Expression expressionToBeRemoved) {
	DefaultMutableTreeNode newRoot = new DefaultMutableTreeNode();
	processExpression(newRoot, completeExpression);
	DefaultMutableTreeNode leaf = newRoot.getFirstLeaf();
	while(leaf != null) {
		Expression expression = (Expression)leaf.getUserObject();
		if(expression.equals(expressionToBeRemoved)) {
			DefaultMutableTreeNode parent = (DefaultMutableTreeNode)leaf.getParent();
			if(parent != null) {
				DefaultMutableTreeNode grandParent = (DefaultMutableTreeNode)parent.getParent();
				DefaultMutableTreeNode sibling = null;
				if(leaf.getNextSibling() != null) {
					sibling = leaf.getNextSibling();
				}
				else if(leaf.getPreviousSibling() != null) {
					sibling = leaf.getPreviousSibling();
				}
				if(grandParent != null) {
					int parentIndex = grandParent.getIndex(parent);
					grandParent.remove(parent);
					grandParent.insert(sibling, parentIndex);
				}
				else {
					newRoot = sibling;
				}
				break;
			}
			else {
				newRoot = null;
				break;
			}
		}
		leaf = leaf.getNextLeaf();
	}
	return newRoot;
}
 
Example 13
Source File: IfStatementExpressionAnalyzer.java    From IntelliJDeodorant with MIT License 5 votes vote down vote up
public DefaultMutableTreeNode getRemainingExpression(PsiExpression expressionToBeRemoved) {
    DefaultMutableTreeNode newRoot = new DefaultMutableTreeNode();
    processExpression(newRoot, completeExpression);
    DefaultMutableTreeNode leaf = newRoot.getFirstLeaf();
    while (leaf != null) {
        PsiExpression expression = (PsiExpression) leaf.getUserObject();
        if (expression.equals(expressionToBeRemoved)) {
            DefaultMutableTreeNode parent = (DefaultMutableTreeNode) leaf.getParent();
            if (parent != null) {
                DefaultMutableTreeNode grandParent = (DefaultMutableTreeNode) parent.getParent();
                DefaultMutableTreeNode sibling = null;
                if (leaf.getNextSibling() != null) {
                    sibling = leaf.getNextSibling();
                } else if (leaf.getPreviousSibling() != null) {
                    sibling = leaf.getPreviousSibling();
                }
                if (grandParent != null) {
                    int parentIndex = grandParent.getIndex(parent);
                    grandParent.remove(parent);
                    grandParent.insert(sibling, parentIndex);
                } else {
                    newRoot = sibling;
                }
            } else {
                newRoot = null;
            }
            break;
        }
        leaf = leaf.getNextLeaf();
    }
    return newRoot;
}
 
Example 14
Source File: TypesTreeModel.java    From binnavi with Apache License 2.0 5 votes vote down vote up
/**
 * Inserts member as a child of parentNode at the given index without raising any events
 * regarding the updates model!
 */
private void insertMemberAt(final TypeMember member, final DefaultMutableTreeNode parentNode,
    final int index) {
  final TypeMemberTreeNode memberNode = new TypeMemberTreeNode(member);
  parentNode.insert(memberNode, index);
  createTypeNodes(memberNode, member.getBaseType());
  nestedStructNodes.put(member.getBaseType(), memberNode);
  memberNodes.put(member, memberNode);
}
 
Example 15
Source File: TypesTreeModel.java    From binnavi with Apache License 2.0 5 votes vote down vote up
/**
 * Creates a new base type tree node below the given parent node and recursively creates all
 * member nodes.
 */
private ChildNodeDescriptor insertType(final DefaultMutableTreeNode parentNode,
    final BaseType baseType, final int index) {
  final BaseTypeTreeNode newNode = new BaseTypeTreeNode(baseType);
  parentNode.insert(newNode, index);
  createTypeNodes(newNode, baseType);
  return new ChildNodeDescriptor(newNode, index);
}
 
Example 16
Source File: Home.java    From dctb-utfpr-2018-1 with Apache License 2.0 5 votes vote down vote up
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
    // TODO add your handling code here:
    selectedNode = (DefaultMutableTreeNode)treeMem.getLastSelectedPathComponent();
    if(selectedNode != null && !txtTree.getText().isEmpty()){
        selectedNode.insert(new DefaultMutableTreeNode(txtTree.getText()), selectedNode.getIndex(selectedNode.getLastChild()));
        tree.reload(selectedNode);
    }
        txtTree.setText("");
}
 
Example 17
Source File: SunJDKParser.java    From tda with GNU Lesser General Public License v2.1 4 votes vote down vote up
private void renormalizeBlockingThreadTree(MonitorMap mmap, Map directChildMap) {
    Map allBlockingThreadsMap = new HashMap(directChildMap); // All threads that are blocking at least one other thread

    // First, renormalize based on monitors to get our unique tree
    // Tree will be unique as long as there are no deadlocks aka monitor loops
    for (Iterator iter = mmap.iterOfKeys(); iter.hasNext();) {
        String monitor1 = (String) iter.next();
        Map[] threads1 = mmap.getFromMonitorMap(monitor1);

        DefaultMutableTreeNode thread1Node = (DefaultMutableTreeNode) allBlockingThreadsMap.get(monitor1);
        if (thread1Node == null) {
            continue;
        }

        // Get information on the one thread holding this lock
        Iterator it = threads1[MonitorMap.LOCK_THREAD_POS].keySet().iterator();
        if (!it.hasNext()) {
            continue;
        }
        String threadLine1 = (String) it.next();

        for (Iterator iter2 = mmap.iterOfKeys(); iter2.hasNext();) {
            String monitor2 = (String) iter2.next();
            if (monitor1 == monitor2) {
                continue;
            }

            Map[] threads2 = mmap.getFromMonitorMap(monitor2);
            if (threads2[MonitorMap.WAIT_THREAD_POS].containsKey(threadLine1)) {
                // Get the node of the thread that is holding this lock
                DefaultMutableTreeNode thread2Node = (DefaultMutableTreeNode) allBlockingThreadsMap.get(monitor2);
                // Get the node of the monitor itself
                DefaultMutableTreeNode monitor2Node = (DefaultMutableTreeNode) thread2Node.getFirstChild();

                // If a redundant node for thread2 exists with no children, remove it
                // To compare, we have to remove "Thread - " from the front of display strings
                for (int i = 0; i < monitor2Node.getChildCount(); i++) {
                    DefaultMutableTreeNode child2 = (DefaultMutableTreeNode) monitor2Node.getChildAt(i);
                    if (child2.toString().substring(9).equals(threadLine1) && child2.getChildCount() == 0) {
                        monitor2Node.remove(i);
                        break;
                    }
                }

                // Thread1 is blocked by monitor2 held by thread2, so move thread1 under thread2
                monitor2Node.insert(thread1Node, 0);
                directChildMap.remove(monitor1);
                break;
            }
        }
    }

    allBlockingThreadsMap.clear();

    // Second, renormalize top level based on threads for cases where one thread holds multiple monitors
    boolean changed = false;
    do {
        changed = false;
        for (Iterator iter = directChildMap.entrySet().iterator(); iter.hasNext();) {
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) ((Map.Entry) iter.next()).getValue();
            if (checkForDuplicateThreadItem(directChildMap, node)) {
                changed = true;
                break;
            }
        }
    } while (changed);

    // Third, renormalize lower levels of the tree based on threads for cases where one thread holds multiple monitors
    for (Iterator iter = directChildMap.entrySet().iterator(); iter.hasNext();) {
        renormalizeThreadDepth((DefaultMutableTreeNode) ((Map.Entry) iter.next()).getValue());
    }
}