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 028package org.jfree.beans.editors; 029 030import java.awt.Component; 031import java.awt.FlowLayout; 032import java.beans.PropertyEditorSupport; 033 034import javax.swing.JButton; 035import javax.swing.JPanel; 036 037import org.jfree.util.Rotation; 038 039/** 040 * A JavaBeans property editor for the {@link Rotation} class. 041 */ 042public 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 java.awt.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}