public SpecSelectionComponent(boolean showSystemOnly) { this.tree = new BeanTreeView(); this.em = new ExplorerManager(); this.selectionListener = new SelectionListener(); this.specification = newProperty(SPECIFICATION_PROPERTY, null); this.icon = newProperty(ICON_PROPERTY, null); tree.setRootVisible(false); tree.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); DecoratedNode root = new DecoratedNode( new DummyWsNode(WorkspaceFactory.getInstance().getActiveWorkspace(), SPECS_ID), showSystemOnly ? ItemWsNodeFilter.SYSTEM_ONLY : Predicates.<Node>alwaysTrue()); for (DecoratedNode o : root.breadthFirstIterable()) { o.setPreferredActionDecorator(DecoratedNode.PreferredAction.DO_NOTHING); } em.setRootContext(root); setLayout(new BorderLayout()); add(tree, BorderLayout.CENTER); setPreferredSize(new Dimension(225, 300)); em.addVetoableChangeListener(selectionListener); addPropertyChangeListener( new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { String p = evt.getPropertyName(); if (p.equals(SPECIFICATION_PROPERTY)) { onSpecificationChange(); } } }); }