in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / MainPanel.java
index 8062491..cc03467 100644 (file)
@@ -24,7 +24,7 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 //
 // Contact: phylosoft @ gmail . com
-// WWW: www.phylosoft.org/forester
+// WWW: https://sites.google.com/site/cmzmasek/home/software/forester
 
 package org.forester.archaeopteryx;
 
@@ -36,8 +36,10 @@ import java.awt.event.ComponentEvent;
 import java.awt.event.ComponentListener;
 import java.awt.image.BufferedImage;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import javax.swing.JPanel;
@@ -64,13 +66,11 @@ public class MainPanel extends JPanel implements ComponentListener {
     private TreeColorSet                     _colorset;
     private TreeFontSet                      _fontset;
     private Phylogeny                        _cut_or_copied_tree;
-    private Set<Integer>                     _copied_and_pasted_nodes;
+    private Set<Long>                        _copied_and_pasted_nodes;
     private Hashtable<String, BufferedImage> _image_map;
+    private static Map<String, String>       _lineage_to_rank_map;
 
-    MainPanel() {
-    }
-
-    MainPanel( final Configuration configuration, final MainFrame parent ) {
+    public MainPanel( final Configuration configuration, final MainFrame parent ) {
         if ( configuration == null ) {
             throw new IllegalArgumentException( "configuration is null" );
         }
@@ -85,23 +85,25 @@ public class MainPanel extends JPanel implements ComponentListener {
         getControlPanel().showWhole();
     }
 
-    void addPhylogenyInNewTab( final Phylogeny phy,
-                               final Configuration config,
-                               final String default_name,
-                               final String full_path ) {
+    MainPanel() {
+    }
+
+    public void addPhylogenyInNewTab( final Phylogeny phy,
+                                      final Configuration config,
+                                      final String default_name,
+                                      final String full_path ) {
         final TreePanel treepanel = new TreePanel( phy, config, this );
         getControlPanel().phylogenyAdded( config );
         treepanel.setControlPanel( getControlPanel() );
         _treepanels.add( treepanel );
         String name = "";
-        //  if ( !ForesterUtil.isEmpty( phy.getName() ) ) {
-        //      name = phy.getName();
-        //  }
-        //  else if ( phy.getIdentifier() != null ) {
-        //      name = phy.getIdentifier().toString();
-        //  }
-        /* else */
-        if ( !ForesterUtil.isEmpty( default_name ) ) {
+        if ( !ForesterUtil.isEmpty( phy.getName() ) ) {
+            name = phy.getName();
+        }
+        else if ( phy.getIdentifier() != null ) {
+            name = phy.getIdentifier().toString();
+        }
+        else if ( !ForesterUtil.isEmpty( default_name ) ) {
             name = default_name;
         }
         else {
@@ -141,12 +143,103 @@ public class MainPanel extends JPanel implements ComponentListener {
         getControlPanel().showWhole();
     }
 
+    @Override
+    public void componentHidden( final ComponentEvent e ) {
+        // Do nothing.
+    }
+
+    @Override
+    public void componentMoved( final ComponentEvent e ) {
+        // Do nothing.
+    }
+
+    @Override
+    public void componentResized( final ComponentEvent e ) {
+        if ( getCurrentTreePanel() != null ) {
+            getCurrentTreePanel().updateOvSettings();
+            getCurrentTreePanel().updateOvSizes();
+        }
+    }
+
+    @Override
+    public void componentShown( final ComponentEvent e ) {
+        // Do nothing.
+    }
+
+    public ControlPanel getControlPanel() {
+        return _control_panel;
+    }
+
+    public Set<Long> getCopiedAndPastedNodes() {
+        return _copied_and_pasted_nodes;
+    }
+
+    public TreePanel getCurrentTreePanel() {
+        final int selected = getTabbedPane().getSelectedIndex();
+        if ( selected >= 0 ) {
+            return _treepanels.get( selected );
+        }
+        else {
+            if ( _treepanels.size() == 1 ) {
+                return _treepanels.get( 0 );
+            }
+            else {
+                return null;
+            }
+        }
+    }
+
+    public Options getOptions() {
+        return _mainframe.getOptions();
+    }
+
+    public JTabbedPane getTabbedPane() {
+        return _tabbed_pane;
+    }
+
+    public TreeFontSet getTreeFontSet() {
+        return _fontset;
+    }
+
+    public void setArrowCursor() {
+        setCursor( TreePanel.ARROW_CURSOR );
+        repaint();
+    }
+
+    public void setCopiedAndPastedNodes( final Set<Long> node_ids ) {
+        _copied_and_pasted_nodes = node_ids;
+    }
+
+    public void setWaitCursor() {
+        setCursor( TreePanel.WAIT_CURSOR );
+        repaint();
+    }
+
     void addPhylogenyInPanel( final Phylogeny phy, final Configuration config ) {
         final TreePanel treepanel = new TreePanel( phy, config, this );
         getControlPanel().phylogenyAdded( config );
         treepanel.setControlPanel( getControlPanel() );
         _treepanels.add( treepanel );
         final JScrollPane treegraphic_scroll_pane = new JScrollPane( treepanel );
+        treegraphic_scroll_pane.getHorizontalScrollBar().addAdjustmentListener( new AdjustmentListener() {
+
+            @Override
+            public void adjustmentValueChanged( final AdjustmentEvent e ) {
+                if ( treepanel.isOvOn() || getOptions().isShowScale() ) {
+                    treepanel.repaint();
+                }
+            }
+        } );
+        treegraphic_scroll_pane.getVerticalScrollBar().addAdjustmentListener( new AdjustmentListener() {
+
+            @Override
+            public void adjustmentValueChanged( final AdjustmentEvent e ) {
+                if ( treepanel.isOvOn() || getOptions().isShowScale() ) {
+                    treepanel.repaint();
+                    //System.out.println( e.getValue() );
+                }
+            }
+        } );
         treegraphic_scroll_pane.getHorizontalScrollBar().setUnitIncrement( 20 );
         treegraphic_scroll_pane.getHorizontalScrollBar().setBlockIncrement( 50 );
         treegraphic_scroll_pane.getVerticalScrollBar().setUnitIncrement( 20 );
@@ -178,41 +271,10 @@ public class MainPanel extends JPanel implements ComponentListener {
         }
     }
 
-    @Override
-    public void componentHidden( final ComponentEvent e ) {
-        // Do nothing.
-    }
-
-    @Override
-    public void componentMoved( final ComponentEvent e ) {
-        // Do nothing.
-    }
-
-    @Override
-    public void componentResized( final ComponentEvent e ) {
-        if ( getCurrentTreePanel() != null ) {
-            getCurrentTreePanel().updateOvSettings();
-            getCurrentTreePanel().updateOvSizes();
-        }
-    }
-
-    @Override
-    public void componentShown( final ComponentEvent e ) {
-        // Do nothing.
-    }
-
-    private Configuration getConfiguration() {
+    Configuration getConfiguration() {
         return _configuration;
     }
 
-    ControlPanel getControlPanel() {
-        return _control_panel;
-    }
-
-    public Set<Integer> getCopiedAndPastedNodes() {
-        return _copied_and_pasted_nodes;
-    }
-
     Phylogeny getCurrentPhylogeny() {
         if ( getCurrentTreePanel() == null ) {
             return null;
@@ -255,38 +317,16 @@ public class MainPanel extends JPanel implements ComponentListener {
         }
     }
 
-    void setTitleOfSelectedTab( final String title ) {
-        final int selected = getTabbedPane().getSelectedIndex();
-        if ( selected >= 0 ) {
-            getTabbedPane().setTitleAt( selected, title );
-        }
-    }
-
-    TreePanel getCurrentTreePanel() {
-        final int selected = getTabbedPane().getSelectedIndex();
-        if ( selected >= 0 ) {
-            return _treepanels.get( selected );
-        }
-        else {
-            if ( _treepanels.size() == 1 ) {
-                return _treepanels.get( 0 );
-            }
-            else {
-                return null;
-            }
-        }
-    }
-
     Phylogeny getCutOrCopiedTree() {
         return _cut_or_copied_tree;
     }
 
-    MainFrame getMainFrame() {
-        return _mainframe;
+    synchronized Hashtable<String, BufferedImage> getImageMap() {
+        return _image_map;
     }
 
-    public Options getOptions() {
-        return _mainframe.getOptions();
+    MainFrame getMainFrame() {
+        return _mainframe;
     }
 
     Phylogeny getPhylogeny( final int index ) {
@@ -300,18 +340,10 @@ public class MainPanel extends JPanel implements ComponentListener {
         return getCurrentScrollPane().getViewport().getExtentSize();
     }
 
-    JTabbedPane getTabbedPane() {
-        return _tabbed_pane;
-    }
-
     TreeColorSet getTreeColorSet() {
         return _colorset;
     }
 
-    public TreeFontSet getTreeFontSet() {
-        return _fontset;
-    }
-
     List<TreePanel> getTreePanels() {
         return _treepanels;
     }
@@ -362,17 +394,19 @@ public class MainPanel extends JPanel implements ComponentListener {
         add( _tabbed_pane, BorderLayout.CENTER );
     }
 
-    public void setArrowCursor() {
-        setCursor( TreePanel.ARROW_CURSOR );
-        repaint();
+    void setCutOrCopiedTree( final Phylogeny cut_or_copied_tree ) {
+        _cut_or_copied_tree = cut_or_copied_tree;
     }
 
-    public void setCopiedAndPastedNodes( final Set<Integer> node_ids ) {
-        _copied_and_pasted_nodes = node_ids;
+    synchronized void setImageMap( final Hashtable<String, BufferedImage> image_map ) {
+        _image_map = image_map;
     }
 
-    void setCutOrCopiedTree( final Phylogeny cut_or_copied_tree ) {
-        _cut_or_copied_tree = cut_or_copied_tree;
+    void setTitleOfSelectedTab( final String title ) {
+        final int selected = getTabbedPane().getSelectedIndex();
+        if ( selected >= 0 ) {
+            getTabbedPane().setTitleAt( selected, title );
+        }
     }
 
     void setTreeColorSet( final TreeColorSet colorset ) {
@@ -388,26 +422,21 @@ public class MainPanel extends JPanel implements ComponentListener {
 
     void setupTreeGraphic( final Configuration config_settings, final ControlPanel control ) {
         control.setSpeciesColors( config_settings.getSpeciesColors() );
+        control.setSequenceColors( config_settings.getSequenceColors() );
         control.setAnnotationColors( config_settings.getAnnotationColors() );
         RenderableDomainArchitecture.setColorMap( config_settings.getDomainColors() );
     }
 
-    public void setWaitCursor() {
-        setCursor( TreePanel.WAIT_CURSOR );
-        repaint();
-    }
-
     void terminate() {
         for( final TreePanel atvtreepanel : _treepanels ) {
             atvtreepanel.removeAllEditNodeJFrames();
         }
     }
 
-    synchronized void setImageMap( final Hashtable<String, BufferedImage> image_map ) {
-        _image_map = image_map;
-    }
-
-    synchronized Hashtable<String, BufferedImage> getImageMap() {
-        return _image_map;
+    public synchronized static Map<String, String> getLineageToRankMap() {
+        if ( _lineage_to_rank_map == null ) {
+            _lineage_to_rank_map = new HashMap<String, String>();
+        }
+        return _lineage_to_rank_map;
     }
 }