You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by to...@apache.org on 2007/07/19 04:27:43 UTC
svn commit: r557462 - in /harmony/enhanced/classlib/trunk/modules/beans:
META-INF/MANIFEST.MF src/main/java/java/beans/StandardBeanInfo.java
src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java
Author: tonywu
Date: Wed Jul 18 19:27:42 2007
New Revision: 557462
URL: http://svn.apache.org/viewvc?view=rev&rev=557462
Log:
new feature for getIcon
Modified:
harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF
harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/StandardBeanInfo.java
harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java
Modified: harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF?view=diff&rev=557462&r1=557461&r2=557462
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/META-INF/MANIFEST.MF Wed Jul 18 19:27:42 2007
@@ -16,6 +16,7 @@
java.awt.dnd,
java.awt.event;resolution:=optional,
java.awt.font,
+ java.awt.image,
java.io,
java.lang,
java.lang.reflect,
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/StandardBeanInfo.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/StandardBeanInfo.java?view=diff&rev=557462&r1=557461&r2=557462
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/StandardBeanInfo.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/main/java/java/beans/StandardBeanInfo.java Wed Jul 18 19:27:42 2007
@@ -17,6 +17,9 @@
package java.beans;
+import static java.beans.Introspector.decapitalize;
+
+import java.awt.Image;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
@@ -28,8 +31,6 @@
import java.util.Iterator;
import java.util.TooManyListenersException;
-import static java.beans.Introspector.decapitalize;
-
class StandardBeanInfo extends SimpleBeanInfo {
@@ -71,15 +72,12 @@
private static PropertyComparator comparator = new PropertyComparator();
- StandardBeanInfo(Class beanClass) {
- super();
- this.beanClass = beanClass;
-
- }
+ private Image[] icon = new Image[4];
StandardBeanInfo(Class beanClass,
BeanInfo explicitBeanInfo) throws IntrospectionException {
- this(beanClass);
+ assert (beanClass != null);
+ this.beanClass = beanClass;
/*--------------------------------------------------------------------------------------
* There are 3 aspects of BeanInfo that must be supplied:
* a) PropertyDescriptors
@@ -105,6 +103,9 @@
this.defaultEventIndex = explicitBeanInfo.getDefaultEventIndex();
this.defaultPropertyIndex = explicitBeanInfo.getDefaultPropertyIndex();
additionalBeanInfo = explicitBeanInfo.getAdditionalBeanInfo();
+ for (int i = 0; i < 4; i++) {
+ icon[i] = explicitBeanInfo.getIcon(i + 1);
+ }
if (events != null)
explicitEvents = true;
@@ -166,6 +167,9 @@
return this.defaultPropertyIndex;
}
+ public Image getIcon(int iconKind) {
+ return icon[iconKind - 1];
+ }
void mergeBeanInfo(BeanInfo superBeanInfo, boolean force) throws IntrospectionException{
if(force){
Modified: harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java?view=diff&rev=557462&r1=557461&r2=557462
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/beans/src/test/java/org/apache/harmony/beans/tests/java/beans/IntrospectorTest.java Wed Jul 18 19:27:42 2007
@@ -17,6 +17,8 @@
package org.apache.harmony.beans.tests.java.beans;
+import java.awt.Image;
+import java.awt.image.BufferedImage;
import java.beans.BeanDescriptor;
import java.beans.BeanInfo;
import java.beans.EventSetDescriptor;
@@ -2050,5 +2052,118 @@
public void setName(int i) {
a = i;
}
+ }
+ static class MockBaseClassForPorperties {
+ int a = 0;
+
+ int b = 1;
+ }
+
+ static class MockSubClassForPorperties extends MockBaseClassForPorperties {
+ int a = 2;
+
+ int b = 3;
+
+ int c = 3;
+
+ public int getName() {
+ return a;
+ }
+
+ public void setName(int i) {
+ a = i;
+ }
+ }
+
+ public void testGetIcon() throws IntrospectionException {
+ Class<MockSubClassForPorperties> beanClass = MockSubClassForPorperties.class;
+ BeanInfo info = Introspector.getBeanInfo(beanClass);
+ assertNotNull(info.getIcon(BeanInfo.ICON_COLOR_16x16));
+ }
+
+ public static class MockBaseClassForPorpertiesBeanInfo extends
+ SimpleBeanInfo {
+
+ @Override
+ public MethodDescriptor[] getMethodDescriptors() {
+ MethodDescriptor md = null;
+ try {
+ Class<MockSubClassForPorperties> clz = MockSubClassForPorperties.class;
+ Method m = clz.getMethod("getName", new Class[] {});
+ md = new MethodDescriptor(m);
+ } catch (Exception e) {
+
+ }
+ return new MethodDescriptor[] { md };
+ }
+
+ @Override
+ public PropertyDescriptor[] getPropertyDescriptors() {
+ PropertyDescriptor[] pds = new PropertyDescriptor[2];
+ Class<MockSubClassForPorperties> clazz = MockSubClassForPorperties.class;
+ try {
+ Method getter = clazz.getMethod("getName");
+ Method setter = clazz.getMethod("setName", Integer.TYPE);
+ pds[0] = new PropertyDescriptor("a", getter, setter);
+ pds[0].setConstrained(true);
+ pds[0].setBound(true);
+ pds[0].setExpert(true);
+ pds[0].setHidden(true);
+ pds[1] = new PropertyDescriptor("b", getter, setter);
+ } catch (IntrospectionException e) {
+ e.printStackTrace();
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+
+ return pds;
+ }
+
+ public Image getIcon(int iconKind) {
+ return null;
+ }
+ }
+
+ public static class MockSubClassForPorpertiesBeanInfo extends
+ SimpleBeanInfo {
+
+ @Override
+ public MethodDescriptor[] getMethodDescriptors() {
+ MethodDescriptor md = null;
+ try {
+ Class<MockSubClassForPorperties> clz = MockSubClassForPorperties.class;
+ Method m = clz.getMethod("getName", new Class[] {});
+ md = new MethodDescriptor(m);
+ } catch (Exception e) {
+
+ }
+ return new MethodDescriptor[] { md };
+ }
+
+ @Override
+ public PropertyDescriptor[] getPropertyDescriptors() {
+ PropertyDescriptor[] pds = new PropertyDescriptor[2];
+ Class<MockSubClassForPorperties> clazz = MockSubClassForPorperties.class;
+ try {
+ Method getter = clazz.getMethod("getName");
+ Method setter = clazz.getMethod("setName", Integer.TYPE);
+ pds[0] = new PropertyDescriptor("a", getter, setter);
+ pds[1] = new PropertyDescriptor("b", getter, setter);
+ } catch (IntrospectionException e) {
+ e.printStackTrace();
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ }
+ return pds;
+ }
+
+ public Image getIcon(int iconKind) {
+ return new BufferedImage(16, 16, 1);
+ }
+
}
}