/** * DasaTreeListener.java * Created On 2006, Mar 25, 2006 4:30:43 PM * @author E. Rajasekar */ package app.astrosoft.ui.tree; import javax.swing.JTree; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import javax.swing.tree.TreePath; import app.astrosoft.core.Dasa; import app.astrosoft.core.Vimshottari; import app.astrosoft.core.VimDasa; import app.astrosoft.ui.table.AstrosoftTableModel; import app.astrosoft.ui.table.TableData; import app.astrosoft.ui.table.TableDataFactory; public class DasaTreeListener implements TreeSelectionListener { private DasaTreeSelectionHandler handler; public DasaTreeListener(DasaTreeSelectionHandler handler) { this.handler= handler; } public void valueChanged(TreeSelectionEvent e) { JTree tree = (JTree) e.getSource(); DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); if (node != null){ boolean isRoot = node.isRoot(); Dasa dasa = (Dasa) node.getUserObject(); //Add sub dasas only if not present already. if (!isRoot && node.isLeaf()){ for(Dasa d : dasa.subDasas()){ node.add(new DefaultMutableTreeNode(d, true)); } DefaultTreeModel model = (DefaultTreeModel)tree.getModel(); model.reload(node); } handler.nodeSelected(node, e.getNewLeadSelectionPath()); } //tree.collapsePath(e.getOldLeadSelectionPath()); } }