package org.forester.archaeopteryx;
+import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics2D;
import java.awt.GraphicsEnvironment;
import java.lang.reflect.Method;
import java.net.URI;
import java.net.URL;
+import java.net.URLConnection;
import java.text.ParseException;
import java.util.Arrays;
import java.util.HashSet;
}
}
AptxUtil.printAppletMessage( "Archaeopteryx", "parser is " + parser.getName() );
- final InputStream i = url.openStream();
+ final URLConnection url_connection = url.openConnection();
+ url_connection.setDefaultUseCaches( false );
+ final InputStream i = url_connection.getInputStream();
final Phylogeny[] phys = factory.create( i, parser );
i.close();
if ( phys != null ) {
return _suffix;
}
}
+
+ final public static Color calculateColorFromString( final String str, final boolean is_taxonomy ) {
+ final String my_str = str.toUpperCase();
+ char first = my_str.charAt( 0 );
+ char second = ' ';
+ char third = ' ';
+ if ( my_str.length() > 1 ) {
+ if ( is_taxonomy ) {
+ second = my_str.charAt( 1 );
+ }
+ else {
+ second = my_str.charAt( my_str.length() - 1 );
+ }
+ if ( is_taxonomy ) {
+ if ( my_str.length() > 2 ) {
+ if ( my_str.indexOf( " " ) > 0 ) {
+ third = my_str.charAt( my_str.indexOf( " " ) + 1 );
+ }
+ else {
+ third = my_str.charAt( 2 );
+ }
+ }
+ }
+ else if ( my_str.length() > 2 ) {
+ third = my_str.charAt( ( my_str.length() - 1 ) / 2 );
+ }
+ }
+ first = normalizeCharForRGB( first );
+ second = normalizeCharForRGB( second );
+ third = normalizeCharForRGB( third );
+ if ( ( first > 235 ) && ( second > 235 ) && ( third > 235 ) ) {
+ first = 0;
+ }
+ else if ( ( first < 60 ) && ( second < 60 ) && ( third < 60 ) ) {
+ second = 255;
+ }
+ return new Color( first, second, third );
+ }
+
+ final private static char normalizeCharForRGB( char c ) {
+ c -= 65;
+ c *= 10.2;
+ c = c > 255 ? 255 : c;
+ c = c < 0 ? 0 : c;
+ return c;
+ }
}