001 /**
002 * This library is free software; you can redistribute it and/or modify it
003 * under the terms of the GNU Lesser General Public License (LGPL) as
004 * published by the Free Software Foundation; either version 3.0 of the
005 * License, or (at your option) any later version.
006 *
007 * This library is distributed in the hope that it will be useful, but
008 * WITHOUT ANY WARRANTY; without even the implied warranty of
009 * MERCHANTABILITY of FITNESS FOR A PARTICULAR PURPOSE. See the GNU
010 * Lesser General Public License for more details.
011 */
012
013 /**
014 * Title: JBarcodeBean
015 * Description: Barcode JavaBeans Component
016 * Copyright: Copyright (C) 2004
017 * Company: Dafydd Walters
018 */
019 package net.sourceforge.jbarcodebean;
020
021 import java.beans.BeanDescriptor;
022 import java.beans.BeanInfo;
023 import java.beans.IntrospectionException;
024 import java.beans.PropertyDescriptor;
025 import java.beans.SimpleBeanInfo;
026 import java.net.URL;
027
028 import javax.swing.ImageIcon;
029
030 /**
031 * This class is an implementation of the <tt><b>java.beans.BeanInfo</b></tt>
032 * interface, that provides GUI Builders with information about
033 * {@link JBarcodeBean}.
034 */
035 public class JBarcodeBeanBeanInfo extends SimpleBeanInfo {
036
037 public BeanDescriptor getBeanDescriptor() {
038 BeanDescriptor bd = new BeanDescriptor(beanClass);
039 bd.setName("jbarcodebean.JBarcodeBean");
040 bd.setDisplayName("JBarcodeBean "+JBarcodeBean.getVersion());
041 bd.setShortDescription("JBarcodeBean is a JFC Swing-compatible JavaBeans component that lets you barcode-enable Java 2 enterprise applications.");
042 return bd;
043 }
044
045 public java.awt.Image getIcon(int iconKind) {
046 String iconName=null;
047 switch (iconKind) {
048 case BeanInfo.ICON_MONO_16x16:
049 iconName="jbarcodebean_bw16.gif";
050 break;
051 case BeanInfo.ICON_COLOR_16x16:
052 iconName="jbarcodebean_c16.gif";
053 break;
054 case BeanInfo.ICON_MONO_32x32:
055 iconName="jbarcodebean_bw32.gif";
056 break;
057 case BeanInfo.ICON_COLOR_32x32:
058 iconName="jbarcodebean_c32.gif";
059 break;
060 }
061 if(iconName!=null){
062 URL url=beanClass.getResource(iconName);
063 if(url!=null){
064 return new ImageIcon(url).getImage();
065 } else{
066 return null;
067 }
068 }
069 return null;
070 }
071
072 public PropertyDescriptor[] getPropertyDescriptors() {
073 try {
074 PropertyDescriptor code = new PropertyDescriptor("code", beanClass);
075 code.setBound(true);
076 PropertyDescriptor narrowestBarWidth = new PropertyDescriptor("narrowestBarWidth", beanClass);
077 narrowestBarWidth.setBound(true);
078 PropertyDescriptor checkDigit = new PropertyDescriptor("checkDigit", beanClass);
079 checkDigit.setBound(true);
080 PropertyDescriptor codeType = new PropertyDescriptor("codeType", beanClass);
081 codeType.setBound(true);
082 codeType.setPropertyEditorClass(BarcodeStrategyEditor.class);
083 PropertyDescriptor font = new PropertyDescriptor("font", beanClass);
084 font.setBound(true);
085 PropertyDescriptor border = new PropertyDescriptor("border", beanClass);
086 border.setBound(true);
087 PropertyDescriptor background = new PropertyDescriptor("background", beanClass);
088 background.setBound(true);
089 PropertyDescriptor foreground = new PropertyDescriptor("foreground", beanClass);
090 foreground.setBound(true);
091 PropertyDescriptor barcodeBackground = new PropertyDescriptor("barcodeBackground", beanClass);
092 barcodeBackground.setBound(true);
093 PropertyDescriptor barcodeHeight = new PropertyDescriptor("barcodeHeight", beanClass);
094 barcodeHeight.setBound(true);
095 PropertyDescriptor showText = new PropertyDescriptor("showText", beanClass);
096 showText.setBound(true);
097 PropertyDescriptor angleDegrees = new PropertyDescriptor("angleDegrees", beanClass);
098 angleDegrees.setBound(true);
099
100 PropertyDescriptor rv[] = {code, narrowestBarWidth, checkDigit, codeType,
101 font, border, background, foreground, barcodeBackground,
102 barcodeHeight, showText, angleDegrees};
103 return rv;
104 } catch( IntrospectionException e) {
105 throw new Error(e.toString());
106 }
107 }
108
109 public int getDefaultPropertyIndex() {
110 // the index for the code property.
111 return 0;
112 }
113
114 private final static Class beanClass = JBarcodeBean.class;
115 }