Using new cache'd feature attribute value - fix after merge problems
diff --git a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java index 59fc5de..b218e5d 100644 --- a/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java +++ b/plugins/org.eclipse.jem.beaninfo/beaninfo/org/eclipse/jem/internal/beaninfo/impl/BeanDecoratorImpl.java
@@ -11,7 +11,7 @@ *******************************************************************************/ /* * $RCSfile: BeanDecoratorImpl.java,v $ - * $Revision: 1.7 $ $Date: 2004/03/09 00:07:53 $ + * $Revision: 1.8 $ $Date: 2004/03/09 19:45:57 $ */ @@ -1002,34 +1002,31 @@ if(styleDetails == null){ styleDetails = new HashMap(); try{ - Iterator featureAttributeValues = getAttributes().iterator(); - while(featureAttributeValues.hasNext()){ - FeatureAttributeValue value = (FeatureAttributeValue) featureAttributeValues.next(); - if(value.getName().equals("SWEET_STYLEBITS")) { // $NON-NLS-1$ - IArrayBeanProxy outerArray = (IArrayBeanProxy) value.getValueProxy(); - for (int i = 0; i < outerArray.getLength(); i++) { - IArrayBeanProxy innerArray = (IArrayBeanProxy) outerArray.get(i); - // The first element is a String for the internal canonnical name - String propertyName = ((IStringBeanProxy)innerArray.get(0)).stringValue(); - // The second element is the user visible name - String displayName = ((IStringBeanProxy)innerArray.get(1)).stringValue(); - // The third element is a Boolean value for whether the property is expert or not - boolean expert = ((IBooleanBeanProxy)innerArray.get(2)).booleanValue(); - // The next is a three element array of name, initString, and actual value * n for the number of allowble values - // Iterate over it to extract the names and strings and turn these into two separate String arrays - IArrayBeanProxy triplicateArray = (IArrayBeanProxy)innerArray.get(3); - int numberOfValues = triplicateArray.getLength()/3; - String[] names = new String[numberOfValues]; - String[] initStrings = new String[numberOfValues]; - Integer[] values = new Integer[numberOfValues]; - for (int j = 0; j < triplicateArray.getLength(); j = j+3) { - int index = j/3; - names[index] = ((IStringBeanProxy)triplicateArray.get(j)).stringValue(); - initStrings[index] = ((IStringBeanProxy)triplicateArray.get(j+1)).stringValue(); - values[index] = new Integer(((IIntegerBeanProxy)triplicateArray.get(j+2)).intValue()); - } - styleDetails.put(propertyName, new SweetStyleBits(propertyName,displayName,expert,names,initStrings,values)); - } + FeatureAttributeValue value = (FeatureAttributeValue) getAttributes().get("SWEET_STYLEBITS"); + if(value != null && value.isSetValueJava() && value.isSetValueProxy()){ + IArrayBeanProxy outerArray = (IArrayBeanProxy) value.getValueProxy(); + for (int i = 0; i < outerArray.getLength(); i++) { + IArrayBeanProxy innerArray = (IArrayBeanProxy) outerArray.get(i); + // The first element is a String for the internal canonnical name + String propertyName = ((IStringBeanProxy)innerArray.get(0)).stringValue(); + // The second element is the user visible name + String displayName = ((IStringBeanProxy)innerArray.get(1)).stringValue(); + // The third element is a Boolean value for whether the property is expert or not + boolean expert = ((IBooleanBeanProxy)innerArray.get(2)).booleanValue(); + // The next is a three element array of name, initString, and actual value * n for the number of allowble values + // Iterate over it to extract the names and strings and turn these into two separate String arrays + IArrayBeanProxy triplicateArray = (IArrayBeanProxy)innerArray.get(3); + int numberOfValues = triplicateArray.getLength()/3; + String[] names = new String[numberOfValues]; + String[] initStrings = new String[numberOfValues]; + Integer[] values = new Integer[numberOfValues]; + for (int j = 0; j < triplicateArray.getLength(); j = j+3) { + int index = j/3; + names[index] = ((IStringBeanProxy)triplicateArray.get(j)).stringValue(); + initStrings[index] = ((IStringBeanProxy)triplicateArray.get(j+1)).stringValue(); + values[index] = new Integer(((IIntegerBeanProxy)triplicateArray.get(j+2)).intValue()); + } + styleDetails.put(propertyName, new SweetStyleBits(propertyName,displayName,expert,names,initStrings,values)); } } } catch (ThrowableProxy exc) {