- final private void showNodeDataPopup( final MouseEvent e, final PhylogenyNode node ) {
- 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() ) {
- _popup_buffer.setLength( 0 );
- short lines = 0;
- if ( node.getName().length() > 0 ) {
- lines++;
- _popup_buffer.append( node.getName() );
- }
- if ( node.getNodeData().isHasTaxonomy()
- && !TreePanelUtil.isTaxonomyEmpty( node.getNodeData().getTaxonomy() ) ) {
- lines++;
- boolean enc_data = false;
- final Taxonomy tax = node.getNodeData().getTaxonomy();
- if ( _popup_buffer.length() > 0 ) {
- _popup_buffer.append( "\n" );
- }
- if ( !ForesterUtil.isEmpty( tax.getTaxonomyCode() ) ) {
- _popup_buffer.append( "[" );
- _popup_buffer.append( tax.getTaxonomyCode() );
- _popup_buffer.append( "]" );
- enc_data = true;
- }
- if ( !ForesterUtil.isEmpty( tax.getScientificName() ) ) {
- if ( enc_data ) {
- _popup_buffer.append( " " );
- }
- _popup_buffer.append( tax.getScientificName() );
- enc_data = true;
- }
- if ( !ForesterUtil.isEmpty( tax.getCommonName() ) ) {
- if ( enc_data ) {
- _popup_buffer.append( " (" );
- }
- else {
- _popup_buffer.append( "(" );
- }
- _popup_buffer.append( tax.getCommonName() );
- _popup_buffer.append( ")" );
- enc_data = true;
- }
- if ( !ForesterUtil.isEmpty( tax.getAuthority() ) ) {
- if ( enc_data ) {
- _popup_buffer.append( " (" );
- }
- else {
- _popup_buffer.append( "(" );
- }
- _popup_buffer.append( tax.getAuthority() );
- _popup_buffer.append( ")" );
- enc_data = true;
- }
- if ( !ForesterUtil.isEmpty( tax.getRank() ) ) {
- if ( enc_data ) {
- _popup_buffer.append( " [" );
- }
- else {
- _popup_buffer.append( "[" );
- }
- _popup_buffer.append( tax.getRank() );
- _popup_buffer.append( "]" );
- enc_data = true;
- }
- if ( tax.getSynonyms().size() > 0 ) {
- if ( enc_data ) {
- _popup_buffer.append( " " );
- }
- _popup_buffer.append( "[" );
- int counter = 1;
- for( final String syn : tax.getSynonyms() ) {
- if ( !ForesterUtil.isEmpty( syn ) ) {
- enc_data = true;
- _popup_buffer.append( syn );
- if ( counter < tax.getSynonyms().size() ) {
- _popup_buffer.append( ", " );
- }
- }
- counter++;
- }
- _popup_buffer.append( "]" );
- }
- if ( !enc_data ) {
- if ( ( tax.getIdentifier() != null ) && !ForesterUtil.isEmpty( tax.getIdentifier().getValue() ) ) {
- if ( !ForesterUtil.isEmpty( tax.getIdentifier().getProvider() ) ) {
- _popup_buffer.append( "[" );
- _popup_buffer.append( tax.getIdentifier().getProvider() );
- _popup_buffer.append( "] " );
- }
- _popup_buffer.append( tax.getIdentifier().getValue() );
- }
- }
- }
- if ( node.getNodeData().isHasSequence()
- && !TreePanelUtil.isSequenceEmpty( node.getNodeData().getSequence() ) ) {
- lines++;
- boolean enc_data = false;
- if ( _popup_buffer.length() > 0 ) {
- _popup_buffer.append( "\n" );
- }
- final Sequence seq = node.getNodeData().getSequence();
- if ( seq.getAccession() != null ) {
- _popup_buffer.append( "[" );
- if ( !ForesterUtil.isEmpty( seq.getAccession().getSource() ) ) {
- _popup_buffer.append( seq.getAccession().getSource() );
- _popup_buffer.append( ":" );
- }
- _popup_buffer.append( seq.getAccession().getValue() );
- _popup_buffer.append( "]" );
- enc_data = true;
- }
- if ( !ForesterUtil.isEmpty( seq.getSymbol() ) ) {
- if ( enc_data ) {
- _popup_buffer.append( " [" );
- }
- else {
- _popup_buffer.append( "[" );
- }
- _popup_buffer.append( seq.getSymbol() );
- _popup_buffer.append( "]" );
- enc_data = true;
- }
- if ( !ForesterUtil.isEmpty( seq.getGeneName() ) ) {
- if ( enc_data ) {
- _popup_buffer.append( " [" );
- }
- else {
- _popup_buffer.append( "[" );
- }
- _popup_buffer.append( seq.getGeneName() );
- _popup_buffer.append( "]" );
- enc_data = true;
- }
- if ( !ForesterUtil.isEmpty( seq.getName() ) ) {
- if ( enc_data ) {
- _popup_buffer.append( " " );
- }
- _popup_buffer.append( seq.getName() );
- }
- }
- if ( node.getNodeData().isHasDate() ) {
- lines++;
- if ( _popup_buffer.length() > 0 ) {
- _popup_buffer.append( "\n" );
- }
- _popup_buffer.append( node.getNodeData().getDate().asSimpleText() );
- }
- if ( node.getNodeData().isHasDistribution() ) {
- lines++;
- if ( _popup_buffer.length() > 0 ) {
- _popup_buffer.append( "\n" );
- }
- _popup_buffer.append( node.getNodeData().getDistribution().asSimpleText() );
- }
- if ( node.getBranchData().isHasConfidences() ) {
- final List<Confidence> confs = node.getBranchData().getConfidences();
- for( final Confidence confidence : confs ) {
- lines++;
- if ( _popup_buffer.length() > 0 ) {
- _popup_buffer.append( "\n" );
- }
- if ( !ForesterUtil.isEmpty( confidence.getType() ) ) {
- _popup_buffer.append( "[" );
- _popup_buffer.append( confidence.getType() );
- _popup_buffer.append( "] " );
- }
- _popup_buffer
- .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() ) ) );
- _popup_buffer.append( ")" );
- }
- }
- }
- if ( node.getNodeData().isHasProperties() ) {
- final PropertiesMap properties = node.getNodeData().getProperties();
- for( final String ref : properties.getPropertyRefs() ) {
- _popup_buffer.append( "\n" );
- final Property p = properties.getProperty( ref );
- _popup_buffer.append( TreePanelUtil.getPartAfterColon( p.getRef() ) );
- _popup_buffer.append( "=" );
- _popup_buffer.append( p.getValue() );
- if ( !ForesterUtil.isEmpty( p.getUnit() ) ) {
- _popup_buffer.append( TreePanelUtil.getPartAfterColon( p.getUnit() ) );
- }
- }
- }
- if ( _popup_buffer.length() > 0 ) {
- if ( !getConfiguration().isUseNativeUI() ) {
- _rollover_popup
- .setBorder( BorderFactory.createLineBorder( getTreeColorSet().getBranchColor() ) );
- _rollover_popup.setBackground( getTreeColorSet().getBackgroundColor() );
- if ( isInFoundNodes0( node ) && !isInFoundNodes1( node ) ) {
- _rollover_popup.setForeground( getTreeColorSet().getFoundColor0() );
- }
- else if ( !isInFoundNodes0( node ) && isInFoundNodes1( node ) ) {
- _rollover_popup.setForeground( getTreeColorSet().getFoundColor1() );
- }
- else if ( isInFoundNodes0( node ) && isInFoundNodes1( node ) ) {
- _rollover_popup.setForeground( getTreeColorSet().getFoundColor0and1() );
- }
- else if ( getControlPanel().isColorAccordingToTaxonomy() ) {
- _rollover_popup.setForeground( getTaxonomyBasedColor( node ) );
- }
- else {
- _rollover_popup.setForeground( getTreeColorSet().getSequenceColor() );
- }
- }
- else {
- _rollover_popup.setBorder( BorderFactory.createLineBorder( Color.BLACK ) );
- }
- _rollover_popup.setText( _popup_buffer.toString() );
- _node_desc_popup = PopupFactory.getSharedInstance().getPopup( null,
- _rollover_popup,
- e.getLocationOnScreen().x + 10,
- e.getLocationOnScreen().y
- - ( lines * 20 ) );
- _node_desc_popup.show();
- }
- }