package jas.util; import java.awt.Color; class ColorFieldBinding extends FieldBinding implements ColorListener { ColorFieldBinding(ColorChooser field) { m_field = field; field.addColorListener(this); } void set(Object value) throws UnsupportedType { if (!(value instanceof Color)) throw new UnsupportedType(m_field,value.getClass()); Color c = (Color) value; if (!m_oldVal.equals(c)) { m_field.setColor(c); m_oldVal = c; } } Object get(Class type) throws UnsupportedType { Color c = m_field.getColor(); if (!type.isInstance(c)) throw new UnsupportedType(m_field,type); return c; } public void colorChanged(ColorEvent e) { Color c = m_field.getColor(); if (c != m_oldVal) setChanged(); notifyObservers(); } protected void reset() { super.reset(); m_oldVal = m_field.getColor(); } private Color m_oldVal = Color.black; private ColorChooser m_field; }