There are many things that make me like GWT Designer. Visual inheritance is on the top of the list. Now I have a problem. I want to pack some of the base composite into a base module and jar them to be used by other module to extend them from. I run into Designer exceptions/errors when the widgets in base composites get exposed. But it seems to be erratic. I can get it 80% of the time. In the following example, I get the error when the menuBar is exposed. Two composites need to be in different modules, the the sub module extends the base module. The sub module runs fine in the host mode. I have GWT Designer 1.7.2. Thanks.
Colin
Base Composite:
public class TestBase extends Composite {
private MenuBar menuBar;
private VerticalPanel verticalPanel_1;
public TestBase() {
{
final VerticalPanel verticalPanel = new VerticalPanel();
initWidget(verticalPanel);
verticalPanel.setWidth("100%");
verticalPanel_1 = new VerticalPanel();
verticalPanel.add(verticalPanel_1);
verticalPanel_1.setStyleName("bps_bordered_panel");
verticalPanel_1.setWidth("100%");
{
menuBar = new MenuBar();
verticalPanel_1.add(menuBar);
final MenuBar menuBar_1 = new MenuBar(true);
menuBar_1.addItem("Menu Item", (Command)null);
menuBar.addItem("Menu Item", menuBar_1);
}
}
}
public VerticalPanel getVerticalPanel_1() {
return verticalPanel_1;
}
public MenuBar getMenuBar() {
return menuBar;
}
}
and the sub composite:
package com.bps.iaproduct.app.client;
import com.bps.baseapp.client.TestBase;
import com.google.gwt.user.client.ui.Composite;
public class ProductComp extends TestBase {
public ProductComp() {
super();
}
}
and the error message from the log:
eclipse.buildId=M20070212-1330
java.version=1.6.0-oem
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86
Error
Fri Jun 08 07:24:05 EDT 2007
Designer internal error [6.3.1.20070607150148]: com.swtdesigner.properties.PropertyException: org.apache.commons.lang.exception.NestableError: java.lang.ClassCastException: org.eclipse.jdt.core.dom.TypeDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation
org.apache.commons.lang.exception.NestableError: com.swtdesigner.properties.PropertyException: org.apache.commons.lang.exception.NestableError: java.lang.ClassCastException: org.eclipse.jdt.core.dom.TypeDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation
at com.swtdesigner.model.swing.properties.custom.DesignTimeHelper.execute(DesignTimeHelper.java:56)
at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5567)
at com.swtdesigner.model.JavaInfo.notifyPropertyChanged(JavaInfo.java:5549)
at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.handleRootNodeSelected(DesignerEditorPropertyComposite.java:662)
at com.swtdesigner.gef.common.property.DesignerEditorPropertyComposite.updatePropertyComposite(DesignerEditorPropertyComposite.java:865)
at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1153)
at com.swtdesigner.gef.DesignerEditor$21.run(DesignerEditor.java:1565)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:123)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3325)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2971)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1930)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1894)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:422)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:95)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:336)
at org.eclipse.core.launcher.Main.basicRun(Main.java:280)
at org.eclipse.core.launcher.Main.run(Main.java:977)
at org.eclipse.core.launcher.Main.main(Main.java:952)
Caused by: com.swtdesigner.properties.PropertyException: org.apache.commons.lang.exception.NestableError: java.lang.ClassCastException: org.eclipse.jdt.core.dom.TypeDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation
at com.swtdesigner.gwt.model.widgets.panel.ThisCompositeInfo.createGUIComponent(ThisCompositeInfo.java:182)
at com.swtdesigner.model.JavaInfo$19.execute(JavaInfo.java:5572)
at com.swtdesigner.model.swing.properties.custom.DesignTimeHelper.execute(DesignTimeHelper.java:54)
... 28 more
Caused by: org.apache.commons.lang.exception.NestableError: java.lang.ClassCastException: org.eclipse.jdt.core.dom.TypeDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation
at com.swtdesigner.gwt.model.widgets.menu.MenuInfo$1.createInstance(MenuInfo.java:69)
at com.swtdesigner.gwt.model.widgets.menu.MenuObjectInfo.createWidget(MenuObjectInfo.java:60)
at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.createChildrenWidgets(AbstractContainerInfo.java:194)
at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.createWidget(AbstractContainerInfo.java:175)
at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.createChildrenWidgets(AbstractContainerInfo.java:194)
at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.createWidget(AbstractContainerInfo.java:175)
at com.swtdesigner.gwt.model.widgets.panel.ThisCompositeInfo.createWidget(ThisCompositeInfo.java:187)
at com.swtdesigner.gwt.model.widgets.panel.ThisCompositeInfo.createGUIComponent(ThisCompositeInfo.java:179)
... 30 more
Caused by: java.lang.ClassCastException: org.eclipse.jdt.core.dom.TypeDeclaration cannot be cast to org.eclipse.jdt.core.dom.ClassInstanceCreation
at com.swtdesigner.gwt.model.widgets.menu.MenuInfo.createMenu(MenuInfo.java:272)
at com.swtdesigner.gwt.model.widgets.menu.MenuInfo.access$1(MenuInfo.java:270)
at com.swtdesigner.gwt.model.widgets.menu.MenuInfo$1.createInstance(MenuInfo.java:61)
... 37 more