GridLayout on canvas [message #493686] |
Tue, 27 October 2009 14:48 |
|
Hi,
I search to havce a GridLayout on the canvas.
In gen generator, for layout type of figure viewmap the choices are Unknown, Toolbar_layout, XY_layout and Flow_layout.
So no gridlayout.
I saw in org.eclipse.gmf.graphdef on CVS that it exists a GridLayoutEditpolicy. On the other hand, it also exists a draw2d gridlayout.
But GridLayoutEditPoilicy is in src-extra and seems not to be in the release plugin.
So I modified it to trey to use it without success. The following eroor occured when I try to create an element with th epalette :
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.ClassCastException: org.eclipse.draw2d.geometry.Rectangle cannot be cast to org.eclipse.draw2d.GridData)
at org.eclipse.swt.SWT.error(SWT.java:3884)
at org.eclipse.swt.SWT.error(SWT.java:3799)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3855)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3476)
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.bonitasoft.studio.application.BonitaStudioApplication.start(BonitaStudioApplication.java:37)
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(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
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.draw2d.geometry.Rectangle cannot be cast to org.eclipse.draw2d.GridData
at org.eclipse.draw2d.GridLayout.layout(GridLayout.java:232)
at org.eclipse.draw2d.GridLayout.layout(GridLayout.java:219)
at org.eclipse.draw2d.Figure$LayoutNotifier.layout(Figure.java:1812)
at org.eclipse.draw2d.Figure.layout(Figure.java:1029)
at org.eclipse.draw2d.Figure.validate(Figure.java:1739)
at org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer.validate(BorderItemsAwareFreeFormLayer.java:169)
at org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart$1.validate(DiagramEditPart.java:157)
at org.eclipse.draw2d.Figure.validate(Figure.java:1741)
at org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer.validate(BorderItemsAwareFreeFormLayer.java:169)
at org.eclipse.draw2d.Figure.validate(Figure.java:1741)
at org.eclipse.draw2d.Figure.validate(Figure.java:1741)
at org.eclipse.draw2d.Figure.validate(Figure.java:1741)
at org.eclipse.draw2d.FreeformViewport$FreeformViewportLayout.calculatePreferredSize(FreeformViewport.java:28)
at org.eclipse.draw2d.AbstractLayout.getPreferredSize(AbstractLayout.java:93)
at org.eclipse.draw2d.AbstractHintLayout.getPreferredSize(AbstractHintLayout.java:85)
at org.eclipse.draw2d.Figure.getPreferredSize(Figure.java:735)
at org.eclipse.draw2d.ScrollPaneSolver.solve(ScrollPaneSolver.java:75)
at org.eclipse.draw2d.FigureCanvas.layoutViewport(FigureCanvas.java:315)
at org.eclipse.draw2d.FigureCanvas.access$4(FigureCanvas.java:313)
at org.eclipse.draw2d.FigureCanvas$3.notifyValidating(FigureCanvas.java:278)
at org.eclipse.draw2d.UpdateManager.fireValidating(UpdateManager.java:123)
at org.eclipse.draw2d.DeferredUpdateManager.performValidation(DeferredUpdateManager.java:203)
at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer$ToggleUpdateManager.performValidation(DiagramGraphicalViewer.java:124)
at org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:179)
at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer$ToggleUpdateManager.performUpdate(DiagramGraphicalViewer.java:114)
at org.eclipse.draw2d.DeferredUpdateManager$UpdateRequest.run(DeferredUpdateManager.java:48)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
... 23 more
So is there a way to have a gridlayout on the canvas?
Is my first way the good? How can I avoid the error and do it working?
Do I need to write my own layout specializing draw2d.GridLayout and/or my own GridLayoutEditPolicy? Which will be the difficulty of doing that?
another solution?
Thanks by advance,
Aurelien Pupier
Aurélien Pupier - Red Hat
Senior Software Engineer in Fuse Tooling team
|
|
|
|
Powered by
FUDForum. Page generated in 0.02881 seconds