import org.forester.archaeopteryx.Options.NODE_LABEL_DIRECTION;
import org.forester.archaeopteryx.Options.PHYLOGENY_GRAPHICS_TYPE;
import org.forester.phylogeny.Phylogeny;
+import org.forester.phylogeny.data.NodeVisualization.NodeFill;
+import org.forester.phylogeny.data.NodeVisualization.NodeShape;
import org.forester.util.ForesterConstants;
import org.forester.util.ForesterUtil;
JMenuItem _midpoint_root_item;
JMenuItem _taxcolor_item;
JMenuItem _confcolor_item;
+ JMenuItem _color_rank_jmi;
JMenuItem _infer_common_sn_names_item;
JMenuItem _collapse_species_specific_subtrees;
JMenuItem _collapse_below_threshold; //TODO implememt me
JMenuItem _obtain_detailed_taxonomic_information_jmi;
+ JMenuItem _obtain_detailed_taxonomic_information_deleting_jmi;
JMenuItem _obtain_uniprot_seq_information_jmi;
JMenuItem _move_node_names_to_tax_sn_jmi;
JMenuItem _move_node_names_to_seq_names_jmi;
else if ( o == _confcolor_item ) {
confColor();
}
+ else if ( o == _color_rank_jmi ) {
+ colorRank();
+ }
else if ( o == _infer_common_sn_names_item ) {
if ( isSubtreeDisplayed() ) {
return;
}
}
+ void colorRank() {
+ if ( _mainpanel.getCurrentTreePanel() != null ) {
+ final String[] ranks = Util.getAllRanks( _mainpanel.getCurrentTreePanel().getPhylogeny() );
+ if ( ranks.length < 1 ) {
+ JOptionPane.showMessageDialog( this,
+ "No rank information was found",
+ "No Rank Inoformation",
+ JOptionPane.WARNING_MESSAGE );
+ return;
+ }
+ final String rank = ( String ) JOptionPane
+ .showInputDialog( this,
+ "What rank should the colorization be based on",
+ "Rank Selection",
+ JOptionPane.PLAIN_MESSAGE,
+ null,
+ ranks,
+ null );
+ if ( !ForesterUtil.isEmpty( rank ) ) {
+ _mainpanel.getCurrentTreePanel().colorRank( rank );
+ }
+ }
+ }
+
void customizeCheckBoxMenuItem( final JCheckBoxMenuItem item, final boolean is_selected ) {
if ( item != null ) {
item.setFont( MainFrame.menu_font );
static void cycleNodeFill( final Options op, final TreePanel tree_panel ) {
switch ( op.getDefaultNodeFill() ) {
case GRADIENT:
- op.setDefaultNodeFill( Options.NodeFill.SOLID );
+ op.setDefaultNodeFill( NodeFill.SOLID );
break;
case NONE:
- op.setDefaultNodeFill( Options.NodeFill.GRADIENT );
+ op.setDefaultNodeFill( NodeFill.GRADIENT );
break;
case SOLID:
- op.setDefaultNodeFill( Options.NodeFill.NONE );
+ op.setDefaultNodeFill( NodeFill.NONE );
break;
default:
throw new RuntimeException( "unknown fill: " + op.getDefaultNodeFill() );
static void cycleNodeShape( final Options op, final TreePanel tree_panel ) {
switch ( op.getDefaultNodeShape() ) {
case CIRCLE:
- op.setDefaultNodeShape( Options.NodeShape.RECTANGLE );
+ op.setDefaultNodeShape( NodeShape.RECTANGLE );
break;
case RECTANGLE:
- op.setDefaultNodeShape( Options.NodeShape.CIRCLE );
+ op.setDefaultNodeShape( NodeShape.CIRCLE );
break;
default:
throw new RuntimeException( "unknown shape: " + op.getDefaultNodeShape() );