/* * MatteBorderEditor.java * * Created on 31 ���� 2006 �., 18:06 * */ package datechooser.beans.editor.border.types; import datechooser.beans.editor.utils.*; import static datechooser.beans.locale.LocaleUtils.getEditorLocaleString; import java.awt.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import javax.swing.*; import javax.swing.border.*; /** * Editor for matte borders.<br> * �������� ������ ���� Matte * @author Androsov Vadim * @since 1.0 */ public class MatteBorderEditor extends AbstractBorderEditor { private Insets insets; private ColorHolder color; private InsetsPanel insetsPane; public MatteBorderEditor() { color = new ColorHolder(); setCaption(getEditorLocaleString("Matte")); initialize(); insetsPane = new InsetsPanel(insets); insetsPane.addPropertyChangeListener(new InsetsListener()); JButton bColor = new JButton(getEditorLocaleString("Matte_color")); ColorChooseAction colorChooseAction = new ColorChooseAction(color, getEditorLocaleString("Matte_color"), this); colorChooseAction.addPropertyChangeListener(new ColorListener()); bColor.addActionListener(colorChooseAction); setLayout(new GridLayout(2, 1)); add(getCenteredPane(insetsPane)); add(getCenteredPane(bColor)); refreshInterface(); } protected void prepareSelection() { setValue(new MatteBorder(insets, color.getColor())); } private void assignValueToParameters() { Insets currIns = getValue().getBorderInsets(); insets.set(currIns.top, currIns.left, currIns.bottom, currIns.right); color.setColor(getValue().getMatteColor()); } protected MatteBorder getValue() { return (MatteBorder) value; } public void refreshInterface() { assignValueToParameters(); insetsPane.refresh(); } protected Border getDefaultValue() { insets = new Insets(1, 1, 1, 1); return new MatteBorder(insets, Color.GRAY); } private class InsetsListener implements PropertyChangeListener { public void propertyChange(PropertyChangeEvent evt) { if (!InsetsPanel.INSETS_EVENT_NAME.equals(evt.getPropertyName())) return; fireChange(); } } private class ColorListener implements PropertyChangeListener { public void propertyChange(PropertyChangeEvent evt) { if (!ColorChooseAction.COLOR_CHOOSE_EVENT_NAME.equals(evt.getPropertyName())) return; fireChange(); } } }