//------------------------------------------------------------------------------ // Copyright (c) 2005, 2006 IBM Corporation and others. // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // which accompanies this distribution, and is available at // http://www.eclipse.org/legal/epl-v10.html // // Contributors: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.publishing.services.index; import java.awt.Color; import java.awt.Font; import java.util.NoSuchElementException; import com.ibm.icu.util.StringTokenizer; /********************************************************************* * Class with only class methods that simplifies some communications * with a www-server and also output to the Java Console Window. * * Due to security limitations, the only www-server reachable, * is the server from which the current applet is loaded from. * * This class uses the ErrorWindow class for showing error messages. * * @see ruptools.io.ErrorWindow * * @version 1.0 * @author Rational Software *********************************************************************/ class IO { private static boolean debugOn=false; /** * Class method that returns a set of string delimiters that can be * used when tokenizing a text string. * */ static String getDelim() { return new String("*"); //$NON-NLS-1$ } /** * Class method that controls if debug info shall be showed or not * in the Java Console Window. * * @param isOn If <b>true</b> then debug info will be showed. * */ static void debug(boolean isOn) { debugOn = isOn; } /** * Print Error messages in the Java Console Window * * @param str String to print * */ static void printError( String str ) { System.out.println( "Error:" + str ); //$NON-NLS-1$ } /** * Print Debug messages in the Java Console Window if the debug flag * is set (setDebug method) * * @param str String to print * */ static void printDebug( String str ) { if (debugOn) System.out.println( "Debug:" + str ); //$NON-NLS-1$ } static Color getColor(String sPBG) { // Check if a pre-defined color is specified. sPBG = sPBG.trim(); if (sPBG.equalsIgnoreCase("black")) //$NON-NLS-1$ return(Color.black); if (sPBG.equalsIgnoreCase("blue")) //$NON-NLS-1$ return(Color.blue); if (sPBG.equalsIgnoreCase("cyan")) //$NON-NLS-1$ return(Color.cyan); if (sPBG.equalsIgnoreCase("darkGray")) //$NON-NLS-1$ return(Color.darkGray); if (sPBG.equalsIgnoreCase("gray")) //$NON-NLS-1$ return(Color.gray); if (sPBG.equalsIgnoreCase("green")) //$NON-NLS-1$ return(Color.green); if (sPBG.equalsIgnoreCase("lightGray")) //$NON-NLS-1$ return(Color.lightGray); if (sPBG.equalsIgnoreCase("magenta")) //$NON-NLS-1$ return(Color.magenta); if (sPBG.equalsIgnoreCase("orange")) //$NON-NLS-1$ return(Color.orange); if (sPBG.equalsIgnoreCase("pink")) //$NON-NLS-1$ return(Color.pink); if (sPBG.equalsIgnoreCase("red")) //$NON-NLS-1$ return(Color.red); if (sPBG.equalsIgnoreCase("white")) //$NON-NLS-1$ return(Color.white); if (sPBG.equalsIgnoreCase("yellow")) //$NON-NLS-1$ return(Color.yellow); else { // If the color is specified in HTML format, build it from the red, green and blue values int iRed = 255; int iBlue = 255; int iGreen = 255; if (sPBG.length() == 7 && sPBG.charAt(0) == '#') { iRed = Integer.parseInt(sPBG.substring(1,3),16); iGreen = Integer.parseInt(sPBG.substring(5,7),16); iBlue = Integer.parseInt(sPBG.substring(3,5),16); return(new Color(iRed, iGreen, iBlue)); } StringTokenizer parser = new StringTokenizer(sPBG, ","); //$NON-NLS-1$ try { String sRed = parser.nextToken(); String sGreen = parser.nextToken(); String sBlue = parser.nextToken(); iRed = Integer.parseInt(sRed.trim()); iGreen = Integer.parseInt(sGreen.trim()); iBlue = Integer.parseInt(sBlue.trim()); return new Color(iRed, iGreen, iBlue); } catch (NoSuchElementException e1) { System.out.println("IO.getColor\nException 1:" + e1.toString() + sPBG); //$NON-NLS-1$ } catch (Exception e2) { System.out.println("IO.getColor\nException 2:" + e2.toString() + sPBG); //$NON-NLS-1$ } } return Color.black; } static Font getFont(String sPBG) { String font = "Arial"; //$NON-NLS-1$ String style = "PLAIN"; //$NON-NLS-1$ int size = 12; int realStyle=Font.PLAIN; sPBG = sPBG.trim(); StringTokenizer parser = new StringTokenizer(sPBG, ","); //$NON-NLS-1$ try { font = parser.nextToken(); font = font.trim(); if (font.equalsIgnoreCase("Arial")) //$NON-NLS-1$ font = "Arial"; //$NON-NLS-1$ else if (font.equalsIgnoreCase("Courier")) //$NON-NLS-1$ font = "Courier"; //$NON-NLS-1$ else if (font.equalsIgnoreCase("Dialog")) //$NON-NLS-1$ font = "Dialog"; //$NON-NLS-1$ else if (font.equalsIgnoreCase("Helvetica")) //$NON-NLS-1$ font = "Helvetica"; //$NON-NLS-1$ else if (font.equalsIgnoreCase("Symbol")) //$NON-NLS-1$ font = "Symbol"; //$NON-NLS-1$ else if (font.equalsIgnoreCase("TimesRoman")) //$NON-NLS-1$ font = "TimesRoman"; //$NON-NLS-1$ style = parser.nextToken(); style = style.trim(); if(style.equalsIgnoreCase("ITALIC")) //$NON-NLS-1$ { realStyle=Font.ITALIC; } else if(style.equalsIgnoreCase("BOLD")) //$NON-NLS-1$ { realStyle=Font.BOLD; } else if(style.equalsIgnoreCase("BOLDITALIC")) //$NON-NLS-1$ { realStyle=Font.BOLD + Font.BOLD; } size = new Integer(parser.nextToken().trim()).intValue(); } catch (NoSuchElementException e1) { System.out.println("IO.getFont\nException 1:" + e1.toString()); //$NON-NLS-1$ } catch (Exception e2) { System.out.println("IO.getFont\nException 2:" + e2.toString()); //$NON-NLS-1$ } return new Font(font, realStyle, size); } }