Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » GridLayout on canvas
GridLayout on canvas [message #493686] Tue, 27 October 2009 14:48 Go to next message
Aurélien Pupier is currently offline Aurélien PupierFriend
Messages: 637
Registered: July 2009
Location: Grenoble, FRANCE
Senior Member

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
Re: GridLayout on canvas [message #495134 is a reply to message #493686] Tue, 03 November 2009 21:18 Go to previous message
Alex Shatalin is currently offline Alex ShatalinFriend
Messages: 141
Registered: July 2009
Senior Member
Hello Aurelien,

If you are talking about figure layouts then GridLayout is supported in .gmfgraph
model now.
If you are talking about layout managers used to place child elements inside
then you have to write custom code in order to modify it - like it was done
for org.eclipse.gmf.graphdef project.

I suggest you to use standard draw2d layout manager for diagram figure and
rearrange diagram elements by setting positions in order to get some particular
diagram elements layout.

-----------------
Alex Shatalin
Previous Topic:GMF for extended metamodel?
Next Topic:Model Validation on Saving
Goto Forum:
  


Current Time: Fri Apr 26 06:42:44 GMT 2024

Powered by FUDForum. Page generated in 0.02881 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top