in progress
authorcmzmasek@gmail.com <cmzmasek@gmail.com@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Wed, 4 Jan 2012 04:28:55 +0000 (04:28 +0000)
committercmzmasek@gmail.com <cmzmasek@gmail.com@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Wed, 4 Jan 2012 04:28:55 +0000 (04:28 +0000)
forester/java/src/org/forester/archaeopteryx/Constants.java
forester/java/src/org/forester/archaeopteryx/ControlPanel.java
forester/java/src/org/forester/archaeopteryx/TreePanel.java

index 00511a7..81eea48 100644 (file)
@@ -36,13 +36,13 @@ import org.forester.util.ForesterConstants;
 
 public final class Constants {
 
-    final static boolean        __ALLOW_PHYLOGENETIC_INFERENCE                                = true;
+    final static boolean        __ALLOW_PHYLOGENETIC_INFERENCE                                = false;
     public final static boolean __RELEASE                                                     = true;                                                     // TODO remove me
-    public final static boolean __SNAPSHOT_RELEASE                                            = true;                                                     // TODO remove me
+    public final static boolean __SNAPSHOT_RELEASE                                            = false;                                                    // TODO remove me
     public final static boolean __SYNTH_LF                                                    = false;                                                    // TODO remove me
     public final static String  PRG_NAME                                                      = "Archaeopteryx";
-    final static String         VERSION                                                       = "0.967 beta T2P";
-    final static String         PRG_DATE                                                      = "2011.12.20";
+    final static String         VERSION                                                       = "0.968 beta BG";
+    final static String         PRG_DATE                                                      = "2012.01.03";
     final static String         DEFAULT_CONFIGURATION_FILE_NAME                               = "_aptx_configuration_file";
     final static String[]       DEFAULT_FONT_CHOICES                                          = { "Verdana", "Tahoma",
             "Arial", "Helvetica", "Dialog", "Lucida Sans", "SansSerif", "Sans-serif", "Sans" };
index 471ca78..27930ec 100644 (file)
@@ -64,6 +64,7 @@ import org.forester.phylogeny.PhylogenyMethods;
 import org.forester.phylogeny.PhylogenyNode;
 import org.forester.phylogeny.data.Sequence;
 import org.forester.phylogeny.data.SequenceRelation;
+import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
 import org.forester.util.ForesterUtil;
 
 final class ControlPanel extends JPanel implements ActionListener {
@@ -1784,8 +1785,15 @@ final class ControlPanel extends JPanel implements ActionListener {
     void uncollapseAll( final TreePanel tp ) {
         final Phylogeny t = tp.getPhylogeny();
         if ( ( t != null ) && !t.isEmpty() ) {
-            t.setAllNodesToNotCollapse();
+            for( final PhylogenyNodeIterator iter = t.iteratorPreorder(); iter.hasNext(); ) {
+                final PhylogenyNode node = iter.next();
+                node.setCollapse( false );
+            }
+            tp.resetNodeIdToDistToLeafMap();
+            tp.updateSetOfCollapsedExternalNodes( t );
             t.recalculateNumberOfExternalDescendants( false );
+            tp.setNodeInPreorderToNull();
+            t.hashIDs();
             showWhole();
         }
     }
index c69971a..79dfca7 100644 (file)
@@ -409,7 +409,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         else {
             phy.addAsChild( node );
         }
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         _phylogeny.externalNodesHaveChanged();
         _phylogeny.hashIDs();
         _phylogeny.recalculateNumberOfExternalDescendants( true );
@@ -699,7 +699,8 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             _phylogeny.recalculateNumberOfExternalDescendants( true );
             resetNodeIdToDistToLeafMap();
             calculateLongestExtNodeInfo();
-            _nodes_in_preorder = null;
+            setNodeInPreorderToNull();
+            _control_panel.displayedPhylogenyMightHaveChanged( true );
             resetPreferredSize();
             updateOvSizes();
             _main_panel.adjustJScrollPane();
@@ -717,7 +718,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         _phylogeny.recalculateNumberOfExternalDescendants( true );
         resetNodeIdToDistToLeafMap();
         calculateLongestExtNodeInfo();
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         resetPreferredSize();
         _main_panel.adjustJScrollPane();
         setArrowCursor();
@@ -828,7 +829,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             errorMessageNoCutCopyPasteInUnrootedDisplay();
             return;
         }
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         setCutOrCopiedTree( _phylogeny.copy( node ) );
         final List<PhylogenyNode> nodes = PhylogenyMethods.getAllDescendants( node );
         final Set<Integer> node_ids = new HashSet<Integer>( nodes.size() );
@@ -860,7 +861,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         if ( r != JOptionPane.OK_OPTION ) {
             return;
         }
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         setCopiedAndPastedNodes( null );
         setCutOrCopiedTree( _phylogeny.copy( node ) );
         _phylogeny.deleteSubtree( node, true );
@@ -915,7 +916,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                                                     null,
                                                     options,
                                                     options[ 2 ] );
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         boolean node_only = true;
         if ( r == 1 ) {
             node_only = false;
@@ -1805,7 +1806,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                                            JOptionPane.WARNING_MESSAGE );
             return;
         }
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         setWaitCursor();
         PhylogenyMethods.midpointRoot( _phylogeny );
         resetNodeIdToDistToLeafMap();
@@ -2511,7 +2512,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         paintNodeBox( _root.getXcoord(), _root.getYcoord(), _root, g, to_pdf, to_graphics_file, isInFoundNodes( _root ) );
     }
 
-    private void updateSetOfCollapsedExternalNodes( final Phylogeny phy ) {
+    void updateSetOfCollapsedExternalNodes( final Phylogeny phy ) {
         _collapsed_external_nodeid_set.clear();
         E: for( final PhylogenyNodeIterator it = phy.iteratorExternalForward(); it.hasNext(); ) {
             final PhylogenyNode ext_node = it.next();
@@ -3547,28 +3548,34 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 }
                 catch ( final ClassCastException cce ) {
                     cce.printStackTrace();
-                    return;
-                }
-                rds.setRenderingHeight( 6 );
-                int x = 0;
-                if ( getControlPanel().isShowTaxonomyCode() && ( PhylogenyMethods.getSpecies( node ).length() > 0 ) ) {
-                    x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( node ) + " " );
-                }
-                if ( getControlPanel().isShowGeneNames() ) {
-                    x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getName() + " " );
-                }
-                if ( getControlPanel().isShowGeneSymbols() ) {
-                    x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getSymbol() + " " );
-                }
-                if ( getControlPanel().isShowSequenceAcc() ) {
-                    x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getAccession()
-                            .toString()
-                            + " " );
                 }
-                if ( getControlPanel().isShowNodeNames() && ( node.getName().length() > 0 ) ) {
-                    x += getTreeFontSet()._fm_large.stringWidth( node.getName() + " " );
+                if ( rds != null ) {
+                    rds.setRenderingHeight( 6 );
+                    int x = 0;
+                    if ( getControlPanel().isShowTaxonomyCode()
+                            && ( !ForesterUtil.isEmpty( PhylogenyMethods.getSpecies( node ) ) ) ) {
+                        x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( node ) + " " );
+                    }
+                    if ( getControlPanel().isShowGeneNames()
+                            && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getName() ) ) ) {
+                        x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getName() + " " );
+                    }
+                    if ( getControlPanel().isShowGeneSymbols()
+                            && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getSymbol() ) ) ) {
+                        x += getTreeFontSet()._fm_large
+                                .stringWidth( node.getNodeData().getSequence().getSymbol() + " " );
+                    }
+                    if ( getControlPanel().isShowSequenceAcc()
+                            && ( node.getNodeData().getSequence().getAccession() != null ) ) {
+                        x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getAccession()
+                                .toString()
+                                + " " );
+                    }
+                    if ( getControlPanel().isShowNodeNames() && ( node.getName().length() > 0 ) ) {
+                        x += getTreeFontSet()._fm_large.stringWidth( node.getName() + " " );
+                    }
+                    rds.render( node.getXcoord() + x, node.getYcoord() - 3, g, this, to_pdf );
                 }
-                rds.render( node.getXcoord() + x, node.getYcoord() - 3, g, this, to_pdf );
             }
         }
         //////////////
@@ -3577,18 +3584,20 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             final RenderableVector rv = RenderableVector.createInstance( node.getNodeData().getVector(),
                                                                          getStatisticsForExpressionValues(),
                                                                          getConfiguration() );
-            int x = 0;
-            PhylogenyNode my_node = node;
-            if ( !getControlPanel().isDrawPhylogram() ) {
-                my_node = getPhylogeny().getFirstExternalNode();
-            }
-            if ( getControlPanel().isShowTaxonomyCode() && ( PhylogenyMethods.getSpecies( my_node ).length() > 0 ) ) {
-                x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( my_node ) + " " );
-            }
-            if ( getControlPanel().isShowNodeNames() && ( my_node.getName().length() > 0 ) ) {
-                x += getTreeFontSet()._fm_large.stringWidth( my_node.getName() + " " );
+            if ( rv != null ) {
+                int x = 0;
+                PhylogenyNode my_node = node;
+                if ( !getControlPanel().isDrawPhylogram() ) {
+                    my_node = getPhylogeny().getFirstExternalNode();
+                }
+                if ( getControlPanel().isShowTaxonomyCode() && ( PhylogenyMethods.getSpecies( my_node ).length() > 0 ) ) {
+                    x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( my_node ) + " " );
+                }
+                if ( getControlPanel().isShowNodeNames() && ( my_node.getName().length() > 0 ) ) {
+                    x += getTreeFontSet()._fm_large.stringWidth( my_node.getName() + " " );
+                }
+                rv.render( my_node.getXcoord() + x, node.getYcoord() - 5, g, this, to_pdf );
             }
-            rv.render( my_node.getXcoord() + x, node.getYcoord() - 5, g, this, to_pdf );
         }
         //////////////
     }
@@ -4200,7 +4209,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         }
         node_ids.add( node.getId() );
         getCopiedAndPastedNodes().addAll( node_ids );
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         _phylogeny.externalNodesHaveChanged();
         _phylogeny.hashIDs();
         _phylogeny.recalculateNumberOfExternalDescendants( true );
@@ -4276,7 +4285,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         getPhylogeny().reRoot( node );
         getPhylogeny().recalculateNumberOfExternalDescendants( true );
         resetNodeIdToDistToLeafMap();
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         resetPreferredSize();
         getMainPanel().adjustJScrollPane();
         repaint();
@@ -4536,10 +4545,14 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
      *            an instance of a Phylogeny
      */
     public final void setTree( final Phylogeny t ) {
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         _phylogeny = t;
     }
 
+    final void setNodeInPreorderToNull() {
+        _nodes_in_preorder = null;
+    }
+
     final void setTreeFile( final File treefile ) {
         _treefile = treefile;
     }
@@ -4846,7 +4859,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                                            JOptionPane.WARNING_MESSAGE );
             return;
         }
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         if ( !node.isExternal() && !node.isRoot() && ( _subtree_index <= ( TreePanel.MAX_SUBTREES - 1 ) ) ) {
             _sub_phylogenies[ _subtree_index ] = _phylogeny;
             _sub_phylogenies_temp_roots[ _subtree_index ] = node;
@@ -4883,7 +4896,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
     }
 
     final void superTree() {
-        _nodes_in_preorder = null;
+        setNodeInPreorderToNull();
         final PhylogenyNode temp_root = _sub_phylogenies_temp_roots[ _subtree_index - 1 ];
         for( final PhylogenyNode n : temp_root.getDescendants() ) {
             n.setParent( temp_root );
@@ -4897,7 +4910,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
     final void swap( final PhylogenyNode node ) {
         if ( !node.isExternal() ) {
             _phylogeny.swapChildren( node );
-            _nodes_in_preorder = null;
+            setNodeInPreorderToNull();
         }
         repaint();
     }