//
// Copyright © 2014, David Tesler (https://github.com/protobufel)
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// * Neither the name of the <organization> nor the
// names of its contributors may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
package com.github.protobufel.el;
import java.beans.BeanDescriptor;
import java.beans.EventSetDescriptor;
import java.beans.IntrospectionException;
import java.beans.MethodDescriptor;
import java.beans.PropertyDescriptor;
import java.beans.SimpleBeanInfo;
public class EmployeeBeanInfo extends SimpleBeanInfo {
// Bean descriptor//GEN-FIRST:BeanDescriptor
/* lazy BeanDescriptor */
private static BeanDescriptor getBdescriptor() {
final BeanDescriptor beanDescriptor =
new BeanDescriptor(com.github.protobufel.el.Employee.class, null); // NOI18N//GEN-HEADEREND:BeanDescriptor
// Here you can add code for customizing the BeanDescriptor.
return beanDescriptor;
}// GEN-LAST:BeanDescriptor
// Property identifiers//GEN-FIRST:Properties
private static final int PROPERTY_attributes = 0;
private static final int PROPERTY_keywords = 1;
private static final int PROPERTY_name = 2;
private static final int PROPERTY_salary = 3;
// Property array
/* lazy PropertyDescriptor */
private static PropertyDescriptor[] getPdescriptor() {
final PropertyDescriptor[] properties = new PropertyDescriptor[4];
try {
properties[PROPERTY_attributes] =
new PropertyDescriptor("attributes", com.github.protobufel.el.Employee.class,
"getAttributes", "setAttributes"); // NOI18N
properties[PROPERTY_keywords] =
new PropertyDescriptor("keywords", com.github.protobufel.el.Employee.class,
"getKeywords", "setKeywords"); // NOI18N
properties[PROPERTY_name] =
new PropertyDescriptor("name", com.github.protobufel.el.Employee.class, "getName",
"setName"); // NOI18N
properties[PROPERTY_salary] =
new PropertyDescriptor("salary", com.github.protobufel.el.Employee.class, "getSalary",
"setSalary"); // NOI18N
} catch (final IntrospectionException e) {
e.printStackTrace();
}// GEN-HEADEREND:Properties
// Here you can add code for customizing the properties array.
return properties;
}// GEN-LAST:Properties
// EventSet identifiers//GEN-FIRST:Events
// EventSet array
/* lazy EventSetDescriptor */
private static EventSetDescriptor[] getEdescriptor() {
final EventSetDescriptor[] eventSets = new EventSetDescriptor[0];// GEN-HEADEREND:Events
// Here you can add code for customizing the event sets array.
return eventSets;
}// GEN-LAST:Events
// Method identifiers//GEN-FIRST:Methods
private static final int METHOD_equals0 = 0;
private static final int METHOD_hashCode1 = 1;
private static final int METHOD_overloaded12 = 2;
private static final int METHOD_toString3 = 3;
// Method array
/* lazy MethodDescriptor */
private static MethodDescriptor[] getMdescriptor() {
final MethodDescriptor[] methods = new MethodDescriptor[4];
try {
methods[METHOD_equals0] =
new MethodDescriptor(com.github.protobufel.el.Employee.class.getMethod("equals",
new Class[] {java.lang.Object.class})); // NOI18N
methods[METHOD_equals0].setDisplayName("");
methods[METHOD_hashCode1] =
new MethodDescriptor(com.github.protobufel.el.Employee.class.getMethod("hashCode",
new Class[] {})); // NOI18N
methods[METHOD_hashCode1].setDisplayName("");
methods[METHOD_overloaded12] =
new MethodDescriptor(com.github.protobufel.el.Employee.class.getMethod("overloaded1",
new Class[] {java.lang.String.class, int.class})); // NOI18N
methods[METHOD_overloaded12].setDisplayName("");
methods[METHOD_toString3] =
new MethodDescriptor(com.github.protobufel.el.Employee.class.getMethod("toString",
new Class[] {})); // NOI18N
methods[METHOD_toString3].setDisplayName("");
} catch (final Exception e) {
}// GEN-HEADEREND:Methods
// Here you can add code for customizing the methods array.
return methods;
}// GEN-LAST:Methods
private static java.awt.Image iconColor16 = null;// GEN-BEGIN:IconsDef
private static java.awt.Image iconColor32 = null;
private static java.awt.Image iconMono16 = null;
private static java.awt.Image iconMono32 = null;// GEN-END:IconsDef
private static String iconNameC16 = null;// GEN-BEGIN:Icons
private static String iconNameC32 = null;
private static String iconNameM16 = null;
private static String iconNameM32 = null;// GEN-END:Icons
private static final int defaultPropertyIndex = -1;// GEN-BEGIN:Idx
private static final int defaultEventIndex = -1;// GEN-END:Idx
// GEN-FIRST:Superclass
// Here you can add code for customizing the Superclass BeanInfo.
// GEN-LAST:Superclass
/**
* Gets the bean's <code>BeanDescriptor</code>s.
*
* @return BeanDescriptor describing the editable properties of this bean. May return null if the
* information should be obtained by automatic analysis.
*/
@Override
public BeanDescriptor getBeanDescriptor() {
return getBdescriptor();
}
/**
* Gets the bean's <code>PropertyDescriptor</code>s.
*
* @return An array of PropertyDescriptors describing the editable properties supported by this
* bean. May return null if the information should be obtained by automatic analysis.
* <p>
* If a property is indexed, then its entry in the result array will belong to the
* IndexedPropertyDescriptor subclass of PropertyDescriptor. A client of
* getPropertyDescriptors can use "instanceof" to check if a given PropertyDescriptor is
* an IndexedPropertyDescriptor.
*/
@Override
public PropertyDescriptor[] getPropertyDescriptors() {
return getPdescriptor();
}
/**
* Gets the bean's <code>EventSetDescriptor</code>s.
*
* @return An array of EventSetDescriptors describing the kinds of events fired by this bean. May
* return null if the information should be obtained by automatic analysis.
*/
@Override
public EventSetDescriptor[] getEventSetDescriptors() {
return getEdescriptor();
}
/**
* Gets the bean's <code>MethodDescriptor</code>s.
*
* @return An array of MethodDescriptors describing the methods implemented by this bean. May
* return null if the information should be obtained by automatic analysis.
*/
@Override
public MethodDescriptor[] getMethodDescriptors() {
return getMdescriptor();
}
/**
* A bean may have a "default" property that is the property that will mostly commonly be
* initially chosen for update by human's who are customizing the bean.
*
* @return Index of default property in the PropertyDescriptor array returned by
* getPropertyDescriptors.
* <P>
* Returns -1 if there is no default property.
*/
@Override
public int getDefaultPropertyIndex() {
return defaultPropertyIndex;
}
/**
* A bean may have a "default" event that is the event that will mostly commonly be used by
* human's when using the bean.
*
* @return Index of default event in the EventSetDescriptor array returned by
* getEventSetDescriptors.
* <P>
* Returns -1 if there is no default event.
*/
@Override
public int getDefaultEventIndex() {
return defaultEventIndex;
}
/**
* This method returns an image object that can be used to represent the bean in toolboxes,
* toolbars, etc. Icon images will typically be GIFs, but may in future include other formats.
* <p>
* Beans aren't required to provide icons and may return null from this method.
* <p>
* There are four possible flavors of icons (16x16 color, 32x32 color, 16x16 mono, 32x32 mono). If
* a bean choses to only support a single icon we recommend supporting 16x16 color.
* <p>
* We recommend that icons have a "transparent" background so they can be rendered onto an
* existing background.
*
* @param iconKind The kind of icon requested. This should be one of the constant values
* ICON_COLOR_16x16, ICON_COLOR_32x32, ICON_MONO_16x16, or ICON_MONO_32x32.
* @return An image object representing the requested icon. May return null if no suitable icon is
* available.
*/
@Override
public java.awt.Image getIcon(final int iconKind) {
switch (iconKind) {
case ICON_COLOR_16x16:
if (iconNameC16 == null) {
return null;
} else {
if (iconColor16 == null) {
iconColor16 = loadImage(iconNameC16);
}
return iconColor16;
}
case ICON_COLOR_32x32:
if (iconNameC32 == null) {
return null;
} else {
if (iconColor32 == null) {
iconColor32 = loadImage(iconNameC32);
}
return iconColor32;
}
case ICON_MONO_16x16:
if (iconNameM16 == null) {
return null;
} else {
if (iconMono16 == null) {
iconMono16 = loadImage(iconNameM16);
}
return iconMono16;
}
case ICON_MONO_32x32:
if (iconNameM32 == null) {
return null;
} else {
if (iconMono32 == null) {
iconMono32 = loadImage(iconNameM32);
}
return iconMono32;
}
default:
return null;
}
}
}