Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » GEF » GEF 5 (MVC) + e4 RCP Application Tutorial
GEF 5 (MVC) + e4 RCP Application Tutorial [message #1771498] Fri, 25 August 2017 17:26 Go to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
I've posted about this in the past, but I am hoping the answer is different now that several releases have occurred.

Are there any tutorials showing how to use GEF 5 with an e4 RCP application? Specifically, I'm wanting to use GEF 5 MVC.
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1771653 is a reply to message #1771498] Tue, 29 August 2017 07:30 Go to previous messageGo to next message
Matthias Wienand is currently offline Matthias WienandFriend
Messages: 230
Registered: March 2015
Senior Member
Hi Ken,

no there is no tutorial dedicated to GEF 5.x integrated into e4 RCP.

IMHO, you do not need such a tutorial to get started. There are plenty of examples and other documentation for GEF (mindmap tutorial, GitHub wiki, MVC example, Zest Graph example, javadoc). Integrating into e4 RCP is not a big deal at all.

Best regards,
Matthias
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1772829 is a reply to message #1771653] Fri, 15 September 2017 22:02 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
I've started developing a tutorial like the one I am looking for. If nothing else, this will help me work through the problems I'm having with using GEF (5.x) in my e4 RCP application. If it can help others too, that's great.

I'm currently stuck trying to get Google Guice to work in my plugin. You can find my plugin here: https://github.com/kenjkeefe/e4gef5shapes

It is really small and simple. In the org.eclipse.gef.mvc.examples.shapes.view.MainPart class, importing com.google.inject.Inject is complaining that com.google cannot be resolved. I added com.google.inject to my Imported Packages, just like it is in the org.eclipse.gef.mvc.examples.logo.ui plugin. That doesn't seem to help the resolution error. I also have the logo example in my workspace and running in my Eclipse installation with no problem, so I think I have Google Guice in my running platform (which is also the target I'm using). I just don't understand why I cannot import it from the plugin that I created (.examples.shapes).

Anyway, I'd really appreciate if you could check out my plugin and tell me what dumb thing I missed.

I have started writing up the tutorial here (https://www.perform.illinois.edu/~kjkeefe/?p=299), but I am betting that if you just check out the code from github, you'll find the error much faster than reading through the tutorial as it currently stands.

Thanks in advance!
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773055 is a reply to message #1772829] Wed, 20 September 2017 21:37 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
I figured out the problem with Google Guice. My plugin.xml file was trying to use the 1.4.0 version of com.google.inject in the Imported Packages section and apparently I needed the 1.3.0 version. I'm not sure why, but it fixed the resolution problem.

I am stuck on a new problem. I am trying to just get started by creating an FXCanvas and adding it to my e4 Part. Everything is compiling and looks good, but when I go to launch my e4 product, I get the error message shown below. The application window does appear, but the canvas does not show.

I have pushed the code to github (https://github.com/kenjkeefe/e4gef5shapes) and updated my tutorial page to describe how I configured my plugin and product (https://www.perform.illinois.edu/~kjkeefe/?p=332).

!SESSION 2017-09-20 16:12:05.471 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_51
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -product org.eclipse.gef.mvc.examples.shapes.product -clearPersistedState
Command-line arguments:  -product org.eclipse.gef.mvc.examples.shapes.product -data /Users/kjkeefe/workspace-4.7-e4gef5/../runtime-org.eclipse.gef.mvc.examples.shapes.product -dev file:/Users/kjkeefe/workspace-4.7-e4gef5/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.gef.mvc.examples.shapes.product/dev.properties -os macosx -ws cocoa -arch x86_64 -consoleLog -clearPersistedState

!ENTRY org.eclipse.e4.ui.workbench 4 0 2017-09-20 16:12:06.863
!MESSAGE Unable to create class 'org.eclipse.gef.mvc.examples.shapes.view.MainPart' from bundle '79'
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: Ljavafx/embed/swt/FXCanvas;
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:410)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:666)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:772)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:743)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:737)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:721)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:704)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:680)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:772)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:743)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:737)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:721)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1081)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:162)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
Caused by: java.lang.NoClassDefFoundError: Ljavafx/embed/swt/FXCanvas;
	at java.lang.Class.getDeclaredFields0(Native Method)
	at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
	at java.lang.Class.getDeclaredFields(Class.java:1916)
	at org.eclipse.e4.core.internal.di.InjectorImpl.getDeclaredFields(InjectorImpl.java:837)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processFields(InjectorImpl.java:699)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processClass(InjectorImpl.java:665)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processClassHierarchy(InjectorImpl.java:646)
	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:100)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
	... 39 more
Caused by: java.lang.ClassNotFoundException: javafx.embed.swt.FXCanvas cannot be found by org.eclipse.gef.mvc.examples.shapes_1.0.0.qualifier
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:484)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:395)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:387)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 48 more

Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773119 is a reply to message #1773055] Thu, 21 September 2017 20:15 Go to previous messageGo to next message
Tamas Miklossy is currently offline Tamas MiklossyFriend
Messages: 162
Registered: February 2016
Senior Member
If I install e(fx)clipse from the Eclipse Marketplace, the error is gone and I can start your sample application.
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773124 is a reply to message #1773119] Thu, 21 September 2017 21:45 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
You can? I figured out the problem with the ClassNotFoundException: javafx.embed.swt.FXCanvas, I need to add this to the VM arguments: -Dosgi.framework.extensions=org.eclipse.fx.osgi

Now, I'm getting an NPE, but I was expecting that since my code calls for an IDomain and IFXCanvasFactory to be injected, but I don't initialize the Google Guice context anywhere in my code. I'm investigating how the Logo example initializes the context and will hopefully be able to move forward from here.

Tamas, I'm really unsure how you were able to launch with no errors using the latest commit from github.

!SESSION 2017-09-21 16:39:02.432 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.8.0_131
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments:  -product org.eclipse.gef.mvc.examples.shapes.product -clearPersistedState
Command-line arguments:  -product org.eclipse.gef.mvc.examples.shapes.product -data /home/kjkeefe/oxygen-workspace/../runtime-org.eclipse.gef.mvc.examples.shapes.product -dev file:/home/kjkeefe/oxygen-workspace/.metadata/.plugins/org.eclipse.pde.core/org.eclipse.gef.mvc.examples.shapes.product/dev.properties -os linux -ws gtk -arch x86_64 -consoleLog -clearPersistedState

!ENTRY org.eclipse.e4.ui.workbench 4 0 2017-09-21 16:39:06.974
!MESSAGE Unable to create class 'org.eclipse.gef.mvc.examples.shapes.view.MainPart' from bundle '27'
!STACK 0
org.eclipse.e4.core.di.InjectionException: java.lang.NullPointerException
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:65)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990)
	at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
	at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
	at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
	at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
	at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:997)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:666)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:772)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:743)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:737)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:721)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.processContents(SWTPartRenderer.java:69)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer.processContents(WBWRenderer.java:704)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:680)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:772)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:743)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:737)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:721)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1081)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1044)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:162)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
Caused by: java.lang.NullPointerException
	at org.eclipse.gef.mvc.examples.shapes.view.MainPart.createCanvas(MainPart.java:31)
	at org.eclipse.gef.mvc.examples.shapes.view.MainPart.postConstruct(MainPart.java:25)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
	... 42 more
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773131 is a reply to message #1773124] Fri, 22 September 2017 05:43 Go to previous messageGo to next message
Tamas Miklossy is currently offline Tamas MiklossyFriend
Messages: 162
Registered: February 2016
Senior Member
I have just fetched the current HEAD from the Github repository and now I get the same error (same stacktrace) as you above.
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773525 is a reply to message #1773131] Thu, 28 September 2017 21:02 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
I am following the pattern that is seen in org.eclipse.gef.mvc.examples.logo (.ui) to continue my efforts to build an example that uses GEF in a pure e4 RCP application. I'm working on getting Guice to initialize correctly, which (I think) requires that I define subclasses of MvcFxModule and MvcFxUiModule. One wrinkle is that MvcFxUiModule makes a call to PlatformUI.getWorkbench() in the bindIOperationHistory method. However, in pure e4, there is no org.eclipse.ui.* available. Should I submit a bug report about this?
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773530 is a reply to message #1773525] Thu, 28 September 2017 22:43 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
Ok, I think I've made a big breakthrough in all the troubles I was having. I now have the canvas showing within my pure e4 RCP app. I'm going to work on writing this up in the tutorial tomorrow. However, I'd GREATLY appreciate those more knowledgeable with GEF take a look at how I solved the problems and make sure I haven't done something egregious.

Take a look at the code on my github. Specifically, do a diff on the master and the Step3Complete branches to see what I had to change to get the canvas showing.

https://github.com/kenjkeefe/e4gef5shapes

Thanks! I'm excited that I'm making some real progress.
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773571 is a reply to message #1773530] Fri, 29 September 2017 14:53 Go to previous messageGo to next message
Matthias Wienand is currently offline Matthias WienandFriend
Messages: 230
Registered: March 2015
Senior Member
Hi Ken, I will check it out now, thank you for your patience.

Maybe stating a tutorial "is not needed" does not do justice to the problem. However, I still believe integration (into Eclipse UI) is a rather small aspect of application development with GEF. Nonetheless, I am happy to see that you are putting something together =) Moreover, I was not even thinking about all the UI builder stuff that can be used in conjunction with JavaFX, not bad!

I will answer here later, when I took a deeper look.

PS: I really appreciate that the discussion shifted from "Can you provide a tutorial for X?" to "I am trying to do X, but it fails due to Y. How can I proceed from here?". This is much more productive.

Best regards,
Matthias
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773583 is a reply to message #1773571] Fri, 29 September 2017 16:55 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
No problem, Matthias. I'm just grateful for the help. I want to learn how to use GEF 5.

Ken
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773593 is a reply to message #1773583] Fri, 29 September 2017 18:46 Go to previous messageGo to next message
Matthias Wienand is currently offline Matthias WienandFriend
Messages: 230
Registered: March 2015
Senior Member
Alright, some notes first w.r.t. the problems you encountered on the way:

1) Dependencies (e.g. Guice). These can be taken directly from GEF, i.e. org.eclipse.gef.mvc.fx lists com.google.inject;version="[1.3.0,1.4.0)" as one of its dependencies. So, you can see that the 1.4.0 version is excluded (an internal data structure was changed between 1.3.0 and 1.4.0, which caused a bug in GEF Common IIRC).

2) Running with e(fx)eclipse. The VM argument that you need to supply so that JavaFX dependencies can be resolved in the OSGi environment (-Dosgi.framework.extensions=org.eclipse.fx.osgi) is listed in the "Getting started" section in the GEF README [0] (launching examples).

3) You are not forced to use the MvcFxModule with GEF, however, it installs the AdapterInjectionSupport and sets up some useful default bindings, therefore, it is a good idea to extend that module. However, you certainly do not need to use MvcFxUiModule, which only contributes bindings that are useful when integrating into a classic Eclipse UI (e.g. FXCanvasFactory, operation history, selection provider etc.).

These problems are unrelated to e4. You would need to get this right regardless of whether you are using e4 or not. That's why this is explained, for example, in the GEF Mindmap Tutorial [1].

Now, talking about the implementation:

- I am unsure, but I think you can use the compatibility layer and still access the functionality provided by MVC.FX.UI, however, when doing pure e4, you probably need to implement it differently. You can take a look at the Eclipse Wiki for a list of the eclipse application services and their current status w.r.t. e4 [2].
- You do not need to use the SWT renderer with e4. You can use a pure JavaFX renderer instead, if you wish [3].
- The ShapeModel seems to be more complicated than it needs to be. I would try to start with a simpler model, e.g. {boxes=>ObservableList<IShape>,lines=>ObservableMap<IShape,IShape>}
- I implemented just what was needed to get a Rectangle onto the screen and added a standalone JavaFX application for your shapes example. You can find a corresponding patch attached to this message if you are interested.
- The GitHub repository has a single plugin project on the root level. I would use the parent folder as the root, so that you can comprise multiple projects in that repository.

I think you chose a good scope for the example and that it has some potential, but I can imagine that it would be more interesting to develop a pure JavaFX e4 application with GEF and to fill the gap w.r.t. Eclipse Application Services.

PS: I do not work with or use e4, therefore, despite my efforts, I am probably making false assumptions / missing an understanding for some concepts, and am thus glad to get corrected if that is the case.

Best regards,
Matthias

[0] https://github.com/eclipse/gef#getting-started-with-the-framework-components-adopters
[1] https://info.itemis.com/en/gef/tutorials/
[2] https://wiki.eclipse.org/E4/Eclipse_Application_Services
[3] https://wiki.eclipse.org/Efxclipse/Tutorials/Tutorial3
  • Attachment: rect.patch
    (Size: 6.59KB, Downloaded 241 times)
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773733 is a reply to message #1773593] Tue, 03 October 2017 19:11 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
Can you give me a nudge regarding anchor points? If you pull the latest from my github repo, you'll see on lines 137-138 of ConnectionPart.java, I am trying to set the start and end point of my Connection arc. These should be based on the edge of the shape it is connecting to. I see that the GEF MVC Logo example does it well because as I drag an anchored connection around the F shape, the anchor point updates to the edge position nearest the other end point. However, I cannot seem to figure out how that is accomplished in the code.

Thanks,
Ken
Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773740 is a reply to message #1773733] Tue, 03 October 2017 21:46 Go to previous messageGo to next message
Ken Keefe is currently offline Ken KeefeFriend
Messages: 38
Registered: September 2009
Member
Don't worry about my last comment. The MindMap tutorial is helping me immensely.

Re: GEF 5 (MVC) + e4 RCP Application Tutorial [message #1773793 is a reply to message #1773740] Wed, 04 October 2017 16:53 Go to previous message
Matthias Wienand is currently offline Matthias WienandFriend
Messages: 230
Registered: March 2015
Senior Member
Hi Ken,

the concepts around Connection (Anchors, Parameters, etc.) are a little bit complicated. Feel free to open another thread for clarification if need be.

Best regards,
Matthias
Previous Topic:[GEF5] Show places where user can drop components
Next Topic:GEF Context Menu Caching Language Preference
Goto Forum:
  


Current Time: Fri Nov 08 10:54:31 GMT 2024

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

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

Back to the top