import org.forester.archaeopteryx.Options.NODE_LABEL_DIRECTION;
import org.forester.archaeopteryx.Options.PHYLOGENY_GRAPHICS_TYPE;
import org.forester.archaeopteryx.phylogeny.data.RenderableDomainArchitecture;
+import org.forester.archaeopteryx.phylogeny.data.RenderableMsaSequence;
import org.forester.archaeopteryx.phylogeny.data.RenderableVector;
import org.forester.archaeopteryx.tools.Blast;
import org.forester.archaeopteryx.tools.ImageLoader;
_longest_domain = d.getTotalLength();
}
}
+ if ( getControlPanel().isShowMolSequences() && ( node.getNodeData().isHasSequence() )
+ && ( node.getNodeData().getSequence().isMolecularSequenceAligned() )
+ && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) ) {
+ // FIXME
+ sum += RenderableMsaSequence.DEFAULT_WIDTH + 30;
+ }
if ( sum >= max_length ) {
_longest_ext_node_info = max_length;
return;
}
}
if ( getControlPanel().isShowDomainArchitectures() ) {
- final double ds_factor_width = _domain_structure_width / _max_original_domain_structure_width;
+ final float ds_factor_width = ( float ) ( _domain_structure_width / _max_original_domain_structure_width );
for( final PhylogenyNode node : _phylogeny.getExternalNodes() ) {
if ( node.getNodeData().isHasSequence()
&& ( node.getNodeData().getSequence().getDomainArchitecture() != null ) ) {
}
private final void nodeDataAsSB( final PhylogenyNode node, final StringBuilder sb ) {
- if ( getControlPanel().isShowNodeNames() && ( node.getName().length() > 0 ) ) {
- if ( sb.length() > 0 ) {
- sb.append( " " );
- }
- sb.append( node.getName() );
- }
- if ( node.getNodeData().isHasSequence() ) {
- if ( getControlPanel().isShowSeqSymbols() && ( node.getNodeData().getSequence().getSymbol().length() > 0 ) ) {
+ if ( node != null ) {
+ if ( getControlPanel().isShowNodeNames() && ( !ForesterUtil.isEmpty( node.getName() ) ) ) {
if ( sb.length() > 0 ) {
sb.append( " " );
}
- sb.append( node.getNodeData().getSequence().getSymbol() );
+ sb.append( node.getName() );
}
- if ( getControlPanel().isShowGeneNames() && ( node.getNodeData().getSequence().getGeneName().length() > 0 ) ) {
- if ( sb.length() > 0 ) {
- sb.append( " " );
+ if ( node.getNodeData().isHasSequence() ) {
+ if ( getControlPanel().isShowSeqSymbols()
+ && ( node.getNodeData().getSequence().getSymbol().length() > 0 ) ) {
+ if ( sb.length() > 0 ) {
+ sb.append( " " );
+ }
+ sb.append( node.getNodeData().getSequence().getSymbol() );
}
- sb.append( node.getNodeData().getSequence().getGeneName() );
- }
- if ( getControlPanel().isShowSeqNames() && ( node.getNodeData().getSequence().getName().length() > 0 ) ) {
- if ( sb.length() > 0 ) {
- sb.append( " " );
+ if ( getControlPanel().isShowGeneNames()
+ && ( node.getNodeData().getSequence().getGeneName().length() > 0 ) ) {
+ if ( sb.length() > 0 ) {
+ sb.append( " " );
+ }
+ sb.append( node.getNodeData().getSequence().getGeneName() );
+ }
+ if ( getControlPanel().isShowSeqNames() && ( node.getNodeData().getSequence().getName().length() > 0 ) ) {
+ if ( sb.length() > 0 ) {
+ sb.append( " " );
+ }
+ sb.append( node.getNodeData().getSequence().getName() );
+ }
+ if ( getControlPanel().isShowSequenceAcc()
+ && ( node.getNodeData().getSequence().getAccession() != null ) ) {
+ if ( sb.length() > 0 ) {
+ sb.append( " " );
+ }
+ if ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getAccession().getSource() ) ) {
+ sb.append( node.getNodeData().getSequence().getAccession().getSource() );
+ sb.append( ":" );
+ }
+ sb.append( node.getNodeData().getSequence().getAccession().getValue() );
}
- sb.append( node.getNodeData().getSequence().getName() );
}
- if ( getControlPanel().isShowSequenceAcc() && ( node.getNodeData().getSequence().getAccession() != null ) ) {
+ if ( getControlPanel().isShowProperties() && node.getNodeData().isHasProperties() ) {
if ( sb.length() > 0 ) {
sb.append( " " );
}
- if ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getAccession().getSource() ) ) {
- sb.append( node.getNodeData().getSequence().getAccession().getSource() );
- sb.append( ":" );
- }
- sb.append( node.getNodeData().getSequence().getAccession().getValue() );
+ sb.append( propertiesToString( node ) );
}
}
- if ( getControlPanel().isShowProperties() && node.getNodeData().isHasProperties() ) {
- if ( sb.length() > 0 ) {
- sb.append( " " );
- }
- sb.append( propertiesToString( node ) );
- }
}
private final void nodeTaxonomyDataAsSB( final Taxonomy taxonomy, final StringBuilder sb ) {
return;
}
if ( getControlPanel().isShowDomainArchitectures() && node.getNodeData().isHasSequence()
- && ( node.getNodeData().getSequence().getDomainArchitecture() != null ) ) {
+ && ( node.getNodeData().getSequence().getDomainArchitecture() != null )
+ && ( node.getNodeData().getSequence().getDomainArchitecture() instanceof RenderableDomainArchitecture ) ) {
RenderableDomainArchitecture rds = null;
try {
rds = ( RenderableDomainArchitecture ) node.getNodeData().getSequence().getDomainArchitecture();
if ( getControlPanel().isDrawPhylogram() ) {
if ( getOptions().isLineUpRendarableNodeData() ) {
if ( getOptions().isRightLineUpDomains() ) {
- rds.render( ( getMaxDistanceToRoot() * getXcorrectionFactor() )
- + _length_of_longest_text
- + ( ( _longest_domain - rds.getTotalLength() ) * rds
- .getRenderingFactorWidth() ),
- node.getYcoord() - ( h / 2 ),
- g,
- this,
- to_pdf );
+ rds.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() )
+ + _length_of_longest_text + ( ( _longest_domain - rds.getTotalLength() ) * rds
+ .getRenderingFactorWidth() ) ), node.getYcoord() - ( h / 2 ), g, this, to_pdf );
}
else {
- rds.render( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text,
+ rds.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text ),
node.getYcoord() - ( h / 2 ),
g,
this,
domain_add = _domain_structure_width + 10;
}
if ( getControlPanel().isDrawPhylogram() ) {
- rv.render( node.getXcoord() + x + domain_add, node.getYcoord() - 3, g, this, to_pdf );
+ rv.render( ( float ) ( node.getXcoord() + x + domain_add ), node.getYcoord() - 3, g, this, to_pdf );
}
else {
- rv.render( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text + domain_add,
+ rv.render( ( float ) ( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text + domain_add ),
node.getYcoord() - 3,
g,
this,
}
}
}
+ 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(), 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 ),
+ g,
+ this,
+ to_pdf );
+
+
+ }
+ else {
+ rs.render( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text,
+ node.getYcoord() - ( h / 2 ),
+ g,
+ this,
+ to_pdf );
+ }
+ }
+ }
}
final private int calcLengthOfLongestText() {
final StringBuilder sb = new StringBuilder();
- nodeDataAsSB( _ext_node_with_longest_txt_info, sb );
- if ( _ext_node_with_longest_txt_info.getNodeData().isHasTaxonomy() ) {
- nodeTaxonomyDataAsSB( _ext_node_with_longest_txt_info.getNodeData().getTaxonomy(), sb );
+ if ( _ext_node_with_longest_txt_info != null ) {
+ nodeDataAsSB( _ext_node_with_longest_txt_info, sb );
+ if ( _ext_node_with_longest_txt_info.getNodeData().isHasTaxonomy() ) {
+ nodeTaxonomyDataAsSB( _ext_node_with_longest_txt_info.getNodeData().getTaxonomy(), sb );
+ }
}
return getFontMetricsForLargeDefaultFont().stringWidth( sb.toString() );
}