001 /* ====================================================== 002 * Orson : a free chart beans library based on JFreeChart 003 * ====================================================== 004 * 005 * (C) Copyright 2007, by Object Refinery Limited. 006 * 007 * Project Info: not-yet-released 008 * 009 * This library is free software; you can redistribute it and/or modify it 010 * under the terms of the GNU Lesser General Public License as published by 011 * the Free Software Foundation; either version 2.1 of the License, or 012 * (at your option) any later version. 013 * 014 * This library is distributed in the hope that it will be useful, but 015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 017 * License for more details. 018 * 019 * You should have received a copy of the GNU Lesser General Public 020 * License along with this library; if not, write to the Free Software 021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 022 * USA. 023 * 024 * [Java is a trademark or registered trademark of Sun Microsystems, Inc. 025 * in the United States and other countries.] 026 */ 027 028 package org.jfree.beans.editors; 029 030 import java.awt.Component; 031 import java.awt.FlowLayout; 032 import java.beans.PropertyEditorSupport; 033 034 import javax.swing.JButton; 035 import javax.swing.JPanel; 036 037 import org.jfree.util.Rotation; 038 039 /** 040 * A JavaBeans property editor for the {@link Rotation} class. 041 */ 042 public class StrokeEditor extends PropertyEditorSupport { 043 044 // /** 045 // * Returns a string representing the current value. This will be one of 046 // * <code>Rotation.CLOCKWISE</code> and <code>Rotation.ANTICLOCKWISE</code>. 047 // * 048 // * @return A string representing the current value. 049 // */ 050 // public String getAsText() { 051 // return "STROKE1"; 052 // } 053 // 054 // /** 055 // * Sets the current value by parsing the supplied string. 056 // * 057 // * @param text the string value. 058 // * 059 // * @throws IllegalArgumentException if <code>text</code> is not one of 060 // * the values listed in {@link #getAsText()}. 061 // */ 062 // public void setAsText(String text) throws IllegalArgumentException { 063 // if ("STROKE1".equals(text)) { 064 // setValue(new BasicStroke(1.0f)); 065 // } 066 // else if ("STROKE2".equals(text)) { 067 // setValue(new BasicStroke(2.0f)); 068 // } 069 // else { 070 // throw new IllegalArgumentException("Unrecognised 'text' argument."); 071 // } 072 // } 073 // 074 // /** 075 // * Returns the valid string values for this property. 076 // * 077 // * @return The valid string values for this property. 078 // */ 079 // public String[] getTags() { 080 // return new String[] {"STROKE1", "STROKE2"}; 081 // } 082 083 /** 084 * Returns a string for the property value. 085 * 086 * @return A string for the property value. 087 */ 088 public String getJavaInitializationString() { 089 return "new BasicStroke(2.0f);"; 090 } 091 092 /* (non-Javadoc) 093 * @see java.beans.PropertyEditorSupport#getCustomEditor() 094 */ 095 public Component getCustomEditor() { 096 System.out.println("getCustomEditor()"); 097 JPanel editor = new JPanel(new FlowLayout()); 098 editor.add(new JButton("Button 1")); 099 editor.add(new JButton("Button 2")); 100 return editor; 101 } 102 103 /* (non-Javadoc) 104 * @see java.beans.PropertyEditorSupport#supportsCustomEditor() 105 */ 106 public boolean supportsCustomEditor() { 107 System.out.println("supportsCustomEditor()"); 108 return true; 109 } 110 111 }