Java Code Examples for javax.swing.tree.DefaultTreeCellRenderer#setOpenIcon()

The following examples show how to use javax.swing.tree.DefaultTreeCellRenderer#setOpenIcon() . 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: AnnotationFeaturesViewer.java    From uima-uimaj with Apache License 2.0 6 votes vote down vote up
/**
 * Populate.
 *
 * @param analysisEngine the analysis engine
 * @param aeMetaData the ae meta data
 */
public void populate(AnalysisEngine analysisEngine, AnalysisEngineMetaData aeMetaData) {
  tree = generateTreeView(analysisEngine, aeMetaData);

  tree.setDragEnabled(true); // To allow drag to stylemap table.
  tree.setRootVisible(false);
  tree.setShowsRootHandles(true); // Displays node expansion glyphs.

  TreeSelectionModel selectionModel = tree.getSelectionModel();
  selectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

  DefaultTreeCellRenderer cellRenderer = new DefaultTreeCellRenderer();
  cellRenderer.setLeafIcon(null);
  cellRenderer.setClosedIcon(null);
  cellRenderer.setOpenIcon(null);
  tree.setCellRenderer(cellRenderer);

  scrollPane.getViewport().add(tree, null);
}
 
Example 2
Source File: MainFrame.java    From uima-uimaj with Apache License 2.0 6 votes vote down vote up
/**
 * Inits the FS tree.
 */
private void initFSTree() {
  FSTreeModel treeModel = new FSTreeModel();
  this.fsTree = new JTree(treeModel);
  this.fsTree.addMouseListener(new StringFsPopupEventAdapter());
  this.fsTree.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 2));
  this.fsTree.setLargeModel(true);
  // Only one node can be selected at any one time.
  this.fsTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
  this.fsTree.addTreeSelectionListener(new FSTreeSelectionListener(this));
  DefaultTreeCellRenderer cellRenderer = new DefaultTreeCellRenderer();
  cellRenderer.setLeafIcon(null);
  // cellRenderer.setIcon(null);
  cellRenderer.setClosedIcon(null);
  cellRenderer.setOpenIcon(null);
  this.fsTree.setCellRenderer(cellRenderer);
}
 
Example 3
Source File: MainFrame.java    From uima-uimaj with Apache License 2.0 6 votes vote down vote up
/**
 * Inits the IR tree.
 */
private void initIRTree() {
  DefaultMutableTreeNode root = new DefaultMutableTreeNode(noIndexReposLabel);
  DefaultTreeModel model = new DefaultTreeModel(root);
  this.indexTree = new JTree(model);
  this.indexTree.setBorder(BorderFactory.createEmptyBorder(2, 4, 2, 2));
  // Only one node can be selected at any one time.
  this.indexTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
  this.indexTree.addTreeSelectionListener(new IndexTreeSelectionListener(this));
  // No icons.
  DefaultTreeCellRenderer cellRenderer = new DefaultTreeCellRenderer();
  cellRenderer.setLeafIcon(null);
  // cellRenderer.setIcon(null);
  cellRenderer.setClosedIcon(null);
  cellRenderer.setOpenIcon(null);
  this.indexTree.setCellRenderer(cellRenderer);
}
 
Example 4
Source File: AnnotationFeaturesViewer.java    From uima-uimaj with Apache License 2.0 6 votes vote down vote up
/**
 * Populate.
 *
 * @param analysisEngine the analysis engine
 * @param aeMetaData the ae meta data
 * @param cas the cas
 */
public void populate(AnalysisEngineDescription analysisEngine, AnalysisEngineMetaData aeMetaData,
        CAS cas) {
  tree = generateTreeView(analysisEngine, aeMetaData, cas);

  tree.setDragEnabled(true); // To allow drag to stylemap table.
  tree.setRootVisible(false);
  tree.setShowsRootHandles(true); // Displays node expansion glyphs.

  TreeSelectionModel selectionModel = tree.getSelectionModel();
  selectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

  DefaultTreeCellRenderer cellRenderer = new DefaultTreeCellRenderer();
  cellRenderer.setLeafIcon(null);
  cellRenderer.setClosedIcon(null);
  cellRenderer.setOpenIcon(null);
  tree.setCellRenderer(cellRenderer);

  scrollPane.getViewport().add(tree, null);
}
 
Example 5
Source File: ExplainDialogFactory.java    From lucene-solr with Apache License 2.0 6 votes vote down vote up
private JTree createExplanationTree() {
  DefaultMutableTreeNode top = createNode(explanation);
  traverse(top, explanation.getDetails());

  JTree tree = new JTree(top);
  tree.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
  DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
  renderer.setOpenIcon(null);
  renderer.setClosedIcon(null);
  renderer.setLeafIcon(null);
  tree.setCellRenderer(renderer);
  // expand all nodes
  for (int row = 0; row < tree.getRowCount(); row++) {
    tree.expandRow(row);
  }
  return tree;
}
 
Example 6
Source File: CTagFilterTree.java    From binnavi with Apache License 2.0 6 votes vote down vote up
/**
 * Creates a new filter tree object.
 * 
 * @param tagManager Provides the tags the user can select.
 */
public CTagFilterTree(final ITagManager tagManager) {
  super(new CFilterTreeModel(tagManager.getRootTag()));

  m_tagManager = tagManager;

  setDigIn(false);

  final DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
  renderer.setOpenIcon(ICON_CONTAINER_TAG);
  renderer.setClosedIcon(ICON_CONTAINER_TAG);
  renderer.setLeafIcon(ICON_TAG);
  setCellRenderer(renderer);

  setRootVisible(false);
  TreeHelpers.expandAll(this, true);

  tagManager.addListener(m_tagManagerListener);
}
 
Example 7
Source File: MainFrame.java    From uima-uimaj with Apache License 2.0 5 votes vote down vote up
/**
 * Inits the.
 */
private void init() {
  // Set the title.
  this.setTitle("Type System Editor");
  JSplitPane contentPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
  this.setContentPane(contentPane);

  // Set up the type tree. Use simple DefaultTreeModel.
  DefaultMutableTreeNode root = new DefaultMutableTreeNode("<html><b>No CAS!</b></html>");
  DefaultTreeModel treeModel = new DefaultTreeModel(root);
  this.typeTree = new JTree(treeModel);
  this.typeTree.addTreeSelectionListener(new TypeTreeSelectionListener());
  TreeSelectionModel treeSelectionModel = new DefaultTreeSelectionModel();
  treeSelectionModel.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
  this.typeTree.setSelectionModel(treeSelectionModel);
  JScrollPane treePane = new JScrollPane(this.typeTree);
  contentPane.setLeftComponent(treePane);
  DefaultTreeCellRenderer cellRenderer = new DefaultTreeCellRenderer();
  cellRenderer.setLeafIcon(null);
  // cellRenderer.setIcon(null);
  cellRenderer.setClosedIcon(null);
  cellRenderer.setOpenIcon(null);
  this.typeTree.setCellRenderer(cellRenderer);

  // Set up the feature table.
  this.featureTable = new JTable(new FeatureTableModel());
  JScrollPane featurePane = new JScrollPane(this.featureTable);
  featurePane.getViewport().setBackground(Color.WHITE);
  contentPane.setRightComponent(featurePane);

  this.setJMenuBar(createMenuBar());
}
 
Example 8
Source File: HierarchyViewer.java    From intellij-plugin-v4 with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
private void setupTree(Tree tree) {
	setTree(tree);

	DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
	renderer.setOpenIcon(Icons.PARSER_RULE);
	renderer.setClosedIcon(Icons.PARSER_RULE);
	renderer.setLeafIcon(Icons.LEXER_RULE);
	myTree.setCellRenderer(renderer);
}
 
Example 9
Source File: NetworkDisplay.java    From yeti with MIT License 5 votes vote down vote up
private DefaultTreeCellRenderer getPortRenderer(URL image) {
    DefaultTreeCellRenderer portRenderer = new DefaultTreeCellRenderer();
    portRenderer.setLeafIcon(new ImageIcon(image));
    portRenderer.setOpenIcon(new ImageIcon(image));
    portRenderer.setClosedIcon(new ImageIcon(image));

    return portRenderer;
}
 
Example 10
Source File: LayerManagerForm.java    From snap-desktop with GNU General Public License v3.0 5 votes vote down vote up
private CheckBoxTree createCheckBoxTree(LayerTreeModel treeModel) {

        final CheckBoxTree checkBoxTree = new CheckBoxTree(treeModel) {
            @Override
            public boolean isPathEditable(TreePath path) {
                Layer layer = getLayer(path);
                if (layer != null) {
                    return isLayerNameEditable(layer);
                }
                return false;
            }  
        };
        checkBoxTree.setRootVisible(false);
        checkBoxTree.setShowsRootHandles(true);
        checkBoxTree.setDigIn(false);

        checkBoxTree.setEditable(true);
        checkBoxTree.setDragEnabled(true);
        checkBoxTree.setDropMode(DropMode.ON_OR_INSERT);
        checkBoxTree.setTransferHandler(new LayerTreeTransferHandler(view, checkBoxTree));

        checkBoxTree.getSelectionModel().addTreeSelectionListener(new LayerSelectionListener());

        final CheckBoxTreeSelectionModel checkBoxSelectionModel = checkBoxTree.getCheckBoxTreeSelectionModel();
        checkBoxSelectionModel.addTreeSelectionListener(new CheckBoxTreeSelectionListener());

        final DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) checkBoxTree.getActualCellRenderer();
        renderer.setLeafIcon(null);
        renderer.setClosedIcon(null);
        renderer.setOpenIcon(null);
        return checkBoxTree;
    }
 
Example 11
Source File: GroupedBandChoosingStrategy.java    From snap-desktop with GNU General Public License v3.0 5 votes vote down vote up
public JPanel createCheckersPane() {
    DefaultMutableTreeNode root = new DefaultMutableTreeNode();
    Map<String, Integer> groupNodeMap = initGrouping(root);
    List<TreePath> selectedPaths = new ArrayList<>();
    addBandCheckBoxes(root, selectedPaths, groupNodeMap);
    addTiePointGridCheckBoxes(root, selectedPaths, groupNodeMap);
    removeEmptyGroups(root, groupNodeMap);

    TreeModel treeModel = new DefaultTreeModel(root);

    checkBoxTree = new CheckBoxTree(treeModel);
    checkBoxTree.getCheckBoxTreeSelectionModel().setSelectionPaths(selectedPaths.toArray(new TreePath[selectedPaths.size()]));
    checkBoxTree.setRootVisible(false);
    checkBoxTree.setShowsRootHandles(true);
    checkBoxTree.getCheckBoxTreeSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
        @Override
        public void valueChanged(TreeSelectionEvent e) {
            updateCheckBoxStates();
        }
    });
    final DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) checkBoxTree.getActualCellRenderer();
    renderer.setFont(SMALL_ITALIC_FONT);
    renderer.setLeafIcon(null);
    renderer.setOpenIcon(null);
    renderer.setClosedIcon(null);
    Color color = new Color(240, 240, 240);
    checkBoxTree.setBackground(color);
    renderer.setBackgroundSelectionColor(color);
    renderer.setBackgroundNonSelectionColor(color);
    renderer.setBorderSelectionColor(color);
    renderer.setTextSelectionColor(Color.BLACK);

    GridBagConstraints gbc2 = GridBagUtils.createConstraints("insets.left=4,anchor=WEST,fill=BOTH");
    final JPanel checkersPane = GridBagUtils.createPanel();
    GridBagUtils.addToPanel(checkersPane, checkBoxTree, gbc2, "weightx=1.0,weighty=1.0");
    return checkersPane;
}
 
Example 12
Source File: SwingGui.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Initializes a tree for this tree table.
 */
public JTree resetTree(TreeTableModel treeTableModel) {
    tree = new TreeTableCellRenderer(treeTableModel);

    // Install a tableModel representing the visible rows in the tree.
    super.setModel(new TreeTableModelAdapter(treeTableModel, tree));

    // Force the JTable and JTree to share their row selection models.
    ListToTreeSelectionModelWrapper selectionWrapper = new
        ListToTreeSelectionModelWrapper();
    tree.setSelectionModel(selectionWrapper);
    setSelectionModel(selectionWrapper.getListSelectionModel());

    // Make the tree and table row heights the same.
    if (tree.getRowHeight() < 1) {
        // Metal looks better like this.
        setRowHeight(18);
    }

    // Install the tree editor renderer and editor.
    setDefaultRenderer(TreeTableModel.class, tree);
    setDefaultEditor(TreeTableModel.class, new TreeTableCellEditor());
    setShowGrid(true);
    setIntercellSpacing(new Dimension(1,1));
    tree.setRootVisible(false);
    tree.setShowsRootHandles(true);
    DefaultTreeCellRenderer r = (DefaultTreeCellRenderer)tree.getCellRenderer();
    r.setOpenIcon(null);
    r.setClosedIcon(null);
    r.setLeafIcon(null);
    return tree;
}
 
Example 13
Source File: DynamicTree.java    From Pixie with MIT License 5 votes vote down vote up
/**
 * Update the tree small icons: expanded/collapsed/leaf.
 */
private void changeTreeIcons() {
    DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer();
    renderer.setClosedIcon(Icons.CLOSED_ICON_16X16);
    renderer.setOpenIcon(Icons.OPEN_ICON_16X16);
    renderer.setLeafIcon(Icons.LEAF_ICON_16X16);
}
 
Example 14
Source File: GenealogyTree.java    From marathonv5 with Apache License 2.0 5 votes vote down vote up
public GenealogyTree(Person graphNode) {
    super(new GenealogyModel(graphNode));
    getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
    DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
    Icon personIcon = null;
    renderer.setLeafIcon(personIcon);
    renderer.setClosedIcon(personIcon);
    renderer.setOpenIcon(personIcon);
    setCellRenderer(renderer);
}
 
Example 15
Source File: SwingGui.java    From JsDroidCmd with Mozilla Public License 2.0 5 votes vote down vote up
/**
 * Initializes a tree for this tree table.
 */
public JTree resetTree(TreeTableModel treeTableModel) {
    tree = new TreeTableCellRenderer(treeTableModel);

    // Install a tableModel representing the visible rows in the tree.
    super.setModel(new TreeTableModelAdapter(treeTableModel, tree));

    // Force the JTable and JTree to share their row selection models.
    ListToTreeSelectionModelWrapper selectionWrapper = new
        ListToTreeSelectionModelWrapper();
    tree.setSelectionModel(selectionWrapper);
    setSelectionModel(selectionWrapper.getListSelectionModel());

    // Make the tree and table row heights the same.
    if (tree.getRowHeight() < 1) {
        // Metal looks better like this.
        setRowHeight(18);
    }

    // Install the tree editor renderer and editor.
    setDefaultRenderer(TreeTableModel.class, tree);
    setDefaultEditor(TreeTableModel.class, new TreeTableCellEditor());
    setShowGrid(true);
    setIntercellSpacing(new Dimension(1,1));
    tree.setRootVisible(false);
    tree.setShowsRootHandles(true);
    DefaultTreeCellRenderer r = (DefaultTreeCellRenderer)tree.getCellRenderer();
    r.setOpenIcon(null);
    r.setClosedIcon(null);
    r.setLeafIcon(null);
    return tree;
}
 
Example 16
Source File: OperationsTree.java    From cstc with GNU General Public License v3.0 5 votes vote down vote up
public OperationsTree() {
	super();
	
	this.model = (DefaultTreeModel) this.getModel();
	this.model.setRoot(this.createTree());
	this.setToolTipText("");
	DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) this.getCellRenderer();
	renderer.setLeafIcon(nodeIcon);
	renderer.setClosedIcon(closedIcon);
	renderer.setOpenIcon(openIcon);
}
 
Example 17
Source File: CheckTreeCellRenderer.java    From visualvm with GNU General Public License v2.0 4 votes vote down vote up
private void setupCellRendererIcon(DefaultTreeCellRenderer renderer, Icon icon) {
    renderer.setLeafIcon(icon);
    renderer.setOpenIcon(icon);
    renderer.setClosedIcon(icon);
}
 
Example 18
Source File: NetworkDisplay.java    From yeti with MIT License 4 votes vote down vote up
public TreeRenderer() {

            URL networkIconUrl = this.getClass().getClassLoader().getResource("com/sensepost/yeti/resources/network.png");
            URL domainIconUrl = this.getClass().getClassLoader().getResource("com/sensepost/yeti/resources/star.png");
            URL hostIconUrl = this.getClass().getClassLoader().getResource("com/sensepost/yeti/resources/server.png");
            URL ipIconUrl = this.getClass().getClassLoader().getResource("com/sensepost/yeti/resources/bullet_blue.png");
            URL attributeIconUrl = this.getClass().getClassLoader().getResource("com/sensepost/yeti/resources/attr.png");
            URL attributeConfigIconUrl = this.getClass().getClassLoader().getResource("com/sensepost/yeti/resources/attr_config.png");
            URL attributeVulnIconUrl = this.getClass().getClassLoader().getResource("com/sensepost/yeti/resources/vuln.png");

            networkNodeRenderer = new DefaultTreeCellRenderer();
            networkNodeRenderer.setLeafIcon(new ImageIcon(networkIconUrl));
            networkNodeRenderer.setOpenIcon(new ImageIcon(networkIconUrl));
            networkNodeRenderer.setClosedIcon(new ImageIcon(networkIconUrl));

            domainNodeRenderer = new DefaultTreeCellRenderer();
            domainNodeRenderer.setLeafIcon(new ImageIcon(domainIconUrl));
            domainNodeRenderer.setOpenIcon(new ImageIcon(domainIconUrl));
            domainNodeRenderer.setClosedIcon(new ImageIcon(domainIconUrl));

            hostNodeRenderer = new DefaultTreeCellRenderer();
            hostNodeRenderer.setLeafIcon(new ImageIcon(hostIconUrl));
            hostNodeRenderer.setOpenIcon(new ImageIcon(hostIconUrl));
            hostNodeRenderer.setClosedIcon(new ImageIcon(hostIconUrl));

            ipNodeRenderer = new DefaultTreeCellRenderer();
            ipNodeRenderer.setLeafIcon(new ImageIcon(ipIconUrl));
            ipNodeRenderer.setOpenIcon(new ImageIcon(ipIconUrl));
            ipNodeRenderer.setClosedIcon(new ImageIcon(ipIconUrl));

            attrNodeRenderer = new DefaultTreeCellRenderer();
            attrNodeRenderer.setLeafIcon(new ImageIcon(attributeIconUrl));
            attrNodeRenderer.setOpenIcon(new ImageIcon(attributeIconUrl));
            attrNodeRenderer.setClosedIcon(new ImageIcon(attributeIconUrl));

            attrConfigNodeRenderer = new DefaultTreeCellRenderer();
            attrConfigNodeRenderer.setLeafIcon(new ImageIcon(attributeConfigIconUrl));
            attrConfigNodeRenderer.setOpenIcon(new ImageIcon(attributeConfigIconUrl));
            attrConfigNodeRenderer.setClosedIcon(new ImageIcon(attributeConfigIconUrl));

            attrVulnNodeRenderer = new DefaultTreeCellRenderer();
            attrVulnNodeRenderer.setLeafIcon(new ImageIcon(attributeVulnIconUrl));
            attrVulnNodeRenderer.setOpenIcon(new ImageIcon(attributeVulnIconUrl));
            attrVulnNodeRenderer.setClosedIcon(new ImageIcon(attributeVulnIconUrl));

            hostsNodeRenderer = new DefaultTreeCellRenderer();
            hostsNodeRenderer.setLeafIcon(new ImageIcon(networkIconUrl));
            hostsNodeRenderer.setOpenIcon(new ImageIcon(networkIconUrl));
            hostsNodeRenderer.setClosedIcon(new ImageIcon(networkIconUrl));

        }
 
Example 19
Source File: OverviewInfoTreeUI.java    From CQL with GNU Affero General Public License v3.0 4 votes vote down vote up
/**
 * Constructs new overview info tree.
 * 
 * @param inFrame The application frame in which this exists.
 */
public OverviewInfoTreeUI(ApplicationFrame inFrame) {
	// Create the top node.
	_topNode = new DefaultMutableTreeNode("EA Overview");
	_theFrame = inFrame;

	// Create a tree that allows one selection at a time.
	_infoTreeModel = new DefaultTreeModel(_topNode);
	_infoTree = new JTree(_infoTreeModel);

	_infoTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
	_infoTree.setRootVisible(false); // Hides root node
	_infoTree.setShowsRootHandles(true); // Shows nodes off root

	DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

	renderer.setOpenIcon(null);
	renderer.setClosedIcon(null);
	renderer.setLeafIcon(null);
	_infoTree.setCellRenderer(renderer);

	// Add tree into scroll pane and then to this pane
	this.setViewportView(_infoTree);
	this.setMinimumSize(new Dimension(150, 200));

	_popupMenu = new JPopupMenu();
	_newPosition = new Point(50, 50);

	buildPopupMenu();

	// Create Category Heads
	_tree_sketches = new DefaultMutableTreeNode("Sketches");

	_topNode.add(_tree_sketches);

	_tree_views = new DefaultMutableTreeNode("Views");

	_topNode.add(_tree_views);

	// Initialize ArrayList of expansion state information
	expanState = new ArrayList<>();
}
 
Example 20
Source File: ModelInfoTreeUI.java    From CQL with GNU Affero General Public License v3.0 2 votes vote down vote up
/**
 * Default constructor
 *
 * @param inFrame
 */
public ModelInfoTreeUI(F inFrame) {
	// Create the top node.
	_topNode = new DefaultMutableTreeNode("EA Sketch");
	_theFrame = inFrame;
	_newPosition = new Point(50, 50);

	// Create a tree that allows one selection at a time.
	_infoTreeModel = new DefaultTreeModel(_topNode);
	_infoTree = new JTree(_infoTreeModel);

	_infoTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
	_infoTree.setRootVisible(false); // Hides root node
	_infoTree.setShowsRootHandles(true); // Shows nodes off root

	DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

	renderer.setOpenIcon(null);
	renderer.setClosedIcon(null);
	renderer.setLeafIcon(null);
	_infoTree.setCellRenderer(renderer);

	// Add tree into scroll pane and then to this pane
	this.setViewportView(_infoTree);
	this.setMinimumSize(new Dimension(150, 200));

	_popupMenu = new JPopupMenu();

	buildPopupMenu();

	// Create Category Heads
	_tree_entities = new DefaultMutableTreeNode("Entities");

	_topNode.add(_tree_entities);

	_tree_constraints = new DefaultMutableTreeNode("Constraints");

	_topNode.add(_tree_constraints);

	_tree_constraints_commutative = new DefaultMutableTreeNode("Commutative Diagrams");

	_tree_constraints.add(_tree_constraints_commutative);

	_tree_constraints_product = new DefaultMutableTreeNode("Product Constraints");

	_tree_constraints.add(_tree_constraints_product);

	_tree_constraints_pullback = new DefaultMutableTreeNode("Pullback Constraints");

	_tree_constraints.add(_tree_constraints_pullback);

	_tree_constraints_equalizer = new DefaultMutableTreeNode("Equalizer Constraints");

	_tree_constraints.add(_tree_constraints_equalizer);

	_tree_constraints_sum = new DefaultMutableTreeNode("Sum Constraints");

	_tree_constraints.add(_tree_constraints_sum);

	_tree_constraints_limit = new DefaultMutableTreeNode("Limit Constraints");

	_tree_constraints.add(_tree_constraints_limit);

	// Initialize ArrayList of expansion state information
	expanState = new ArrayList<>();
}