001 /* 002 * LAPIS lightweight structured text processing system 003 * 004 * Copyright (C) 1998-2002 Carnegie Mellon University, 005 * Copyright (C) 2003 Massachusetts Institute of Technology. 006 * All rights reserved. 007 * 008 * This library is free software; you can redistribute it 009 * and/or modify it under the terms of the GNU General 010 * Public License as published by the Free Software 011 * Foundation, version 2. 012 * 013 * LAPIS homepage: http://graphics.lcs.mit.edu/lapis/ 014 */ 015 016 package lapisx.swing; 017 018 import java.beans.*; 019 import javax.swing.*; 020 021 public class LineBeanInfo extends SimpleBeanInfo { 022 public BeanDescriptor getBeanDescriptor () { 023 return new BeanDescriptor (Line.class); 024 } 025 026 public PropertyDescriptor[] getPropertyDescriptors () { 027 try { 028 PropertyDescriptor[] props = 029 new PropertyDescriptor [] { 030 new PropertyDescriptor ("foreground", Line.class), 031 new PropertyDescriptor ("orientation", Line.class), 032 }; 033 props[1].setPropertyEditorClass (OrientationEditor.class); 034 return props; 035 } catch (IntrospectionException e) { 036 return super.getPropertyDescriptors (); 037 } 038 } 039 040 public static class OrientationEditor extends PropertyEditorSupport { 041 public String[] getTags () { 042 return new String[] { "horizontal", "vertical" }; 043 } 044 045 public void setAsText (String s) { 046 if ("horizontal".equalsIgnoreCase (s)) 047 setValue (new Integer (SwingConstants.HORIZONTAL)); 048 else if ("vertical".equalsIgnoreCase (s)) 049 setValue (new Integer (SwingConstants.VERTICAL)); 050 else 051 throw new IllegalArgumentException (s); 052 } 053 054 public String getAsText () { 055 switch (((Number) getValue ()).intValue ()) { 056 default: 057 case SwingConstants.HORIZONTAL: 058 return "horizontal"; 059 case SwingConstants.VERTICAL: 060 return "vertical"; 061 } 062 } 063 064 public String getJavaInitializationString () { 065 switch (((Number) getValue ()).intValue ()) { 066 default: 067 case SwingConstants.HORIZONTAL: 068 return "javax.swing.SwingConstants.HORIZONTAL"; 069 case SwingConstants.VERTICAL: 070 return "javax.swing.SwingConstants.VERTICAL"; 071 } 072 } 073 } 074 075 }