package hep.aida.ref.plotter.style.editor; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JColorChooser; import javax.swing.JDialog; import org.freehep.swing.ColorConverter; import com.l2fprod.common.beans.editor.ColorPropertyEditor; import com.l2fprod.common.swing.renderer.ColorCellRenderer; /** * Extends l2fprod ColorPropertyEditor to use FreeHEP * color chooser - it has extrat tab to choose color "By Name" */ public class ColorStylePropertyEditor extends ColorPropertyEditor { private JColorChooser colorChooser; private JDialog colorChooserDialog; private ActionListener okListener; public ColorStylePropertyEditor() { super(); } protected void selectColor() { if (okListener == null) { okListener = new ActionListener() { public void actionPerformed(ActionEvent e) { okAction(); } }; } if (colorChooserDialog == null) { String title = "Choose Color"; colorChooser = ColorConverter.getColorChooser(); colorChooserDialog = colorChooser.createDialog(editor, title, true, colorChooser, okListener, null); colorChooserDialog.pack(); } colorChooserDialog.setVisible(true); } private void okAction() { try { Color selectedColor = colorChooser.getColor(); if (selectedColor != null) { Color oldColor = (Color) getValue(); Color newColor = selectedColor; setValue(newColor); firePropertyChange(oldColor, newColor); } } catch (Exception e) { e.printStackTrace(); } } private class ColorStyleCellRenderer extends ColorCellRenderer { protected String convertToString(Object value) { String tmp = null; if (value == null) return null; if (value instanceof Color) tmp = ColorConverter.get((Color) value); else tmp = super.convertToString(value); return tmp; } } }