Community
Participate
Working Groups
Created attachment 204319 [details] EDT properties Drop any Dojo widget on a RUIHandler. Select the widget in the Outline view and click the Properties tab. There are very few properties available. Screen shots comparing the properties of a Dojo Button in EDT and RBD are attached.
Created attachment 204320 [details] RBD properties
Created attachment 204480 [details] DojoButton events
Created attachment 204481 [details] Events RBD
When processing the widgets, the following line is throwing an exception: WidgetDescriptorFactory private void processWidgetExcludedFields( Annotation widgetAnnotation, WidgetDescriptor widgetDescriptor ) EnumerationEntry propertyFilterType = (EnumerationEntry)widgetAnnotation.getValue( PROPERTY_FILTER_TYPE ); Exception: java.lang.ClassCastException: eglx.ui.rui.FilterKind cannot be cast to org.eclipse.edt.mof.egl.EnumerationEntry at org.eclipse.edt.ide.rui.visualeditor.internal.widget.WidgetDescriptorFactory.processWidgetExcludedFields(WidgetDescriptorFactory.java:481) at org.eclipse.edt.ide.rui.visualeditor.internal.widget.WidgetDescriptorFactory.processWidget(WidgetDescriptorFactory.java:210) at org.eclipse.edt.ide.rui.visualeditor.internal.widget.WidgetDescriptorFactory.createWidgetDescriptor(WidgetDescriptorFactory.java:132) Paul is investigating this issue to see why the types are different than expected.
The Deserializer (XMLDeserializer), when resolving references to Enumerations (such as for annotation values), first attempts to resolve to the Java ENUM for the package/name associated with the type for the annotation field. If it finds a Java entity, this is used. So, in this case you get the actual Java enumeration value. If the resolution to the java ENUM fails, the code then uses the mof model Enumeration and EnumerationEntry. The problem is that the enumerations defined in the eglx.ui.rui package have been generated (via the Java generator) and exist as Java objects in the java.runtime project. Because these exist, and (for some reason) the java runtime project is in the classpath, the Deserializer is able to find these when the widget(s) are deserialized. I have deleted the 3 Java enums that were generated for eglx.ui.rui. We may need to identify all enumerations that are not needed as java runtime objects and remove those from the java runtime.
I'm on the 201110072101 build, and the properties are still missing.
Created attachment 204789 [details] fix
I have fixed the VE part, it should show the missing properties and events now. The problem is caused that VE should not only read the widget's parents fields but also read the widget's ancestors fields.
*** Bug 359403 has been marked as a duplicate of this bug. ***
Forest, Please set the defect status as resolved if it has been resolved. Thanks.
Hi, Paul, I have no right to change the bug status, please help to change it to fixed.
fixed
Verified in 201110100901 build.