+
+ /**
+ * Helper method for calcColor methods.
+ *
+ * @param smallercolor_component_x
+ * color component the smaller color
+ * @param largercolor_component_x
+ * color component the larger color
+ * @param x
+ * factor
+ * @return an int representing a color component
+ */
+ final private static int calculateColorComponent( final double smallercolor_component_x,
+ final double largercolor_component_x,
+ final double x ) {
+ return ( int ) ( smallercolor_component_x + ( ( x * ( largercolor_component_x - smallercolor_component_x ) ) / 255.0 ) );
+ }
+
+ /**
+ * Helper method for calcColor methods.
+ *
+ *
+ * @param value
+ * the value
+ * @param larger
+ * the largest value
+ * @param smaller
+ * the smallest value
+ * @return a normalized value between larger and smaller
+ */
+ final private static double calculateColorFactor( final double value, final double larger, final double smaller ) {
+ return ( 255.0 * ( value - smaller ) ) / ( larger - smaller );
+ }
+
+ final private static String[] splitString( final String str ) {
+ final String regex = "[\\s;,]+";
+ return str.split( regex );
+ }
+
+ public final static void outOfMemoryError( final OutOfMemoryError e ) {
+ System.err.println();
+ System.err.println( "Java memory allocation might be too small, try \"-Xmx2048m\" java command line option" );
+ System.err.println();
+ e.printStackTrace( System.err );
+ System.err.println();
+ System.exit( -1 );
+ }
+
+ public final static Color obtainColorDependingOnTaxonomyGroup( final String tax_group ) {
+ if ( !ForesterUtil.isEmpty( tax_group ) ) {
+ if ( tax_group.equals( TaxonomyGroups.DEUTEROSTOMIA ) ) {
+ return TaxonomyColors.DEUTEROSTOMIA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.PROTOSTOMIA ) ) {
+ return TaxonomyColors.PROTOSTOMIA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.CNIDARIA ) ) {
+ return TaxonomyColors.CNIDARIA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.PLACOZOA ) ) {
+ return TaxonomyColors.PLACOZOA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.CTENOPHORA ) ) {
+ return TaxonomyColors.CTENOPHORA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.PORIFERA ) ) {
+ return TaxonomyColors.PORIFERA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.CHOANOFLAGELLIDA ) ) {
+ return TaxonomyColors.CHOANOFLAGELLIDA;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.ICHTHYOPHONIDA_FILASTEREA ) ) {
+ return TaxonomyColors.ICHTHYOSPOREA_AND_FILASTEREA;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.DIKARYA ) ) {
+ return TaxonomyColors.DIKARYA_COLOR;
+ }
+ else if ( tax_group.equalsIgnoreCase( TaxonomyGroups.FUNGI )
+ || tax_group.equalsIgnoreCase( TaxonomyGroups.OTHER_FUNGI ) ) {
+ return TaxonomyColors.OTHER_FUNGI_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.NUCLEARIIDAE_AND_FONTICULA_GROUP ) ) {
+ return TaxonomyColors.NUCLEARIIDAE_AND_FONTICULA_GROUP_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.AMOEBOZOA ) ) {
+ return TaxonomyColors.AMOEBOZOA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.EMBRYOPHYTA ) ) {
+ return TaxonomyColors.EMBRYOPHYTA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.CHLOROPHYTA ) ) {
+ return TaxonomyColors.CHLOROPHYTA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.RHODOPHYTA ) ) {
+ return TaxonomyColors.RHODOPHYTA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.HACROBIA ) ) {
+ return TaxonomyColors.HACROBIA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.GLAUCOCYSTOPHYCEAE ) ) {
+ return TaxonomyColors.GLAUCOPHYTA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.STRAMENOPILES ) ) {
+ return TaxonomyColors.STRAMENOPILES_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.ALVEOLATA ) ) {
+ return TaxonomyColors.ALVEOLATA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.RHIZARIA ) ) {
+ return TaxonomyColors.RHIZARIA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.EXCAVATA ) ) {
+ return TaxonomyColors.EXCAVATA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.APUSOZOA ) ) {
+ return TaxonomyColors.APUSOZOA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.ARCHAEA ) ) {
+ return TaxonomyColors.ARCHAEA_COLOR;
+ }
+ else if ( tax_group.equals( TaxonomyGroups.BACTERIA ) ) {
+ return TaxonomyColors.BACTERIA_COLOR;
+ }
+ }
+ return null;
+ }
+
+ public final static String obtainNormalizedTaxonomyGroup( final String tax ) {
+ if ( tax.equalsIgnoreCase( TaxonomyGroups.DEUTEROSTOMIA ) ) {
+ return TaxonomyGroups.DEUTEROSTOMIA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.PROTOSTOMIA ) ) {
+ return TaxonomyGroups.PROTOSTOMIA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.CNIDARIA ) ) {
+ return TaxonomyGroups.CNIDARIA;
+ }
+ else if ( tax.toLowerCase().startsWith( "trichoplax" ) || tax.equalsIgnoreCase( TaxonomyGroups.PLACOZOA ) ) {
+ return TaxonomyGroups.PLACOZOA;
+ }
+ else if ( tax.toLowerCase().startsWith( "mnemiopsis" ) || tax.equalsIgnoreCase( TaxonomyGroups.CTENOPHORA ) ) {
+ return TaxonomyGroups.CTENOPHORA;
+ }
+ else if ( tax.toLowerCase().startsWith( "amphimedon" ) || tax.equalsIgnoreCase( TaxonomyGroups.PORIFERA ) ) {
+ return TaxonomyGroups.PORIFERA;
+ }
+ else if ( tax.equalsIgnoreCase( "codonosigidae" ) || tax.equalsIgnoreCase( TaxonomyGroups.CHOANOFLAGELLIDA ) ) {
+ return TaxonomyGroups.CHOANOFLAGELLIDA;
+ }
+ else if ( tax.toLowerCase().startsWith( TaxonomyGroups.ICHTHYOPHONIDA_FILASTEREA )
+ || tax.toLowerCase().startsWith( "ichthyophonida and filasterea" )
+ || tax.toLowerCase().startsWith( "ichthyosporea & filasterea" )
+ || tax.toLowerCase().startsWith( "ichthyosporea and filasterea" ) ) {
+ return TaxonomyGroups.ICHTHYOPHONIDA_FILASTEREA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.DIKARYA ) ) {
+ return TaxonomyGroups.DIKARYA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.FUNGI ) || tax.equalsIgnoreCase( TaxonomyGroups.OTHER_FUNGI ) ) {
+ return TaxonomyGroups.OTHER_FUNGI;
+ }
+ else if ( tax.toLowerCase().startsWith( "nucleariidae and fonticula" ) ) {
+ return TaxonomyGroups.NUCLEARIIDAE_AND_FONTICULA_GROUP;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.AMOEBOZOA ) ) {
+ return TaxonomyGroups.AMOEBOZOA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.EMBRYOPHYTA ) ) {
+ return TaxonomyGroups.EMBRYOPHYTA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.CHLOROPHYTA ) ) {
+ return TaxonomyGroups.CHLOROPHYTA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.RHODOPHYTA ) ) {
+ return TaxonomyGroups.RHODOPHYTA;
+ }
+ else if ( tax.toLowerCase().startsWith( TaxonomyGroups.HACROBIA ) ) {
+ return TaxonomyGroups.HACROBIA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.GLAUCOCYSTOPHYCEAE ) || tax.equalsIgnoreCase( "glaucophyta" ) ) {
+ return TaxonomyGroups.GLAUCOCYSTOPHYCEAE;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.STRAMENOPILES ) ) {
+ return TaxonomyGroups.STRAMENOPILES;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.ALVEOLATA ) ) {
+ return TaxonomyGroups.ALVEOLATA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.RHIZARIA ) ) {
+ return TaxonomyGroups.RHIZARIA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.EXCAVATA ) ) {
+ return TaxonomyGroups.EXCAVATA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.APUSOZOA ) ) {
+ return TaxonomyGroups.APUSOZOA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.ARCHAEA ) ) {
+ return TaxonomyGroups.ARCHAEA;
+ }
+ else if ( tax.equalsIgnoreCase( TaxonomyGroups.BACTERIA ) ) {
+ return TaxonomyGroups.BACTERIA;
+ }
+ return null;
+ }