in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / TreePanel.java
index 639b540..38afbce 100644 (file)
@@ -176,7 +176,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
     private static final BasicStroke     STROKE_2                                           = new BasicStroke( 2f );
     private static final double          TWO_PI                                             = 2 * Math.PI;
     private final static int             WIGGLE                                             = 2;
-    private static final String          SHOW_ONLY_THIS_CONF_TYPE                           = "posterior probability";                                  //TODO remove me
+    private static final String          SHOW_ONLY_THIS_CONF_TYPE                           = null;    //TODO remove me
     HashMap<Long, Short>                 _nodeid_dist_to_leaf                               = new HashMap<Long, Short>();
     final private Arc2D                  _arc                                               = new Arc2D.Double();
     private AffineTransform              _at;
@@ -306,7 +306,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         calculateScaleDistance();
         FORMATTER_CONFIDENCE.setMaximumFractionDigits( configuration.getNumberOfDigitsAfterCommaForConfidenceValues() );
         FORMATTER_BRANCH_LENGTH.setMaximumFractionDigits( configuration
-                .getNumberOfDigitsAfterCommaForBranchLengthValues() );
+                                                          .getNumberOfDigitsAfterCommaForBranchLengthValues() );
     }
 
     @Override
@@ -594,7 +594,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             return;
         }
         int max_length = ForesterUtil.roundToInt( ( getSize().getWidth() - MOVE )
-                * Constants.EXT_NODE_INFO_LENGTH_MAX_RATIO );
+                                                  * Constants.EXT_NODE_INFO_LENGTH_MAX_RATIO );
         if ( max_length < 40 ) {
             max_length = 40;
         }
@@ -630,7 +630,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             }
             if ( getControlPanel().isShowBinaryCharacters() && node.getNodeData().isHasBinaryCharacters() ) {
                 sum += getFontMetricsForLargeDefaultFont().stringWidth( node.getNodeData().getBinaryCharacters()
-                        .getGainedCharactersAsStringBuffer().toString() );
+                                                                        .getGainedCharactersAsStringBuffer().toString() );
             }
             if ( getControlPanel().isShowVectorData() && ( node.getNodeData().getVector() != null )
                     && ( node.getNodeData().getVector().size() > 0 ) ) {
@@ -787,7 +787,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                         }
                         catch ( final NumberFormatException e ) {
                             JOptionPane.showMessageDialog( this, "Could not parse \"" + value_str
-                                    + "\" into a decimal value", "Problem with Vector Data", JOptionPane.ERROR_MESSAGE );
+                                                           + "\" into a decimal value", "Problem with Vector Data", JOptionPane.ERROR_MESSAGE );
                             return;
                         }
                         int i = -1;
@@ -797,7 +797,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                         catch ( final NumberFormatException e ) {
                             JOptionPane.showMessageDialog( this,
                                                            "Could not parse \"" + index_str
-                                                                   + "\" into index for vector data",
+                                                           + "\" into index for vector data",
                                                            "Problem with Vector Data",
                                                            JOptionPane.ERROR_MESSAGE );
                             return;
@@ -1094,11 +1094,11 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 if ( !( node.getNodeData().getSequence().getDomainArchitecture() instanceof RenderableDomainArchitecture ) ) {
                     if ( SPECIAL_DOMAIN_COLORING ) {
                         rds = new RenderableDomainArchitecture( node.getNodeData().getSequence()
-                                .getDomainArchitecture(), node.getName() );
+                                                                .getDomainArchitecture(), node.getName() );
                     }
                     else {
                         rds = new RenderableDomainArchitecture( node.getNodeData().getSequence()
-                                .getDomainArchitecture() );
+                                                                .getDomainArchitecture() );
                     }
                     node.getNodeData().getSequence().setDomainArchitecture( rds );
                 }
@@ -1131,14 +1131,14 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         return ( ( e.getX() > ( getVisibleRect().x + getOvXPosition() + 1 ) )
                 && ( e.getX() < ( ( getVisibleRect().x + getOvXPosition() + getOvMaxWidth() ) - 1 ) )
                 && ( e.getY() > ( getVisibleRect().y + getOvYPosition() + 1 ) ) && ( e.getY() < ( ( getVisibleRect().y
-                + getOvYPosition() + getOvMaxHeight() ) - 1 ) ) );
+                        + getOvYPosition() + getOvMaxHeight() ) - 1 ) ) );
     }
 
     final boolean inOvRectangle( final MouseEvent e ) {
         return ( ( e.getX() >= ( getOvRectangle().getX() - 1 ) )
                 && ( e.getX() <= ( getOvRectangle().getX() + getOvRectangle().getWidth() + 1 ) )
                 && ( e.getY() >= ( getOvRectangle().getY() - 1 ) ) && ( e.getY() <= ( getOvRectangle().getY()
-                + getOvRectangle().getHeight() + 1 ) ) );
+                        + getOvRectangle().getHeight() + 1 ) ) );
     }
 
     final boolean isApplet() {
@@ -1243,7 +1243,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 y = max_y;
             }
             getMainPanel().getCurrentScrollPane().getViewport()
-                    .setViewPosition( new Point( ForesterUtil.roundToInt( x ), ForesterUtil.roundToInt( y ) ) );
+            .setViewPosition( new Point( ForesterUtil.roundToInt( x ), ForesterUtil.roundToInt( y ) ) );
             setInOvRect( true );
             repaint();
         }
@@ -1491,7 +1491,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         if ( isInFoundNodes( c ) || isInCurrentExternalNodes( c ) ) {
             g.setColor( getColorForFoundNode( c ) );
             drawRectFilled( c.getXSecondary() - OVERVIEW_FOUND_NODE_BOX_SIZE_HALF, c.getYSecondary()
-                    - OVERVIEW_FOUND_NODE_BOX_SIZE_HALF, OVERVIEW_FOUND_NODE_BOX_SIZE, OVERVIEW_FOUND_NODE_BOX_SIZE, g );
+                            - OVERVIEW_FOUND_NODE_BOX_SIZE_HALF, OVERVIEW_FOUND_NODE_BOX_SIZE, OVERVIEW_FOUND_NODE_BOX_SIZE, g );
         }
     }
 
@@ -1581,7 +1581,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             else {
                 if ( !to_graphics_file ) {
                     g.setPaint( new GradientPaint( r.x, r.y, getTreeColorSet().getBackgroundColor(), r.x, r.y
-                            + r.height, getTreeColorSet().getBackgroundColorGradientBottom() ) );
+                                                   + r.height, getTreeColorSet().getBackgroundColorGradientBottom() ) );
                     g.fill( r );
                 }
                 else {
@@ -1615,7 +1615,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             }
             // Position starting Y of tree
             _phylogeny.getRoot().setYcoord( ( getYdistance() * _phylogeny.getRoot().getNumberOfExternalNodes() )
-                    + ( TreePanel.MOVE / 2.0f ) );
+                                            + ( TreePanel.MOVE / 2.0f ) );
             final int dynamic_hiding_factor = calcDynamicHidingFactor();
             if ( getControlPanel().isDynamicallyHideData() ) {
                 if ( dynamic_hiding_factor > 1 ) {
@@ -1751,7 +1751,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                                    y_pos + radius_ov,
                                    ( int ) ( radius_ov - ( getLongestExtNodeInfo() / ( getVisibleRect().width / getOvRectangle()
                                            .getWidth() ) ) ),
-                                   g );
+                                           g );
                 g.setTransform( _at );
                 paintOvRectangle( g );
             }
@@ -1833,20 +1833,20 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             x = TreePanel.MOVE
                     + getLongestExtNodeInfo()
                     + ForesterUtil
-                            .roundToInt( ( getXcorrectionFactor() * getPhylogeny().getHeight() ) + getXdistance() );
+                    .roundToInt( ( getXcorrectionFactor() * getPhylogeny().getHeight() ) + getXdistance() );
         }
         else {
             if ( !isNonLinedUpCladogram() && !isUniformBranchLengthsForCladogram() ) {
                 x = TreePanel.MOVE
                         + getLongestExtNodeInfo()
                         + ForesterUtil.roundToInt( getXdistance()
-                                * ( getPhylogeny().getRoot().getNumberOfExternalNodes() + 2 ) );
+                                                   * ( getPhylogeny().getRoot().getNumberOfExternalNodes() + 2 ) );
             }
             else {
                 x = TreePanel.MOVE
                         + getLongestExtNodeInfo()
                         + ForesterUtil.roundToInt( getXdistance()
-                                * ( PhylogenyMethods.calculateMaxDepth( getPhylogeny() ) + 1 ) );
+                                                   * ( PhylogenyMethods.calculateMaxDepth( getPhylogeny() ) + 1 ) );
             }
         }
         setPreferredSize( new Dimension( x, y ) );
@@ -3107,7 +3107,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         return ( ( x >= ( getOvVirtualRectangle().x - 1 ) )
                 && ( x <= ( getOvVirtualRectangle().x + getOvVirtualRectangle().width + 1 ) )
                 && ( y >= ( getOvVirtualRectangle().y - 1 ) ) && ( y <= ( getOvVirtualRectangle().y
-                + getOvVirtualRectangle().height + 1 ) ) );
+                        + getOvVirtualRectangle().height + 1 ) ) );
     }
 
     final private boolean inOvVirtualRectangle( final MouseEvent e ) {
@@ -3134,8 +3134,8 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 && ( ( !ForesterUtil.isEmpty( node.getNodeData().getTaxonomy().getScientificName() ) )
                         || ( !ForesterUtil.isEmpty( node.getNodeData().getTaxonomy().getTaxonomyCode() ) )
                         || ( !ForesterUtil.isEmpty( node.getNodeData().getTaxonomy().getCommonName() ) ) || ( ( node
-                        .getNodeData().getTaxonomy().getIdentifier() != null ) && !ForesterUtil.isEmpty( node
-                        .getNodeData().getTaxonomy().getIdentifier().getValue() ) ) ) ) {
+                                .getNodeData().getTaxonomy().getIdentifier() != null ) && !ForesterUtil.isEmpty( node
+                                                                                                                 .getNodeData().getTaxonomy().getIdentifier().getValue() ) ) ) ) {
             return true;
         }
         else {
@@ -3170,14 +3170,14 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         }
         return ( ( node.getYcoord() < ( getVisibleRect().getMinY() - y_dist ) )
                 || ( node.getYcoord() > ( getVisibleRect().getMaxY() + y_dist ) ) || ( ( node.getParent() != null ) && ( node
-                .getParent().getXcoord() > getVisibleRect().getMaxX() ) ) );
+                        .getParent().getXcoord() > getVisibleRect().getMaxX() ) ) );
     }
 
     final private boolean isNodeDataInvisibleUnrootedCirc( final PhylogenyNode node ) {
         return ( ( node.getYcoord() < ( getVisibleRect().getMinY() - 20 ) )
                 || ( node.getYcoord() > ( getVisibleRect().getMaxY() + 20 ) )
                 || ( node.getXcoord() < ( getVisibleRect().getMinX() - 20 ) ) || ( node.getXcoord() > ( getVisibleRect()
-                .getMaxX() + 20 ) ) );
+                        .getMaxX() + 20 ) ) );
     }
 
     final private boolean isNonLinedUpCladogram() {
@@ -3361,7 +3361,6 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         _node_popup_menu_items = new JMenuItem[ clickto_names.size() ];
         for( int i = 0; i < clickto_names.size(); i++ ) {
             final String title = clickto_names.get( i );
-           
             _node_popup_menu_items[ i ] = new JMenuItem( title );
             if ( title.equals( Configuration.clickto_options[ Configuration.open_seq_web ][ 0 ] ) ) {
                 final String id = isCanOpenSeqWeb( node );
@@ -3406,15 +3405,12 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 else {
                     _node_popup_menu_items[ i ].setEnabled( false );
                 }
-                //
             }
-            else if ( title.equals( Configuration.clickto_options[ Configuration.get_ext_desc_data ][ 0 ] ) ) {
-                System.out.println( ">>>>>>>>>>>>>>>>>>" + title );//TODO
-                _node_popup_menu_items[ i ].setText( "horsehit" );
-                //TODO
+            else if ( title.startsWith( Configuration.clickto_options[ Configuration.get_ext_desc_data ][ 0 ] ) ) {
+                _node_popup_menu_items[ i ]
+                        .setText( Configuration.clickto_options[ Configuration.get_ext_desc_data ][ 0 ] + ": "
+                                + getOptions().getExtDescNodeDataToReturn().toString() );
             }
-            
-            
             else if ( title.equals( Configuration.clickto_options[ Configuration.open_tax_web ][ 0 ] ) ) {
                 _node_popup_menu_items[ i ].setEnabled( isCanOpenTaxWeb( node ) );
             }
@@ -3599,7 +3595,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                     AptxUtil.launchWebBrowser( new URI( uri_str ),
                                                isApplet(),
                                                isApplet() ? obtainApplet() : null,
-                                               "_aptx_seq" );
+                            "_aptx_seq" );
                 }
                 catch ( final IOException e ) {
                     AptxUtil.showErrorMessage( this, e.toString() );
@@ -3627,7 +3623,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 AptxUtil.launchWebBrowser( new URI( uri_str ),
                                            isApplet(),
                                            isApplet() ? obtainApplet() : null,
-                                           "_aptx_seq" );
+                        "_aptx_seq" );
             }
             catch ( final IOException e ) {
                 AptxUtil.showErrorMessage( this, e.toString() );
@@ -3710,7 +3706,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 AptxUtil.launchWebBrowser( new URI( uri_str ),
                                            isApplet(),
                                            isApplet() ? obtainApplet() : null,
-                                           "_aptx_tax" );
+                        "_aptx_tax" );
             }
             catch ( final IOException e ) {
                 AptxUtil.showErrorMessage( this, e.toString() );
@@ -3740,20 +3736,20 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         if ( !node.isRoot() ) {
             if ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.EURO_STYLE ) {
                 TreePanel.drawString( FORMATTER_BRANCH_LENGTH.format( node.getDistanceToParent() ), node.getParent()
-                        .getXcoord() + EURO_D, node.getYcoord() - getTreeFontSet().getSmallMaxDescent(), g );
+                                      .getXcoord() + EURO_D, node.getYcoord() - getTreeFontSet().getSmallMaxDescent(), g );
             }
             else if ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.ROUNDED ) {
                 TreePanel.drawString( FORMATTER_BRANCH_LENGTH.format( node.getDistanceToParent() ), node.getParent()
-                        .getXcoord() + ROUNDED_D, node.getYcoord() - getTreeFontSet().getSmallMaxDescent(), g );
+                                      .getXcoord() + ROUNDED_D, node.getYcoord() - getTreeFontSet().getSmallMaxDescent(), g );
             }
             else {
                 TreePanel.drawString( FORMATTER_BRANCH_LENGTH.format( node.getDistanceToParent() ), node.getParent()
-                        .getXcoord() + 3, node.getYcoord() - getTreeFontSet().getSmallMaxDescent(), g );
+                                      .getXcoord() + 3, node.getYcoord() - getTreeFontSet().getSmallMaxDescent(), g );
             }
         }
         else {
             TreePanel.drawString( FORMATTER_BRANCH_LENGTH.format( node.getDistanceToParent() ), 3, node.getYcoord()
-                    - getTreeFontSet().getSmallMaxDescent(), g );
+                                  - getTreeFontSet().getSmallMaxDescent(), g );
         }
     }
 
@@ -3775,7 +3771,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             final float dx = x2 - x1;
             final float dy = y2 - y1;
             _cubic_curve.setCurve( x1, y1, x1 + ( dx * 0.4f ), y1 + ( dy * 0.2f ), x1 + ( dx * 0.6f ), y1
-                    + ( dy * 0.8f ), x2, y2 );
+                                   + ( dy * 0.8f ), x2, y2 );
             ( g ).draw( _cubic_curve );
         }
         else {
@@ -3814,7 +3810,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             final float dx = x2 - x1;
             final float dy = y2 - y1;
             _cubic_curve.setCurve( x1, y1, x1 + ( dx * 0.4f ), y1 + ( dy * 0.2f ), x1 + ( dx * 0.6f ), y1
-                    + ( dy * 0.8f ), x2, y2 );
+                                   + ( dy * 0.8f ), x2, y2 );
             g.draw( _cubic_curve );
         }
         else {
@@ -4077,13 +4073,13 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                         not_first = true;
                     }
                     sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( value, getOptions()
-                            .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
+                                                                                .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
                     if ( getOptions().isShowConfidenceStddev() ) {
                         if ( confidence.getStandardDeviation() != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
                             sb.append( "(" );
                             sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( confidence
-                                    .getStandardDeviation(), getOptions()
-                                    .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
+                                                                                        .getStandardDeviation(), getOptions()
+                                                                                        .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
                             sb.append( ")" );
                         }
                     }
@@ -4109,10 +4105,10 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             final String conf_str = sb.toString();
             TreePanel.drawString( conf_str,
                                   parent_x
-                                          + ( ( x - parent_x - getTreeFontSet().getFontMetricsSmall()
-                                                  .stringWidth( conf_str ) ) / 2 ),
-                                  ( node.getYcoord() + getTreeFontSet().getSmallMaxAscent() ) - 1,
-                                  g );
+                                  + ( ( x - parent_x - getTreeFontSet().getFontMetricsSmall()
+                                          .stringWidth( conf_str ) ) / 2 ),
+                                          ( node.getYcoord() + getTreeFontSet().getSmallMaxAscent() ) - 1,
+                                          g );
         }
     }
 
@@ -4129,18 +4125,18 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 g.setColor( Color.BLUE );
             }
             TreePanel
-                    .drawString( gained,
-                                 parent_x
-                                         + ( ( x - parent_x - getFontMetricsForLargeDefaultFont().stringWidth( gained ) ) / 2 ),
-                                 ( node.getYcoord() - getFontMetricsForLargeDefaultFont().getMaxDescent() ),
-                                 g );
+            .drawString( gained,
+                         parent_x
+                         + ( ( x - parent_x - getFontMetricsForLargeDefaultFont().stringWidth( gained ) ) / 2 ),
+                         ( node.getYcoord() - getFontMetricsForLargeDefaultFont().getMaxDescent() ),
+                         g );
             g.setColor( getTreeColorSet().getLostCharactersColor() );
             TreePanel
-                    .drawString( lost,
-                                 parent_x
-                                         + ( ( x - parent_x - getFontMetricsForLargeDefaultFont().stringWidth( lost ) ) / 2 ),
-                                 ( node.getYcoord() + getFontMetricsForLargeDefaultFont().getMaxAscent() ),
-                                 g );
+            .drawString( lost,
+                         parent_x
+                         + ( ( x - parent_x - getFontMetricsForLargeDefaultFont().stringWidth( lost ) ) / 2 ),
+                         ( node.getYcoord() + getFontMetricsForLargeDefaultFont().getMaxAscent() ),
+                         g );
         }
     }
 
@@ -4173,16 +4169,16 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 || ( getOptions().isShowDefaultNodeShapesInternal() && node.isInternal() )
                 || ( getOptions().isShowDefaultNodeShapesForMarkedNodes()
                         && ( node.getNodeData().getNodeVisualData() != null ) && ( !node.getNodeData()
-                        .getNodeVisualData().isEmpty() ) )
-                || ( getControlPanel().isUseVisualStyles() && ( ( node.getNodeData().getNodeVisualData() != null ) && ( ( node
-                        .getNodeData().getNodeVisualData().getNodeColor() != null )
-                        || ( node.getNodeData().getNodeVisualData().getSize() != NodeVisualData.DEFAULT_SIZE )
-                        || ( node.getNodeData().getNodeVisualData().getFillType() != NodeFill.DEFAULT ) || ( node
-                        .getNodeData().getNodeVisualData().getShape() != NodeShape.DEFAULT ) ) ) )
-                || ( getControlPanel().isEvents() && node.isHasAssignedEvent() && ( node.getNodeData().getEvent()
-                        .isDuplication()
-                        || node.getNodeData().getEvent().isSpeciation() || node.getNodeData().getEvent()
-                        .isSpeciationOrDuplication() ) ) ) {
+                                .getNodeVisualData().isEmpty() ) )
+                                || ( getControlPanel().isUseVisualStyles() && ( ( node.getNodeData().getNodeVisualData() != null ) && ( ( node
+                                        .getNodeData().getNodeVisualData().getNodeColor() != null )
+                                        || ( node.getNodeData().getNodeVisualData().getSize() != NodeVisualData.DEFAULT_SIZE )
+                                        || ( node.getNodeData().getNodeVisualData().getFillType() != NodeFill.DEFAULT ) || ( node
+                                                .getNodeData().getNodeVisualData().getShape() != NodeShape.DEFAULT ) ) ) )
+                                                || ( getControlPanel().isEvents() && node.isHasAssignedEvent() && ( node.getNodeData().getEvent()
+                                                        .isDuplication()
+                                                        || node.getNodeData().getEvent().isSpeciation() || node.getNodeData().getEvent()
+                                                        .isSpeciationOrDuplication() ) ) ) {
             NodeVisualData vis = null;
             if ( getControlPanel().isUseVisualStyles() && ( node.getNodeData().getNodeVisualData() != null )
                     && ( !node.getNodeData().getNodeVisualData().isEmpty() ) ) {
@@ -4342,7 +4338,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         if ( getControlPanel().isWriteBranchLengthValues()
                 && ( ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.RECTANGULAR )
                         || ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.ROUNDED ) || ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.EURO_STYLE ) )
-                && ( !node.isRoot() ) && ( node.getDistanceToParent() != PhylogenyDataUtil.BRANCH_LENGTH_DEFAULT ) ) {
+                        && ( !node.isRoot() ) && ( node.getDistanceToParent() != PhylogenyDataUtil.BRANCH_LENGTH_DEFAULT ) ) {
             paintBranchLength( g, node, to_pdf, to_graphics_file );
         }
         if ( !getControlPanel().isShowInternalData() && !node.isExternal() && !node.isCollapse() ) {
@@ -4410,12 +4406,12 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                     final boolean fGotRelationWithQuery = ( seqRelation.getRef0().isEqual( _query_sequence ) || seqRelation
                             .getRef1().isEqual( _query_sequence ) )
                             && seqRelation.getType().equals( getControlPanel().getSequenceRelationTypeBox()
-                                    .getSelectedItem() );
+                                                             .getSelectedItem() );
                     if ( fGotRelationWithQuery ) { // we will underline the text to show that this sequence is ortholog to the query
                         final double linePosX = node.getXcoord() + 2 + half_box_size;
                         final String sConfidence = ( !getControlPanel().isShowSequenceRelationConfidence() || ( seqRelation
                                 .getConfidence() == null ) ) ? null : " (" + seqRelation.getConfidence().getValue()
-                                + ")";
+                                        + ")";
                         if ( sConfidence != null ) {
                             float confidenceX = pos_x;
                             if ( sb_str.length() > 0 ) {
@@ -4424,7 +4420,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                             }
                             if ( confidenceX > linePosX ) { // let's only display confidence value if we are already displaying at least one of Prot/Gene Name and Taxonomy Code
                                 final int confidenceWidth = ( int ) new TextLayout( sConfidence, g.getFont(), _frc )
-                                        .getBounds().getWidth();
+                                .getBounds().getWidth();
                                 TreePanel.drawString( sConfidence, confidenceX, pos_y, g );
                                 x += CONFIDENCE_LEFT_MARGIN + confidenceWidth;
                             }
@@ -4438,7 +4434,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                                 nodeTextBoundsWidth += 2;
                             }
                             g.drawLine( ( int ) linePosX + 1, 3 + ( int ) pos_y, ( int ) linePosX + x
-                                    + nodeTextBoundsWidth, 3 + ( int ) pos_y );
+                                        + nodeTextBoundsWidth, 3 + ( int ) pos_y );
                             break;
                         }
                     }
@@ -4469,7 +4465,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             }
             final String ann_str = TreePanelUtil.createAnnotationString( ann, getOptions().isShowAnnotationRefSource() );
             TreePanel.drawString( ann_str, node.getXcoord() + x + 3 + half_box_size, node.getYcoord()
-                    + ( getFontMetricsForLargeDefaultFont().getAscent() / down_shift_factor ), g );
+                                  + ( getFontMetricsForLargeDefaultFont().getAscent() / down_shift_factor ), g );
             _sb.setLength( 0 );
             _sb.append( ann_str );
             if ( _sb.length() > 0 ) {
@@ -4494,22 +4490,22 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 }
                 if ( getControlPanel().isShowBinaryCharacters() ) {
                     TreePanel.drawString( node.getNodeData().getBinaryCharacters().getPresentCharactersAsStringBuffer()
-                            .toString(), node.getXcoord() + x + 1 + half_box_size, node.getYcoord()
-                            + ( getFontMetricsForLargeDefaultFont().getAscent() / down_shift_factor ), g );
+                                          .toString(), node.getXcoord() + x + 1 + half_box_size, node.getYcoord()
+                                          + ( getFontMetricsForLargeDefaultFont().getAscent() / down_shift_factor ), g );
                     paintGainedAndLostCharacters( g, node, node.getNodeData().getBinaryCharacters()
-                            .getGainedCharactersAsStringBuffer().toString(), node.getNodeData().getBinaryCharacters()
-                            .getLostCharactersAsStringBuffer().toString() );
+                                                  .getGainedCharactersAsStringBuffer().toString(), node.getNodeData().getBinaryCharacters()
+                                                  .getLostCharactersAsStringBuffer().toString() );
                 }
                 else {
                     TreePanel
-                            .drawString( " " + node.getNodeData().getBinaryCharacters().getPresentCount(),
-                                         node.getXcoord() + x + 4 + half_box_size,
-                                         node.getYcoord()
-                                                 + ( getFontMetricsForLargeDefaultFont().getAscent() / down_shift_factor ),
-                                         g );
+                    .drawString( " " + node.getNodeData().getBinaryCharacters().getPresentCount(),
+                                 node.getXcoord() + x + 4 + half_box_size,
+                                 node.getYcoord()
+                                 + ( getFontMetricsForLargeDefaultFont().getAscent() / down_shift_factor ),
+                                 g );
                     paintGainedAndLostCharacters( g, node, "+"
                             + node.getNodeData().getBinaryCharacters().getGainedCount(), "-"
-                            + node.getNodeData().getBinaryCharacters().getLostCount() );
+                                    + node.getNodeData().getBinaryCharacters().getLostCount() );
                 }
             }
         }
@@ -4666,7 +4662,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         if ( isInFoundNodes( node ) || isInCurrentExternalNodes( node ) ) {
             g.setColor( getColorForFoundNode( node ) );
             drawRectFilled( node.getXSecondary() - OVERVIEW_FOUND_NODE_BOX_SIZE_HALF, node.getYSecondary()
-                    - OVERVIEW_FOUND_NODE_BOX_SIZE_HALF, OVERVIEW_FOUND_NODE_BOX_SIZE, OVERVIEW_FOUND_NODE_BOX_SIZE, g );
+                            - OVERVIEW_FOUND_NODE_BOX_SIZE_HALF, OVERVIEW_FOUND_NODE_BOX_SIZE, OVERVIEW_FOUND_NODE_BOX_SIZE, g );
         }
         float new_x = 0;
         if ( !node.isExternal() && !node.isCollapse() ) {
@@ -4728,7 +4724,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 && !node.isRoot()
                 && ( ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.ROUNDED )
                         || ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.RECTANGULAR ) || ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.EURO_STYLE ) )
-                && node.getBranchData().isHasConfidences() ) {
+                        && node.getBranchData().isHasConfidences() ) {
             paintConfidenceValues( g, node, to_pdf, to_graphics_file );
         }
         // Draw a line to root:
@@ -4794,11 +4790,16 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             }
             paintNodeBox( node.getXcoord(), node.getYcoord(), node, g, to_pdf, to_graphics_file );
         }
+        if ( getControlPanel().isShowMolSequences() && ( node.getNodeData().isHasSequence() )
+                && ( node.getNodeData().getSequence().isMolecularSequenceAligned() )
+                && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) ) {
+            paintMolecularSequences( g, node, to_pdf );
+        }
         if ( dynamically_hide
                 && !is_in_found_nodes
                 && ( ( node.isExternal() && ( ( _external_node_index % dynamic_hiding_factor ) != 1 ) ) || ( !node
                         .isExternal() && ( ( new_x_min < 20 ) || ( ( _y_distance * node.getNumberOfExternalNodes() ) < getFontMetricsForLargeDefaultFont()
-                        .getHeight() ) ) ) ) ) {
+                                .getHeight() ) ) ) ) ) {
             return;
         }
         final int x = paintNodeData( g, node, to_graphics_file, to_pdf, is_in_found_nodes );
@@ -4839,7 +4840,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                         if ( getOptions().isRightLineUpDomains() ) {
                             rds.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() )
                                     + _length_of_longest_text + ( ( _longest_domain - rds.getTotalLength() ) * rds
-                                    .getRenderingFactorWidth() ) ), node.getYcoord() - ( h / 2.0f ), g, this, to_pdf );
+                                            .getRenderingFactorWidth() ) ), node.getYcoord() - ( h / 2.0f ), g, this, to_pdf );
                         }
                         else {
                             rds.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text ),
@@ -4856,12 +4857,12 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 else {
                     if ( getOptions().isRightLineUpDomains() ) {
                         rds.render( ( ( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text ) - 20 )
-                                            + ( ( _longest_domain - rds.getTotalLength() ) * rds
-                                                    .getRenderingFactorWidth() ),
-                                    node.getYcoord() - ( h / 2.0f ),
-                                    g,
-                                    this,
-                                    to_pdf );
+                                    + ( ( _longest_domain - rds.getTotalLength() ) * rds
+                                            .getRenderingFactorWidth() ),
+                                            node.getYcoord() - ( h / 2.0f ),
+                                            g,
+                                            this,
+                                            to_pdf );
                     }
                     else {
                         rds.render( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text,
@@ -4896,33 +4897,37 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 }
             }
         }
-        if ( getControlPanel().isShowMolSequences() && ( node.getNodeData().isHasSequence() )
-                && ( node.getNodeData().getSequence().isMolecularSequenceAligned() )
-                && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) ) {
-            final RenderableMsaSequence rs = RenderableMsaSequence.createInstance( node.getNodeData().getSequence()
-                    .getMolecularSequence(), node.getNodeData().getSequence().getType(), getConfiguration() );
-            if ( rs != null ) {
-                final int default_height = 7;
-                float y = getYdistance();
-                if ( getControlPanel().isDynamicallyHideData() ) {
-                    y = getTreeFontSet().getFontMetricsLarge().getHeight();
-                }
-                final int h = y < default_height ? ForesterUtil.roundToInt( y ) : default_height;
-                rs.setRenderingHeight( h > 1 ? h : 2 );
-                if ( getControlPanel().isDrawPhylogram() ) {
-                    rs.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text ),
-                               node.getYcoord() - ( h / 2.0f ),
-                               g,
-                               this,
-                               to_pdf );
-                }
-                else {
-                    rs.render( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text,
-                               node.getYcoord() - ( h / 2.0f ),
-                               g,
-                               this,
-                               to_pdf );
-                }
+       
+        //if ( getControlPanel().isShowMolSequences() && ( node.getNodeData().isHasSequence() )
+        //        && ( node.getNodeData().getSequence().isMolecularSequenceAligned() )
+        //        && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) ) {
+        //    paintMolecularSequences( g, node, to_pdf );
+        //}
+    }
+
+    private void paintMolecularSequences( final Graphics2D g, final PhylogenyNode node, final boolean to_pdf ) {
+        final RenderableMsaSequence rs = RenderableMsaSequence.createInstance( node.getNodeData().getSequence()
+                                                                               .getMolecularSequence(), node.getNodeData().getSequence().getType(), getConfiguration() );
+        if ( rs != null ) {
+            final int default_height = 8;
+            float y = getYdistance();
+           
+            final int h = ( y / 2) < default_height ? ForesterUtil.roundToInt( y * 2 ) : default_height;
+            rs.setRenderingHeight( h > 1 ? h : 1 );
+           
+            if ( getControlPanel().isDrawPhylogram() ) {
+                rs.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text ),
+                           node.getYcoord() - ( h / 2.0f ),
+                           g,
+                           this,
+                           to_pdf );
+            }
+            else {
+                rs.render( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text,
+                           node.getYcoord() - ( h / 2.0f ),
+                           g,
+                           this,
+                           to_pdf );
             }
         }
     }
@@ -4975,9 +4980,9 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
 
     final private void paintPhylogenyLite( final Graphics2D g ) {
         _phylogeny
-                .getRoot()
-                .setXSecondary( ( float ) ( getVisibleRect().x + getOvXPosition() + ( MOVE / ( getVisibleRect().width / getOvRectangle()
-                        .getWidth() ) ) ) );
+        .getRoot()
+        .setXSecondary( ( float ) ( getVisibleRect().x + getOvXPosition() + ( MOVE / ( getVisibleRect().width / getOvRectangle()
+                .getWidth() ) ) ) );
         _phylogeny.getRoot().setYSecondary( ( getVisibleRect().y + getOvYStart() ) );
         final Stroke s = g.getStroke();
         g.setStroke( STROKE_05 );
@@ -5077,7 +5082,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
             final Rectangle2D nodeTextBounds = new TextLayout( label, g.getFont(), new FontRenderContext( null,
                                                                                                           false,
                                                                                                           false ) )
-                    .getBounds();
+            .getBounds();
             g.fillRect( ( int ) start_x - 1, ( int ) start_y - 8, ( int ) nodeTextBounds.getWidth() + 4, 11 );
             g.setColor( getTreeColorSet().getBackgroundColor() );
         }
@@ -5556,7 +5561,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                             ann_str = ann.toString();
                         }
                         sb.append( SequenceWriter.toFasta( ann_str, n.getNodeData().getSequence()
-                                .getMolecularSequence(), 60 ) );
+                                                           .getMolecularSequence(), 60 ) );
                         data.add( sb.toString() );
                     }
                     break;
@@ -5649,7 +5654,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         else if ( getConfiguration().getExtNodeDataReturnOn() == EXT_NODE_DATA_RETURN_ON.WINODW ) {
             if ( sb.length() < 1 ) {
                 TreePanelUtil.showInformationMessage( this, "No Appropriate Data (" + obtainTitleForExtDescNodeData()
-                        + ")", "Descendants of selected node do not contain selected data" );
+                                                      + ")", "Descendants of selected node do not contain selected data" );
                 clearCurrentExternalNodesDataBuffer();
             }
             else {
@@ -5691,10 +5696,10 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         try {
             if ( ( node.getName().length() > 0 )
                     || ( node.getNodeData().isHasTaxonomy() && !TreePanelUtil.isTaxonomyEmpty( node.getNodeData()
-                            .getTaxonomy() ) )
-                    || ( node.getNodeData().isHasSequence() && !TreePanelUtil.isSequenceEmpty( node.getNodeData()
-                            .getSequence() ) ) || ( node.getNodeData().isHasDate() )
-                    || ( node.getNodeData().isHasDistribution() ) || node.getBranchData().isHasConfidences() ) {
+                                                                                               .getTaxonomy() ) )
+                                                                                               || ( node.getNodeData().isHasSequence() && !TreePanelUtil.isSequenceEmpty( node.getNodeData()
+                                                                                                                                                                          .getSequence() ) ) || ( node.getNodeData().isHasDate() )
+                                                                                                                                                                          || ( node.getNodeData().isHasDistribution() ) || node.getBranchData().isHasConfidences() ) {
                 _popup_buffer.setLength( 0 );
                 short lines = 0;
                 if ( node.getName().length() > 0 ) {
@@ -5858,14 +5863,14 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                             _popup_buffer.append( "] " );
                         }
                         _popup_buffer
-                                .append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( confidence.getValue(),
-                                                                                          getOptions()
-                                                                                                  .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
+                        .append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( confidence.getValue(),
+                                                                                  getOptions()
+                                                                                  .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
                         if ( confidence.getStandardDeviation() != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
                             _popup_buffer.append( " (sd=" );
                             _popup_buffer.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( confidence
-                                    .getStandardDeviation(), getOptions()
-                                    .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
+                                                                                                   .getStandardDeviation(), getOptions()
+                                                                                                   .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
                             _popup_buffer.append( ")" );
                         }
                     }
@@ -5886,7 +5891,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                 if ( _popup_buffer.length() > 0 ) {
                     if ( !getConfiguration().isUseNativeUI() ) {
                         _rollover_popup
-                                .setBorder( BorderFactory.createLineBorder( getTreeColorSet().getBranchColor() ) );
+                        .setBorder( BorderFactory.createLineBorder( getTreeColorSet().getBranchColor() ) );
                         _rollover_popup.setBackground( getTreeColorSet().getBackgroundColor() );
                         if ( isInFoundNodes0( node ) && !isInFoundNodes1( node ) ) {
                             _rollover_popup.setForeground( getTreeColorSet().getFoundColor0() );
@@ -5909,7 +5914,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
                                                                                   _rollover_popup,
                                                                                   e.getLocationOnScreen().x + 10,
                                                                                   e.getLocationOnScreen().y
-                                                                                          - ( lines * 20 ) );
+                                                                                  - ( lines * 20 ) );
                     _node_desc_popup.show();
                 }
             }
@@ -5995,7 +6000,7 @@ public final class TreePanel extends JPanel implements ActionListener, MouseWhee
         if ( getMainPanel().getMainFrame() == null ) {
             // Must be "E" applet version.
             ( ( ArchaeopteryxE ) ( ( MainPanelApplets ) getMainPanel() ).getApplet() )
-                    .setSelectedTypeInTypeMenu( getPhylogenyGraphicsType() );
+            .setSelectedTypeInTypeMenu( getPhylogenyGraphicsType() );
         }
         else {
             getMainPanel().getMainFrame().setSelectedTypeInTypeMenu( getPhylogenyGraphicsType() );