package devopsdistilled.operp.client.main; import javax.inject.Inject; import javax.swing.JComponent; import javax.swing.JScrollPane; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import devopsdistilled.operp.client.abstracts.TaskPane; import devopsdistilled.operp.client.abstracts.ViewPane; public class NavigationPane extends ViewPane implements TreeSelectionListener { @Inject private NavigationTree navigationTree; @Inject private MainWindow mainWindow; @Override public JComponent getPane() { navigationTree.getTree().expandRow(0); navigationTree.setListener(this); return new JScrollPane(navigationTree.getTree()); } @Override public void valueChanged(TreeSelectionEvent event) { DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) event .getPath().getLastPathComponent(); DefaultMutableTreeNode prevNode = (DefaultMutableTreeNode) event .getOldLeadSelectionPath().getLastPathComponent(); TaskPane newTaskPane = (TaskPane) selectedNode.getUserObject(); TaskPane oldTaskPane = (TaskPane) prevNode.getUserObject(); mainWindow.getController().changeTaskPane(newTaskPane, oldTaskPane); } }