1 /* ExplicitBeanInfo.java -- 2 Copyright (C) 1998, 2004 Free Software Foundation, Inc. 3 4 This file is part of GNU Classpath. 5 6 GNU Classpath is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 GNU Classpath is distributed in the hope that it will be useful, but 12 WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with GNU Classpath; see the file COPYING. If not, write to the 18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19 02110-1301 USA. 20 21 Linking this library statically or dynamically with other modules is 22 making a combined work based on this library. Thus, the terms and 23 conditions of the GNU General Public License cover the whole 24 combination. 25 26 As a special exception, the copyright holders of this library give you 27 permission to link this library with independent modules to produce an 28 executable, regardless of the license terms of these independent 29 modules, and to copy and distribute the resulting executable under 30 terms of your choice, provided that you also meet, for each linked 31 independent module, the terms and conditions of the license of that 32 module. An independent module is a module which is not derived from 33 or based on this library. If you modify this library, you may extend 34 this exception to your version of the library, but you are not 35 obligated to do so. If you do not wish to do so, delete this 36 exception statement from your version. */ 37 38 39 package gnu.java.beans; 40 41 import java.awt.Image; 42 import java.beans.BeanDescriptor; 43 import java.beans.BeanInfo; 44 import java.beans.EventSetDescriptor; 45 import java.beans.MethodDescriptor; 46 import java.beans.PropertyDescriptor; 47 48 /** 49 ** ExplicitBeanInfo lets you specify in the constructor 50 ** all the various parts of the BeanInfo. 51 ** 52 ** @author John Keiser 53 ** @version 1.1.0, 30 Jul 1998 54 ** @see java.beans.BeanInfo 55 **/ 56 57 public class ExplicitBeanInfo implements BeanInfo { 58 /** The BeanDescriptor returned by getBeanDescriptor. **/ 59 protected BeanDescriptor beanDescriptor; 60 61 /** The EventSetDescriptor array returned by 62 ** getEventSetDescriptors(). 63 **/ 64 protected EventSetDescriptor[] eventSetDescriptors = new EventSetDescriptor[0]; 65 66 /** The PropertyDescriptor array returned by 67 ** getPropertyDescriptors(). 68 **/ 69 protected PropertyDescriptor[] propertyDescriptors = new PropertyDescriptor[0]; 70 71 /** The MethodDescriptor array returned by 72 ** getMethodDescriptors(). 73 **/ 74 protected MethodDescriptor[] methodDescriptors; 75 76 /** The default property index. **/ 77 protected int defaultPropertyIndex; 78 79 /** The default event index. **/ 80 protected int defaultEventIndex; 81 82 /** The BeanInfo array returned by 83 ** getAdditionalBeanInfo(). 84 **/ 85 protected BeanInfo[] additionalBeanInfo; 86 87 /** The set of icons. **/ 88 protected Image[] icons; 89 ExplicitBeanInfo(BeanDescriptor beanDescriptor, BeanInfo[] additionalBeanInfo, PropertyDescriptor[] propertyDescriptors, int defaultPropertyIndex, EventSetDescriptor[] eventSetDescriptors, int defaultEventIndex, MethodDescriptor[] methodDescriptors, Image[] icons)90 public ExplicitBeanInfo(BeanDescriptor beanDescriptor, 91 BeanInfo[] additionalBeanInfo, 92 PropertyDescriptor[] propertyDescriptors, 93 int defaultPropertyIndex, 94 EventSetDescriptor[] eventSetDescriptors, 95 int defaultEventIndex, 96 MethodDescriptor[] methodDescriptors, 97 Image[] icons) { 98 this.beanDescriptor = beanDescriptor; 99 this.additionalBeanInfo = additionalBeanInfo; 100 this.propertyDescriptors = propertyDescriptors; 101 this.defaultPropertyIndex = defaultPropertyIndex; 102 this.eventSetDescriptors = eventSetDescriptors; 103 this.defaultEventIndex = defaultEventIndex; 104 this.methodDescriptors = methodDescriptors; 105 this.icons = icons; 106 } 107 108 /** Get Bean descriptor. **/ getBeanDescriptor()109 public BeanDescriptor getBeanDescriptor() { 110 return beanDescriptor; 111 } 112 113 /** Get Bean events. **/ getEventSetDescriptors()114 public EventSetDescriptor[] getEventSetDescriptors() { 115 return eventSetDescriptors; 116 } 117 118 /** Get default event set. **/ getDefaultEventIndex()119 public int getDefaultEventIndex() { 120 return defaultEventIndex; 121 } 122 123 /** Get Bean properties. **/ getPropertyDescriptors()124 public PropertyDescriptor[] getPropertyDescriptors() { 125 return propertyDescriptors; 126 } 127 128 /** Get "default" property. **/ getDefaultPropertyIndex()129 public int getDefaultPropertyIndex() { 130 return defaultPropertyIndex; 131 } 132 133 /** Get Bean methods. **/ getMethodDescriptors()134 public MethodDescriptor[] getMethodDescriptors() { 135 return methodDescriptors; 136 } 137 138 /** Get additional Bean info. **/ getAdditionalBeanInfo()139 public BeanInfo[] getAdditionalBeanInfo() { 140 return additionalBeanInfo; 141 } 142 143 /** Get Bean icons. 144 ** @param iconType the type of icon 145 **/ getIcon(int iconType)146 public Image getIcon(int iconType) { 147 return icons != null ? icons[iconType - 1] : null; 148 } 149 } 150