swingx-master/swingx-beaninfo/src/main/java/org/jdesktop/beans/editors/ShapePropertyEditor.java
/*
 * ShapePropertyEditor.java
 *
 * Created on August 23, 2006, 10:17 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.jdesktop.beans.editors;

import java.awt.Component;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.beans.PropertyEditorSupport;


/**
 *
 * @author joshy
 */
public class ShapePropertyEditor extends PropertyEditorSupport {
    ShapeChooser chooser;
    /** Creates a new instance of ShapePropertyEditor */
    public ShapePropertyEditor() {
        chooser = new ShapeChooser();
        chooser.shapeCombo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent actionEvent) {
                if(chooser.shapeCombo.getSelectedItem().equals("Square")) {
                    setValue(new Rectangle(0,0,100,100));
                } else {
                    setValue(new Ellipse2D.Double(0,0,100,100));
                }
            }
        });
    }
    
    @Override
    public Shape getValue() {
        return (Shape)super.getValue();
    }
    
    @Override
    public void setValue(Object value) {
        super.setValue(value);
    }
    
    @Override
    public boolean isPaintable() {
        return true;
    }
    
    @Override
    public boolean supportsCustomEditor() {
        return true;
    }
    
    @Override
    public Component getCustomEditor() {
        return chooser;
    }
}
