All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.l2fprod.common.beans.BaseBeanInfo Maven / Gradle / Ivy

Go to download

Orbit, a versatile image analysis software for biological image-based quantification

There is a newer version: 3.15
Show newest version
/**
 * $ $ License.
 *
 * Copyright $ L2FProd.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.l2fprod.common.beans;

import java.awt.Image;
import java.beans.BeanDescriptor;
import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.beans.SimpleBeanInfo;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.MissingResourceException;

import com.l2fprod.common.util.ResourceManager;

/**
 * A convenient class to build beaninfos by adding and removing
 * properties. 
*/ public class BaseBeanInfo extends SimpleBeanInfo { private Class type; private BeanDescriptor beanDescriptor; private List properties = new ArrayList(0); public BaseBeanInfo(Class type) { this.type = type; } public final Class getType() { return type; } public ResourceManager getResources() { return ResourceManager.get(getType()); } public BeanDescriptor getBeanDescriptor() { if (beanDescriptor == null) { beanDescriptor = new DefaultBeanDescriptor(this); } return beanDescriptor; } public PropertyDescriptor[] getPropertyDescriptors() { return (PropertyDescriptor[])properties.toArray(new PropertyDescriptor[0]); } public int getPropertyDescriptorCount() { return properties.size(); } public PropertyDescriptor getPropertyDescriptor(int index) { return (PropertyDescriptor)properties.get(index); } protected PropertyDescriptor addPropertyDescriptor(PropertyDescriptor property) { properties.add(property); return property; } public ExtendedPropertyDescriptor addProperty(String propertyName) { ExtendedPropertyDescriptor descriptor; try { if (propertyName == null || propertyName.trim().length() == 0) { throw new IntrospectionException("bad property name"); } descriptor = ExtendedPropertyDescriptor .newPropertyDescriptor(propertyName, getType()); try { descriptor.setDisplayName(getResources().getString(propertyName)); } catch (MissingResourceException e) { // ignore, the resource may not be provided } try { descriptor.setShortDescription( getResources().getString( propertyName + ".shortDescription")); } catch (MissingResourceException e) { // ignore, the resource may not be provided } addPropertyDescriptor(descriptor); return descriptor; } catch (IntrospectionException e) { throw new RuntimeException(e); } } /** * Removes the first occurrence of the property named propertyName * @param propertyName * @return the removed PropertyDescriptor or null if not found. */ public PropertyDescriptor removeProperty(String propertyName) { if (propertyName == null) { throw new IllegalArgumentException("Property name can not be null"); } for (Iterator iter = properties.iterator(); iter.hasNext();) { PropertyDescriptor property = (PropertyDescriptor)iter.next(); if (propertyName.equals(property.getName())) { // remove the property from the list iter.remove(); return property; } } return null; } /** * Get the icon for displaying this bean. * * @param kind Kind of icon. * @return Image for bean, or null if none. */ public Image getIcon(int kind) { return null; } /** * Return a text describing the object. * * @param value an Object value * @return a text describing the object. */ public String getText(Object value) { return value.toString(); } /** * Return a text describing briefly the object. The text will be used * whereever a explanation is needed to give to the user * * @param value an Object value * @return a String value */ public String getDescription(Object value) { return getText(value); } /** * Return a text describing the object. The text will be displayed in a * tooltip. * * @param value an Object value * @return a String value */ public String getToolTipText(Object value) { return getText(value); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy