package part_readers; import org.w3c.dom.*; import javax.swing.*; import java.awt.*; import com.jds.jn.parser.datatree.*; import com.jds.jn.parser.valuereader.ValueReader; /** * @author Gilles Duboscq */ public class ColorReader implements ValueReader { public boolean loadReaderFromXML(Node n) { return true; } public String read(ValuePart part) { return ((RawValuePart)part).getHexDump(); } public JComponent readToComponent(ValuePart part) { if (!(part instanceof VisualValuePart)) { throw new IllegalStateException("A ColorReader must be providen an IntValuePart"); } int color = (int)((VisualValuePart) part).getValueAsInt(); int r = (color & 0x000000ff); //save red color = (color & 0xff00ff00) | ((color & 0x00ff0000) >> 0x10); //swap red and blue color = (color & 0xff00ffff) | (r << 0x10); JPanel panel = new JPanel(); panel.setBackground(new Color(color)); return panel; } }