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.Map;
import java.util.SortedMap;
import java.util.SortedSet;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
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;
class NodePanel extends JPanel implements TreeSelectionListener {
- static final String BASIC = "Basic";
- static final String BINARY_CHARACTERS = "Binary characters";
- static final String CONFIDENCE = "Confidence";
- static final String CONFIDENCE_TYPE = "type";
- static final String DATE = "Date";
- static final String DATE_DESCRIPTION = "Description";
- static final String DATE_MAX = "Max";
- static final String DATE_MIN = "Min";
- static final String DATE_UNIT = "Unit";
- static final String DATE_VALUE = "Value";
- static final String DIST_ALT_UNIT = "Altitude unit";
- static final String DIST_ALTITUDE = "Altitude";
- static final String DIST_DESCRIPTION = "Description";
- static final String DIST_GEODETIC_DATUM = "Geodetic datum";
- static final String DIST_LATITUDE = "Latitude";
- static final String DIST_LONGITUDE = "Longitude";
- static final String DISTRIBUTION = "Distribution";
- static final String EVENTS = "Events";
- static final String EVENTS_DUPLICATIONS = "Duplications";
- static final String EVENTS_GENE_LOSSES = "Gene losses";
- static final String EVENTS_SPECIATIONS = "Speciations";
- static final String LIT_REFERENCE = "Reference";
- static final String LIT_REFERENCE_DESC = "Description";
- static final String LIT_REFERENCE_DOI = "DOI";
- static final String NODE_BRANCH_COLOR = "Branch color";
- static final String NODE_BRANCH_LENGTH = "Branch length";
- static final String NODE_BRANCH_WIDTH = "Branch width";
- static final String NODE_NAME = "Name";
- static final String PROP = "Properties";
- static final String REFERENCE = "Reference";
- static final String SEQ_ACCESSION = "Accession";
- static final String SEQ_LOCATION = "Location";
- static final String SEQ_MOL_SEQ = "Mol seq";
- static final String SEQ_NAME = "Name";
- static final String SEQ_SYMBOL = "Symbol";
- static final String SEQ_TYPE = "Type";
- static final String SEQ_URI = "URI";
- static final String SEQUENCE = "Sequence";
- static final String TAXONOMY = "Taxonomy";
- static final String TAXONOMY_AUTHORITY = "Authority";
- static final String TAXONOMY_CODE = "Code";
- static final String TAXONOMY_COMMON_NAME = "Common name";
- static final String TAXONOMY_IDENTIFIER = "Identifier";
- static final String TAXONOMY_RANK = "Rank";
- static final String TAXONOMY_SCIENTIFIC_NAME = "Scientific name";
- static final String TAXONOMY_SYNONYM = "Synonym";
- static final String TAXONOMY_URI = "URI";
- private static final String SEQ_GENE_NAME = "Gene name";
- private static final long serialVersionUID = 5120159904388100771L;
- private final JEditorPane _pane;
- private final JTree _tree;
+ static final String BASIC = "Basic";
+ static final String BINARY_CHARACTERS = "Binary characters";
+ static final String CONFIDENCE = "Confidence";
+ static final String CONFIDENCE_TYPE = "type";
+ static final String DATE = "Date";
+ static final String DATE_DESCRIPTION = "Description";
+ static final String DATE_MAX = "Max";
+ static final String DATE_MIN = "Min";
+ static final String DATE_UNIT = "Unit";
+ static final String DATE_VALUE = "Value";
+ static final String DIST_ALT_UNIT = "Altitude unit";
+ static final String DIST_ALTITUDE = "Altitude";
+ static final String DIST_DESCRIPTION = "Description";
+ static final String DIST_GEODETIC_DATUM = "Geodetic datum";
+ static final String DIST_LATITUDE = "Latitude";
+ static final String DIST_LONGITUDE = "Longitude";
+ static final String DISTRIBUTION = "Distribution";
+ static final String EVENTS = "Events";
+ static final String EVENTS_DUPLICATIONS = "Duplications";
+ static final String EVENTS_GENE_LOSSES = "Gene losses";
+ static final String EVENTS_SPECIATIONS = "Speciations";
+ static final String LIT_REFERENCE = "Reference";
+ static final String LIT_REFERENCE_DESC = "Description";
+ static final String LIT_REFERENCE_DOI = "DOI";
+ static final String NODE_BRANCH_COLOR = "Branch color";
+ static final String NODE_BRANCH_LENGTH = "Branch length";
+ static final String NODE_BRANCH_WIDTH = "Branch width";
+ static final String NODE_NAME = "Name";
+ static final String PROP = "Properties";
+ static final String REFERENCE = "Reference";
+ static final String SEQ_ACCESSION = "Accession";
+ static final String SEQ_LOCATION = "Location";
+ static final String SEQ_MOL_SEQ = "Mol seq";
+ static final String SEQ_NAME = "Name";
+ static final String SEQ_SYMBOL = "Symbol";
+ static final String SEQ_GENE_NAME = "Gene name";
+ static final String SEQ_TYPE = "Type";
+ static final String SEQ_URI = "URI";
+ static final String SEQUENCE = "Sequence";
+ static final String TAXONOMY = "Taxonomy";
+ static final String TAXONOMY_AUTHORITY = "Authority";
+ static final String TAXONOMY_CODE = "Code";
+ static final String TAXONOMY_COMMON_NAME = "Common name";
+ static final String TAXONOMY_IDENTIFIER = "Identifier";
+ static final String TAXONOMY_RANK = "Rank";
+ static final String TAXONOMY_SCIENTIFIC_NAME = "Scientific name";
+ static final String TAXONOMY_SYNONYM = "Synonym";
+ static final String TAXONOMY_URI = "URI";
+ private static final long serialVersionUID = 5120159904388100771L;
+ 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() + " ";
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
addSubelement( category,
"External children",
String.valueOf( phylogeny_node.getAllExternalDescendants().size() ) );
- final SortedMap<Taxonomy, Integer> distinct_tax = PhylogenyMethods
- .obtainDistinctTaxonomyCounts( phylogeny_node );
+ final Map<Taxonomy, Integer> 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();
}
private static void addProperties( final DefaultMutableTreeNode top,
- final PropertiesMap properties,
+ final PropertiesList properties,
final String string ) {
- final SortedMap<String, Property> properties_map = properties.getProperties();
+ final List<Property> 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() + "]" ) );
}