package org.chartsy.main.utils;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.beans.PropertyEditor;
import java.beans.PropertyEditorSupport;
import javax.swing.JComponent;
import javax.swing.JSlider;
import javax.swing.KeyStroke;
import org.openide.explorer.propertysheet.ExPropertyEditor;
import org.openide.explorer.propertysheet.InplaceEditor;
import org.openide.explorer.propertysheet.PropertyEnv;
import org.openide.explorer.propertysheet.PropertyModel;
/**
*
* @author viorel.gheba
*/
public class AlphaPropertyEditor extends PropertyEditorSupport implements ExPropertyEditor, InplaceEditor.Factory {
private InplaceEditor ed = null;
public AlphaPropertyEditor() {}
public void attachEnv(PropertyEnv env) { env.registerInplaceEditorFactory(this); }
public InplaceEditor getInplaceEditor() {
if (ed == null) ed = new Inplace();
return ed;
}
private static class Inplace implements InplaceEditor {
private final JSlider slider = new JSlider(0, 255, 25);
private PropertyEditor editor = null;
private PropertyModel model;
public void connect(PropertyEditor propertyEditor, PropertyEnv env) { editor = propertyEditor; reset(); }
public JComponent getComponent() { return slider; }
public void clear() { editor = null; model = null; }
public Object getValue() { return slider.getValue(); }
public void setValue(Object object) { slider.setValue((Integer) object); }
public boolean supportsTextEntry() { return false; }
public void reset() { if (editor.getValue() != null) slider.setValue((Integer) editor.getValue()); }
public void addActionListener(ActionListener arg0) {}
public void removeActionListener(ActionListener arg0) {}
public KeyStroke[] getKeyStrokes() { return new KeyStroke[0]; }
public PropertyEditor getPropertyEditor() { return editor; }
public PropertyModel getPropertyModel() { return model; }
public void setPropertyModel(PropertyModel propertyModel) { this.model = propertyModel; }
public boolean isKnownComponent(Component component) { return component == slider || slider.isAncestorOf(component); }
}
}