001/* 002 * Copyright (c) 2010 The Regents of the University of California. 003 * All rights reserved. 004 * 005 * '$Author: welker $' 006 * '$Date: 2010-05-06 05:21:26 +0000 (Thu, 06 May 2010) $' 007 * '$Revision: 24234 $' 008 * 009 * Permission is hereby granted, without written agreement and without 010 * license or royalty fees, to use, copy, modify, and distribute this 011 * software and its documentation for any purpose, provided that the above 012 * copyright notice and the following two paragraphs appear in all copies 013 * of this software. 014 * 015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY 016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF 018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF 019 * SUCH DAMAGE. 020 * 021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, 022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE 024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF 025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, 026 * ENHANCEMENTS, OR MODIFICATIONS. 027 * 028 */ 029 030package org.kepler.sms; 031 032import java.lang.reflect.Field; 033import java.util.regex.Matcher; 034import java.util.regex.Pattern; 035 036/** 037 * Created by IntelliJ IDEA. 038 * User: sean 039 * Date: Jul 16, 2009 040 * Time: 4:37:50 PM 041 */ 042public class Color { 043 public Color() {} 044 public Color(java.awt.Color color) { 045 this.color = color; 046 this.colorString = color.getRed() + "," + color.getGreen() + "," + color.getBlue(); 047 } 048 049 private static java.awt.Color DEFAULT_COLOR = java.awt.Color.WHITE; 050 051 public Color(String colorString) { 052 initializeAsStaticField(colorString); 053 if (color == null) { 054 initializeAsRGB(colorString); 055 } 056 if (color == null) { 057 initializeAsDefault(); 058 } 059 } 060 061 public static Color getDefaultColor() { 062 return new Color(DEFAULT_COLOR); 063 } 064 065 private void initializeAsDefault() { 066 this.color = DEFAULT_COLOR; 067 setColorString(); 068 } 069 070 public void initializeAsStaticField(String string) { 071 Class awtColorClass = java.awt.Color.class; 072 try { 073 Field field = awtColorClass.getField(string.toUpperCase()); 074 this.color = (java.awt.Color) field.get(null); 075 setColorString(); 076 } 077 catch(NoSuchFieldException ignored) {} 078 catch(IllegalAccessException ignored) {} 079 } 080 081 public void initializeAsRGB(String string) { 082 Pattern pattern = Pattern.compile("([0-9]+),([0-9]+),([0-9]+)"); 083 Matcher matcher = pattern.matcher(string); 084 if (matcher.matches()) { 085 int r = Integer.valueOf(matcher.group(1)); 086 int g = Integer.valueOf(matcher.group(2)); 087 int b = Integer.valueOf(matcher.group(3)); 088 this.color = new java.awt.Color(r, g, b); 089 setColorString(); 090 } 091 } 092 093 public void setColor(java.awt.Color color) { 094 this.color = color; 095 this.setColorString(); 096 } 097 098 private void setColorString() { 099 colorString = color.getRed() + "," + color.getGreen() + "," + color.getBlue(); 100 } 101 102 @Override 103 public String toString() { 104 return colorString; 105 } 106 107 public java.awt.Color getAwtColor() { 108 return this.color; 109 } 110 111 private java.awt.Color color; 112 private String colorString; 113 114 public static Color RED = new Color(java.awt.Color.RED); 115}