/*
* Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package @(BeanPackageName);
import java.beans.BeanDescriptor;
import java.beans.PropertyDescriptor;
import java.awt.Image;
import sun.swing.BeanInfoUtils;
/**
* Descriptive information about the @(BeanClassName) class for Java
* Beans application builders. This BeanInfo class provides descriptions
* of each property, of the bean itself, it indicates which
* @(BeanClassName) properties are bound, and it provides other
* information and icons useful to builders.
*
* @author Auto-Generated Source Code
*/
public class @(BeanClassName)BeanInfo extends javax.swing.SwingBeanInfoBase {
private static final Class<?> class@(BeanClassName) = @(BeanClassObject);
/**
* @return a @(BeanClassName) BeanDescriptor
*/
public BeanDescriptor getBeanDescriptor() {
return BeanInfoUtils.createBeanDescriptor(class@(BeanClassName),
new Object[] {
BeanInfoUtils.PREFERRED, Boolean.TRUE,
@(ClassDescriptors)
BeanInfoUtils.SHORTDESCRIPTION, "@(BeanDescription)"
});
}
/**
* Create a @(BeanClassName) PropertyDescriptor. This is just an internal
* convenience method that allows one to leave the @(BeanClassName).class
* argument out of the createPropertyDescriptor() class in the
* getPropertyDescriptors() method below.
*
* @param name the name of the property
* @param args an array java.beans.PropertyDescriptor property names and values
* @return a @(BeanClassName) PropertyDescriptor.
* @see BeanInfoUtils#createPropertyDescriptor
*/
private PropertyDescriptor createPropertyDescriptor(String name, Object[] args) {
return BeanInfoUtils.createPropertyDescriptor(class@(BeanClassName), name, args);
}
/**
* This method returns a list of bean PropertyDescriptors, one for each public
* property in @(BeanClassName). The first property is the "default" property.
*
* @return a complete list of bean PropertyDescriptors for @(BeanClassName)
* @see SwingBeanInfo
* @see java.beans.BeanInfo#getDefaultPropertyIndex
*/
public PropertyDescriptor[] getPropertyDescriptors() {
@(EnumVariables)
return new PropertyDescriptor[] {
@(BeanPropertyDescriptors)
};
}
/**
* @return an icon of the specified kind for @(BeanClassName)
*/
public Image getIcon(final int kind) {
Image i;
switch (kind){
case ICON_COLOR_32x32:
i = loadStandardImage("beaninfo/images/@(BeanClassName)Color32.gif");
return ((i == null) ? loadStandardImage("beaninfo/images/JComponentColor32.gif") : i);
case ICON_COLOR_16x16:
i = loadStandardImage("beaninfo/images/@(BeanClassName)Color16.gif");
return ((i == null) ? loadStandardImage("beaninfo/images/JComponentColor16.gif") : i);
case ICON_MONO_32x32:
i = loadStandardImage("beaninfo/images/@(BeanClassName)Mono32.gif");
return ((i == null) ? loadStandardImage("beaninfo/images/JComponentMono32.gif") : i);
case ICON_MONO_16x16:
i = loadStandardImage("beaninfo/images/@(BeanClassName)Mono16.gif");
return ((i == null) ? loadStandardImage("beaninfo/images/JComponentMono16.gif") : i);
default:
return super.getIcon(kind);
}
}
/**
* This is a utility method to help in loading standard icon images.
*
* @param resourceName A pathname relative to the directory holding the
* class file of the current class
* @return an image object. May be null if the load failed.
* @see java.beans.SimpleBeanInfo#loadImage(String)
*/
private Image loadStandardImage(final String resourceName) {
return java.security.AccessController.doPrivileged(
(java.security.PrivilegedAction<Image>) () -> loadImage(resourceName));
}
}