Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 312895

Summary: Riena(2.0.0.M7) & Formtoolkit issues
Product: [RT] Riena Reporter: Ngwa Ambe Elvis <ngwaambe>
Component: UIAssignee: Project Inbox <riena.ui-inbox>
Status: RESOLVED WORKSFORME QA Contact:
Severity: normal    
Priority: P3 CC: elias
Version: 2.0.0   
Target Milestone: 2.0.0.RC2   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
Form Example Screenshot
none
View with Forms
none
Controller with Forms none

Description Ngwa Ambe Elvis CLA 2010-05-14 08:01:01 EDT
In trying to use formtoolkit in my moduleviews I get into the following problematic.
Example code with riena System property riena.lnf.update.view set to true. Problem only occurs when the system
property riena.lnf.update.view is set to true.

protected void basicCreatePartControl(Composite parent) {
		toolkit = new FormToolkit(parent.getDisplay());
		toolkit.adapt(parent);
		form = toolkit.createForm(parent);
}

stacktrace:
Fri May 14 13:57:22 CEST 2010 ERROR [main] org.eclipse.riena.ui.swt.lnf.LnFUpdater Cannot get the value of the property "menuManager" of the class "org.eclipse.ui.internal.forms.widgets.TitleRegion".
org.eclipse.riena.core.util.InvocationTargetFailure: Calling #getMenuManager on TitleRegion {} failed.
	at org.eclipse.riena.core.util.ReflectionUtils.invoke(ReflectionUtils.java:315)
	at org.eclipse.riena.core.util.ReflectionUtils.invokeHidden(ReflectionUtils.java:210)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.getPropertyValue(LnFUpdater.java:619)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.getDefaultPropertyValue(LnFUpdater.java:548)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.hasNoDefaultValue(LnFUpdater.java:447)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.updateUIControl(LnFUpdater.java:288)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.updateUIControlsRecursive(LnFUpdater.java:150)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.updateUIControlsRecursive(LnFUpdater.java:153)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.updateUIControlsRecursive(LnFUpdater.java:153)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.updateUIControlsRecursive(LnFUpdater.java:153)
	at org.eclipse.riena.ui.swt.lnf.LnFUpdater.updateUIControls(LnFUpdater.java:115)
	at org.eclipse.riena.navigation.ui.swt.views.SubModuleView.bind(SubModuleView.java:144)
	at org.eclipse.riena.navigation.ui.swt.views.SubModuleView.doBinding(SubModuleView.java:499)
	at org.eclipse.riena.navigation.ui.swt.views.SubModuleView.createPartControl(SubModuleView.java:173)
	at org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:367)
	at org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:226)
	at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
	at org.eclipse.ui.internal.Perspective.showView(Perspective.java:2229)
	at org.eclipse.ui.internal.WorkbenchPage.busyShowView(WorkbenchPage.java:1067)
	at org.eclipse.ui.internal.WorkbenchPage$20.run(WorkbenchPage.java:3816)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.showView(WorkbenchPage.java:3813)
	at org.eclipse.riena.navigation.ui.swt.views.SubApplicationView$MySubModuleNodeListener.prepareView(SubApplicationView.java:639)
	at org.eclipse.riena.navigation.ui.swt.views.SubApplicationView$MySubModuleNodeListener.prepareView(SubApplicationView.java:622)
	at org.eclipse.riena.navigation.ui.swt.views.SubApplicationView$MySubModuleNodeListener.activated(SubApplicationView.java:521)
	at org.eclipse.riena.navigation.ui.swt.views.SubApplicationView$MySubModuleNodeListener.activated(SubApplicationView.java:1)
	at org.eclipse.riena.navigation.listener.NavigationTreeObserver$MySubModuleNodeListener.activated(NavigationTreeObserver.java:1228)
	at org.eclipse.riena.navigation.listener.NavigationTreeObserver$MySubModuleNodeListener.activated(NavigationTreeObserver.java:1)
	at org.eclipse.riena.navigation.model.NavigationNode.notifyActivated(NavigationNode.java:192)
	at org.eclipse.riena.navigation.model.NavigationNode.activate(NavigationNode.java:867)
	at org.eclipse.riena.navigation.model.NavigationProcessor.activate(NavigationProcessor.java:861)
	at org.eclipse.riena.navigation.model.NavigationProcessor.activate(NavigationProcessor.java:113)
	at org.eclipse.riena.navigation.model.NavigationNode.activate(NavigationNode.java:416)
	at org.kribi.core.client.application.Application$1.run(Application.java:71)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3468)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3115)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.riena.navigation.ui.swt.application.SwtApplication.createView(SwtApplication.java:62)
	at org.eclipse.riena.navigation.ui.application.AbstractApplication.start(AbstractApplication.java:64)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1287)
Caused by: java.lang.ClassCastException: org.eclipse.swt.widgets.Composite cannot be cast to org.eclipse.ui.internal.forms.widgets.FormHeading
	at org.eclipse.ui.internal.forms.widgets.TitleRegion.getColor(TitleRegion.java:253)
	at org.eclipse.ui.internal.forms.widgets.TitleRegion.createMenuHyperlink(TitleRegion.java:410)
	at org.eclipse.ui.internal.forms.widgets.TitleRegion.getMenuManager(TitleRegion.java:486)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.riena.core.util.ReflectionUtils.invoke(ReflectionUtils.java:313)
	... 59 more
Comment 1 Elias Volanakis CLA 2010-05-21 20:21:13 EDT
Hi Ngwa,

this works just fine for me (Riena 2.0.RC2).  I tried it with both setting of the preference (true / false).

See attached screenshot and sample code. One does also need org.eclipse.ui.forms in the MANIFEST.MF / target.false). 

Feel free to reopen with an example of your own that replicates shows the crash.
Comment 2 Elias Volanakis CLA 2010-05-21 20:22:29 EDT
Created attachment 169577 [details]
Form Example Screenshot
Comment 3 Elias Volanakis CLA 2010-05-21 20:23:24 EDT
Created attachment 169578 [details]
View with Forms
Comment 4 Elias Volanakis CLA 2010-05-21 20:23:50 EDT
Created attachment 169579 [details]
Controller with Forms