jivebeaninfo.java
来自「Jive是基于JSP/JAVA技术构架的一个大型BBS论坛系统,这是Jive论坛」· Java 代码 · 共 145 行
JAVA
145 行
/** * $RCSfile: JiveBeanInfo.java,v $ * $Revision: 1.1.1.1 $ * $Date: 2002/02/27 16:59:27 $ * * Copyright (C) 1999-2001 CoolServlets, Inc. All rights reserved. * * This software is the proprietary information of CoolServlets, Inc. * Use is subject to license terms. */package com.jivesoftware.forum.util;import java.beans.*;import java.util.*;import com.jivesoftware.forum.JiveGlobals;/** * An abstract BeanInfo implementation that automatically constructs * PropertyDescriptors and handles i18n through ResourceBundles. */public abstract class JiveBeanInfo implements BeanInfo { private ResourceBundle bundle; public JiveBeanInfo() { //Get the locale that should be used, then load the resource bundle. Locale currentLocale = JiveGlobals.getLocale(); try { bundle = ResourceBundle.getBundle("bean_" + getName(), currentLocale); } catch (Exception e) { // Ignore any exception when trying to load bundle. } } /** * Returns the names of the properties of the bean that should be exposed. * * @return the names of the properties that should be exposed. */ public abstract String [] getPropertyNames(); /** * Returns the bean Class. * * @return the Class of the JavaBean that the BeanInfo is for. */ public abstract Class getBeanClass(); /** * Returns the name of the class that the bean info applies to (which * corresponds to the resource bundle that will be loaded). For example, * for the class <tt>com.foo.ExampleClass</tt>, the name would be * <tt>ExampleClass</tt>. * * @return the name of the JavaBean that the BeanInfo is for. */ public abstract String getName(); //FROM THE BEANINFO INTERFACE// public BeanDescriptor getBeanDescriptor() { BeanDescriptor descriptor = new BeanDescriptor(getBeanClass()); try { // Attempt to load the displayName and shortDescription explicitly. String displayName = bundle.getString("displayName"); if (displayName != null) { descriptor.setDisplayName(displayName); } String shortDescription = bundle.getString("shortDescription"); if (shortDescription != null) { descriptor.setShortDescription(shortDescription); } // Add any other properties that are specified. Enumeration enum = bundle.getKeys(); while (enum.hasMoreElements()) { String key = (String)enum.nextElement(); String value = bundle.getString(key); if (value != null) { descriptor.setValue(key, value); } } } catch (Exception e) { // Ignore any exceptions. We may get some if we try to load a // a property that doesn't appear in the resource bundle. } return descriptor; } public PropertyDescriptor[] getPropertyDescriptors() { Class beanClass = getBeanClass(); String [] properties = getPropertyNames(); PropertyDescriptor [] descriptors = new PropertyDescriptor[properties.length]; try { // For each property, create a property descriptor and set the // name and description using the localized data. for (int i=0; i<descriptors.length; i++) { PropertyDescriptor newDescriptor = new PropertyDescriptor(properties[i], beanClass); if (bundle != null) { newDescriptor.setDisplayName( bundle.getString(properties[i] + ".displayName") ); newDescriptor.setShortDescription( bundle.getString(properties[i] + ".shortDescription") ); } descriptors[i] = newDescriptor; } return descriptors; } catch (IntrospectionException ie) { ie.printStackTrace(); throw new Error(ie.toString()); } } public int getDefaultPropertyIndex() { return -1; } public EventSetDescriptor[] getEventSetDescriptors() { return null; } public int getDefaultEventIndex() { return -1; } public MethodDescriptor[] getMethodDescriptors() { return null; } public BeanInfo[] getAdditionalBeanInfo() { return null; } public java.awt.Image getIcon(int iconKind) { return null; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?