001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.geronimo.connector.deployment.dconfigbean; 018 019 import java.beans.*; 020 import java.awt.*; 021 022 /** 023 * @version $Revision: 1.0$ 024 */ 025 public class ConnectionDefinitionInstanceBeanInfo implements BeanInfo { 026 /** 027 * A bean may have a "default" event that is the event that will 028 * mostly commonly be used by humans when using the bean. 029 * 030 * @return Index of default event in the EventSetDescriptor array 031 * returned by getEventSetDescriptors. 032 * <P> Returns -1 if there is no default event. 033 */ 034 public int getDefaultEventIndex() { 035 return -1; 036 } 037 038 /** 039 * A bean may have a "default" property that is the property that will 040 * mostly commonly be initially chosen for update by human's who are 041 * customizing the bean. 042 * 043 * @return Index of default property in the PropertyDescriptor array 044 * returned by getPropertyDescriptors. 045 * <P> Returns -1 if there is no default property. 046 */ 047 public int getDefaultPropertyIndex() { 048 return -1; 049 } 050 051 /** 052 * This method returns an image object that can be used to 053 * represent the bean in toolboxes, toolbars, etc. Icon images 054 * will typically be GIFs, but may in future include other formats. 055 * <p/> 056 * Beans aren't required to provide icons and may return null from 057 * this method. 058 * <p/> 059 * There are four possible flavors of icons (16x16 color, 060 * 32x32 color, 16x16 mono, 32x32 mono). If a bean choses to only 061 * support a single icon we recommend supporting 16x16 color. 062 * <p/> 063 * We recommend that icons have a "transparent" background 064 * so they can be rendered onto an existing background. 065 * 066 * @param iconKind The kind of icon requested. This should be 067 * one of the constant values ICON_COLOR_16x16, ICON_COLOR_32x32, 068 * ICON_MONO_16x16, or ICON_MONO_32x32. 069 * @return An image object representing the requested icon. May 070 * return null if no suitable icon is available. 071 */ 072 public Image getIcon(int iconKind) { 073 return null; 074 } 075 076 /** 077 * Gets the beans <code>BeanDescriptor</code>. 078 * 079 * @return A BeanDescriptor providing overall information about 080 * the bean, such as its displayName, its customizer, etc. May 081 * return null if the information should be obtained by automatic 082 * analysis. 083 */ 084 public BeanDescriptor getBeanDescriptor() { 085 BeanDescriptor bd = new BeanDescriptor(ConnectionDefinitionInstance.class); 086 bd.setDisplayName("Geronimo Connection Configurations"); 087 bd.setShortDescription("The Resource Adapter defines what type of connections may be made (e.g. to a database, or to JMS). These entries configure a specific connection instance (to a specific database or JMS server). This is done primarily by setting appropriate config properties."); 088 return bd; 089 } 090 091 /** 092 * This method allows a BeanInfo object to return an arbitrary collection 093 * of other BeanInfo objects that provide additional information on the 094 * current bean. 095 * <P> 096 * If there are conflicts or overlaps between the information provided 097 * by different BeanInfo objects, then the current BeanInfo takes precedence 098 * over the getAdditionalBeanInfo objects, and later elements in the array 099 * take precedence over earlier ones. 100 * 101 * @return an array of BeanInfo objects. May return null. 102 */ 103 public BeanInfo[] getAdditionalBeanInfo() { 104 return null; 105 } 106 107 /** 108 * Gets the beans <code>EventSetDescriptor</code>s. 109 * 110 * @return An array of EventSetDescriptors describing the kinds of 111 * events fired by this bean. May return null if the information 112 * should be obtained by automatic analysis. 113 */ 114 public EventSetDescriptor[] getEventSetDescriptors() { 115 return null; 116 } 117 118 /** 119 * Gets the beans <code>MethodDescriptor</code>s. 120 * 121 * @return An array of MethodDescriptors describing the externally 122 * visible methods supported by this bean. May return null if 123 * the information should be obtained by automatic analysis. 124 */ 125 public MethodDescriptor[] getMethodDescriptors() { 126 return new MethodDescriptor[0]; 127 } 128 129 /** 130 * Gets the beans <code>PropertyDescriptor</code>s. 131 * 132 * @return An array of PropertyDescriptors describing the editable 133 * properties supported by this bean. May return null if the 134 * information should be obtained by automatic analysis. 135 * <p/> 136 * If a property is indexed, then its entry in the result array will 137 * belong to the IndexedPropertyDescriptor subclass of PropertyDescriptor. 138 * A client of getPropertyDescriptors can use "instanceof" to check 139 * if a given PropertyDescriptor is an IndexedPropertyDescriptor. 140 */ 141 public PropertyDescriptor[] getPropertyDescriptors() { 142 try { 143 PropertyDescriptor name = new PropertyDescriptor("name", ConnectionDefinitionInstance.class); 144 name.setDisplayName("Connection Name"); 145 name.setShortDescription("A name that identifies this connection. It will be used by application resource references to map to this connection."); 146 PropertyDescriptor jndiName = new PropertyDescriptor("globalJNDIName", ConnectionDefinitionInstance.class); 147 jndiName.setDisplayName("Global JNDI Name"); 148 jndiName.setShortDescription("Where to register this connection in the global JNDI tree. This is only necessary for non-J2EE application clients; it is not used for nornal resource references."); 149 PropertyDescriptor configs = new PropertyDescriptor("configProperty", ConnectionDefinitionInstance.class, "getConfigProperty", null); 150 configs.setDisplayName("Configuration Properties"); 151 configs.setShortDescription("The configuration properties that point this connection instance to a particular destination (database, JMS server, etc.)."); 152 return new PropertyDescriptor[]{ 153 name, jndiName, configs 154 }; 155 } catch (IntrospectionException e) { 156 throw new RuntimeException("Unable to configure bean properties", e); 157 } 158 } 159 }