X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FNodePanel.java;h=ed7ed0b715a8a8482367754439717876fc7cb57b;hb=5642da5f473ab9ae57fee86c0cb3b33525a2e916;hp=c8613541c33ee636b569d9b23b9034d34c3d6053;hpb=f8ecfc1d254f7f413ee5c47fbb012b609f7f4fd1;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/NodePanel.java b/forester/java/src/org/forester/archaeopteryx/NodePanel.java index c861354..ed7ed0b 100644 --- a/forester/java/src/org/forester/archaeopteryx/NodePanel.java +++ b/forester/java/src/org/forester/archaeopteryx/NodePanel.java @@ -25,11 +25,17 @@ package org.forester.archaeopteryx; + import java.awt.Color; +import java.awt.Component; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.util.List; -import java.util.SortedMap; +import java.util.Map; import java.util.SortedSet; +import javax.swing.BoxLayout; +import javax.swing.JButton; import javax.swing.JEditorPane; import javax.swing.JPanel; import javax.swing.JScrollPane; @@ -53,7 +59,7 @@ import org.forester.phylogeny.data.Event; import org.forester.phylogeny.data.PhylogenyData; import org.forester.phylogeny.data.PhylogenyDataUtil; import org.forester.phylogeny.data.Point; -import org.forester.phylogeny.data.PropertiesMap; +import org.forester.phylogeny.data.PropertiesList; import org.forester.phylogeny.data.Property; import org.forester.phylogeny.data.Reference; import org.forester.phylogeny.data.Sequence; @@ -115,7 +121,7 @@ class NodePanel extends JPanel implements TreeSelectionListener { private final JEditorPane _pane; private final JTree _tree; - public NodePanel( final PhylogenyNode phylogeny_node ) { + public NodePanel( final PhylogenyNode phylogeny_node, final NodeFrame parent ) { String node_name = ""; if ( !ForesterUtil.isEmpty( phylogeny_node.getName() ) ) { node_name = phylogeny_node.getName() + " "; @@ -130,17 +136,38 @@ class NodePanel extends JPanel implements TreeSelectionListener { expandPath( SEQUENCE ); expandPath( EVENTS ); final JScrollPane tree_view = new JScrollPane( getJTree() ); + + final JButton close_button = new JButton( "Close" ); + close_button.setEnabled( true ); + _pane = new JEditorPane(); _pane.setEditable( false ); + final JScrollPane data_view = new JScrollPane( _pane ); final JSplitPane split_pane = new JSplitPane( JSplitPane.VERTICAL_SPLIT ); split_pane.setTopComponent( tree_view ); + data_view.add( close_button ); split_pane.setBottomComponent( data_view ); - data_view.setMinimumSize( Constants.NODE_PANEL_SPLIT_MINIMUM_SIZE ); - tree_view.setMinimumSize( Constants.NODE_PANEL_SPLIT_MINIMUM_SIZE ); - split_pane.setDividerLocation( 400 ); - split_pane.setPreferredSize( Constants.NODE_PANEL_SIZE ); - add( split_pane ); + data_view.setMinimumSize( AptxConstants.NODE_PANEL_SPLIT_MINIMUM_SIZE ); + tree_view.setMinimumSize( AptxConstants.NODE_PANEL_SPLIT_MINIMUM_SIZE ); + split_pane.setDividerLocation( 300 ); + split_pane.setPreferredSize( AptxConstants.NODE_PANEL_SIZE ); + + + close_button.addActionListener( new ActionListener() { + public void actionPerformed( final ActionEvent e ) { + parent.close(); + } + } ); + + + close_button.setAlignmentX( Component.CENTER_ALIGNMENT ); + split_pane.setAlignmentX( Component.CENTER_ALIGNMENT ); + final JPanel panel = new JPanel(); + panel.setLayout( new BoxLayout( panel, BoxLayout.Y_AXIS ) ); + panel.add( split_pane ); + panel.add( close_button ); + add( panel ); } @Override @@ -207,8 +234,7 @@ class NodePanel extends JPanel implements TreeSelectionListener { addSubelement( category, "External children", String.valueOf( phylogeny_node.getAllExternalDescendants().size() ) ); - final SortedMap distinct_tax = PhylogenyMethods - .obtainDistinctTaxonomyCounts( phylogeny_node ); + final Map distinct_tax = PhylogenyMethods.obtainDistinctTaxonomyCounts( phylogeny_node ); if ( distinct_tax != null ) { final int no_tax = PhylogenyMethods.calculateNumberOfExternalNodesWithoutTaxonomy( phylogeny_node ); final int tax_count = distinct_tax.size(); @@ -343,13 +369,13 @@ class NodePanel extends JPanel implements TreeSelectionListener { } private static void addProperties( final DefaultMutableTreeNode top, - final PropertiesMap properties, + final PropertiesList properties, final String string ) { - final SortedMap properties_map = properties.getProperties(); + final List properties_map = properties.getProperties(); final DefaultMutableTreeNode category = new DefaultMutableTreeNode( "Properties " ); top.add( category ); - for( final String key : properties_map.keySet() ) { - final Property prop = properties_map.get( key ); + for( final Property prop : properties_map ) { + category.add( new DefaultMutableTreeNode( prop.getRef() + "=" + prop.getValue() + " " + prop.getUnit() + " [" + prop.getAppliesTo().toString() + "]" ) ); }