use of org.openlcb.swing.networktree.TreePane in project JMRI by JMRI.
the class NetworkTreePane method initComponents.
@Override
public void initComponents(CanSystemConnectionMemo memo) {
this.memo = memo;
memo.getTrafficController().addCanListener(this);
// add GUI components
setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS));
treePane = new TreePane();
treePane.setPreferredSize(new Dimension(300, 300));
treePane.initComponents((MimicNodeStore) memo.get(MimicNodeStore.class), (Connection) memo.get(Connection.class), (NodeID) memo.get(NodeID.class), new ActionLoader(memo.get(OlcbInterface.class)));
add(treePane);
treePane.addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
JTree tree = (JTree) e.getSource();
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
if (node == null) {
return;
}
if (node.getUserObject() instanceof NodeTreeRep.SelectionKey) {
((NodeTreeRep.SelectionKey) node.getUserObject()).select(node);
}
}
});
}
use of org.openlcb.swing.networktree.TreePane in project JMRI by JMRI.
the class TreePaneDemo method setUp.
@Before
public void setUp() throws Exception {
store = new MimicNodeStore(connection, nid1);
Message msg = new ProducerIdentifiedMessage(nid1, eventA, EventState.Unknown);
store.put(msg, null);
// build the TreePane, but don't put it in a frame (yet).
pane = new TreePane();
pane.initComponents(store, null, null, new NodeTreeRep.SelectionKeyLoader() {
@Override
public NodeTreeRep.SelectionKey cdiKey(String name, NodeID node) {
return new NodeTreeRep.SelectionKey(name, node) {
@Override
public void select(DefaultMutableTreeNode rep) {
System.out.println("Making special fuss over: " + rep + " for " + name + " on " + node);
}
};
}
});
if (GraphicsEnvironment.isHeadless()) {
// don't bother setting up a frame in headless.
return;
}
// Test is really popping a window before doing all else
frame = new JFrame();
frame.setTitle("TreePane Test");
frame.add(pane);
frame.pack();
frame.setMinimumSize(new java.awt.Dimension(200, 200));
frame.setVisible(true);
}
Aggregations