/* * EtchedBorderEditor.java * * Created on 31 ���� 2006 �., 18:05 * */ package datechooser.beans.editor.border.types; import datechooser.beans.editor.utils.*; import static datechooser.beans.locale.LocaleUtils.getEditorLocaleString; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.text.MessageFormat; import javax.swing.*; import javax.swing.border.*; /** * Editor for etched borders.<br> * �������� ������ ���� Etched * @author Androsov Vadim * @since 1.0 */ public class EtchedBorderEditor extends AbstractBorderEditor implements PropertyChangeListener { private int etchType; private ColorHolder highlight; private ColorHolder shadow; private RiseLowPanel selType; public EtchedBorderEditor() { initialize(); highlight = new ColorHolder(); shadow = new ColorHolder(); setCaption(getEditorLocaleString("Etched")); assignValueToParameters(); selType = new RiseLowPanel(etchType, EtchedBorder.RAISED, EtchedBorder.LOWERED); selType.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { etchType = selType.getType(); fireChange(); } }); JButton bHigh = new JButton(getEditorLocaleString("Highlight")); ColorChooseAction colorChooseAction = new ColorChooseAction(highlight, getEditorLocaleString("Highlight"), this); colorChooseAction.addPropertyChangeListener(this); bHigh.addActionListener(colorChooseAction); JButton bShadow = new JButton(getEditorLocaleString("Shadow")); colorChooseAction = new ColorChooseAction(shadow, getEditorLocaleString("Shadow"), this); colorChooseAction.addPropertyChangeListener(this); bShadow.addActionListener(colorChooseAction); setLayout(new BorderLayout()); JPanel totalPane = new JPanel(new GridLayout(2, 1)); totalPane.add(selType); JPanel buttonPane = new JPanel(new GridLayout(1, 2)); buttonPane.add(getCenteredPane(bHigh)); buttonPane.add(getCenteredPane(bShadow)); totalPane.add(buttonPane); add(totalPane, BorderLayout.NORTH); refreshInterface(); } protected void prepareSelection() { setValue(new EtchedBorder(etchType, highlight.getColor(), shadow.getColor())); } private void assignValueToParameters() { etchType = getValue().getEtchType(); highlight.setColor(getValue().getHighlightColor()); shadow.setColor(getValue().getShadowColor()); } protected EtchedBorder getValue() { return (EtchedBorder) value; } public void refreshInterface() { assignValueToParameters(); } protected Border getDefaultValue() { return new EtchedBorder(); } public void propertyChange(PropertyChangeEvent evt) { if (!ColorChooseAction.COLOR_CHOOSE_EVENT_NAME.equals(evt.getPropertyName())) return; fireChange(); } }