Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » e(fx)clipse » Prototype of SceneBuilder integrated into Eclipse
Prototype of SceneBuilder integrated into Eclipse [message #1782036] Fri, 16 February 2018 10:27 Go to next message
Hallvard Traetteberg is currently offline Hallvard TraettebergFriend
Messages: 673
Registered: July 2009
Location: Trondheim, Norway
Senior Member
There's an old bug asking for SceneBuilder as an Eclipse editor (https://bugs.eclipse.org/bugs/show_bug.cgi?id=408408). I'm happy to tell that a master project I'm supervising has produced a prototype of this (and he's not done, yet) available at https://gitlab.stud.iie.ntnu.no/tobiaas/scene-builder-plugin and installable from http://files.idi.ntnu.no/publish/sb4e-SNAPSHOT/repository/
It builds on Gluon's SceneBuilder and runs on Eclipse Oxygen, e(fx)clipse 3.1.0 (I believe) and Java 8 (for now).

Features
- open and edit FXML files
- the Inspector is a separate, linked view
- loads files using containing project's class path, so you can use custom controls and controllers

See image below!

He's still working on it and will be happy for feedback and/or issues at his gitlab site.

index.php/fa/32099/0/
Re: Prototype of SceneBuilder integrated into Eclipse [message #1782080 is a reply to message #1782036] Fri, 16 February 2018 19:39 Go to previous messageGo to next message
Thomas Schindl is currently offline Thomas SchindlFriend
Messages: 6651
Registered: July 2009
Senior Member
This totally awesome! Thanks!
Re: Prototype of SceneBuilder integrated into Eclipse [message #1783273 is a reply to message #1782080] Sat, 10 March 2018 09:47 Go to previous messageGo to next message
Jörg Wille is currently offline Jörg WilleFriend
Messages: 14
Registered: December 2011
Junior Member
Finally! Can't wait to see the result. Well done from your student.
Re: Prototype of SceneBuilder integrated into Eclipse [message #1783274 is a reply to message #1782080] Sat, 10 March 2018 09:47 Go to previous messageGo to next message
Jörg Wille is currently offline Jörg WilleFriend
Messages: 14
Registered: December 2011
Junior Member
Finally! Can't wait to see the result. Well done from your student.
Re: Prototype of SceneBuilder integrated into Eclipse [message #1783275 is a reply to message #1782080] Sat, 10 March 2018 09:47 Go to previous messageGo to next message
Jörg Wille is currently offline Jörg WilleFriend
Messages: 14
Registered: December 2011
Junior Member
Finally! Can't wait to see the result. Well done from your student.
Re: Prototype of SceneBuilder integrated into Eclipse [message #1786611 is a reply to message #1782036] Tue, 08 May 2018 11:29 Go to previous messageGo to next message
Julius Schwartzenberg is currently offline Julius SchwartzenbergFriend
Messages: 3
Registered: April 2015
Junior Member
I installed the 0.9.1 release of the plug-in in Oxygen, but when I try to open an FXML file with it, the editor is unable to instantiate "Failed to create the part's controls" and this exception is shown:

java.lang.RuntimeException: Failed to load /no/tobask/sb4e/editors/EditorWindow.fxml
	at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlWindowController.makeRoot(AbstractFxmlWindowController.java:114)
	at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractWindowController.getRoot(AbstractWindowController.java:88)
	at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractWindowController.getScene(AbstractWindowController.java:108)
	at no.tobask.sb4e.editors.FXMLEditor.createPartControl(FXMLEditor.java:166)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:151)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:99)
	at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:355)
	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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990)
	at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:955)
	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:992)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:661)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$1.handleEvent(PartServiceImpl.java:104)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
	at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)
	at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:144)
	at org.eclipse.swt.widgets.Display.syncExec(Display.java:4889)
	at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:212)
	at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
	at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
	at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
	at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
	at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
	at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
	at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
	at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:52)
	at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:60)
	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
	at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:173)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:620)
	at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:584)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:769)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
	at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1188)
	at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3261)
	at org.eclipse.ui.internal.WorkbenchPage.access$25(WorkbenchPage.java:3176)
	at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:3158)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3153)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3117)
	at org.eclipse.ui.actions.OpenWithMenu.openEditor(OpenWithMenu.java:323)
	at org.eclipse.ui.actions.OpenWithMenu.lambda$0(OpenWithMenu.java:180)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
	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(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:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
Caused by: java.lang.RuntimeException: Failed to load /com/oracle/javafx/scenebuilder/app/info/InfoPanel.fxml
	at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlPanelController.makePanel(AbstractFxmlPanelController.java:93)
	at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractPanelController.getPanelRoot(AbstractPanelController.java:134)
	at no.tobask.sb4e.editors.EditorWindowController.controllerDidLoadFxml(EditorWindowController.java:60)
	at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlWindowController.makeRoot(AbstractFxmlWindowController.java:110)
	... 86 more
Caused by: java.lang.NullPointerException
	at no.tobask.sb4e.JavaProjectGlossary.queryControllerClasses(JavaProjectGlossary.java:58)
	at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.getSuggestedControllerClasses(InfoPanelController.java:421)
	at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.performInitialization(InfoPanelController.java:187)
	at com.oracle.javafx.scenebuilder.app.info.InfoPanelController.controllerDidLoadFxml(InfoPanelController.java:174)
	at com.oracle.javafx.scenebuilder.kit.editor.panel.util.AbstractFxmlPanelController.makePanel(AbstractFxmlPanelController.java:89)
	... 89 more


I could not find a way to obtain an account on this Gitlab instance. Is there any issue tracker where I could report such problems?
Re: Prototype of SceneBuilder integrated into Eclipse [message #1786952 is a reply to message #1786611] Wed, 16 May 2018 10:05 Go to previous messageGo to next message
Tobias Ask is currently offline Tobias AskFriend
Messages: 2
Registered: March 2018
Junior Member
Julius Schwartzenberg wrote on Tue, 08 May 2018 11:29
I installed the 0.9.1 release of the plug-in in Oxygen, but when I try to open an FXML file with it, the editor is unable to instantiate "Failed to create the part's controls" and this exception is shown:

(stack trace)

I could not find a way to obtain an account on this Gitlab instance. Is there any issue tracker where I could report such problems?


Hi, I'm the developer of this plug-in. Thank you for reporting your issue! Apologies for the delayed response.

Is the document you're trying to open located in the default package (i. e., directly under src)? That could be the cause of the issue. If that is case, I know how to fix it, and will push a bug fix right away. A temporary fix on your end would also be to put the document inside a package. If the document is already inside a package, I do not straight away know what could be causing your issue. Do you have JDK 8 installed? The plug-in does not currently support any higher version.

Regarding issue tracking, I actually thought that it was public. Do you have access to this page (gitlab.stud.iie.ntnu.no/tobiaas/scene-builder-plugin/issues)? It could be that since this is my university's GitLab instance, projects are never actually public. If that is the case I will consider putting the project on my own GitHub page.

Thanks, and all the best
Tobias
Re: Prototype of SceneBuilder integrated into Eclipse [message #1787011 is a reply to message #1786952] Thu, 17 May 2018 10:06 Go to previous messageGo to next message
Julius Schwartzenberg is currently offline Julius SchwartzenbergFriend
Messages: 3
Registered: April 2015
Junior Member
Thanks a lot for your reponse!

Tobias Ask wrote on Wed, 16 May 2018 12:05
Is the document you're trying to open located in the default package (i. e., directly under src)? That could be the cause of the issue. If that is case, I know how to fix it, and will push a bug fix right away. A temporary fix on your end would also be to put the document inside a package. If the document is already inside a package, I do not straight away know what could be causing your issue. Do you have JDK 8 installed? The plug-in does not currently support any higher version.

The document is inside a package and I'm using JDK 8, so it seems the cause is still unclear for my case.

Tobias Ask wrote on Wed, 16 May 2018 12:05
Regarding issue tracking, I actually thought that it was public. Do you have access to this page (gitlab.stud.iie.ntnu.no/tobiaas/scene-builder-plugin/issues)? It could be that since this is my university's GitLab instance, projects are never actually public. If that is the case I will consider putting the project on my own GitHub page.

I can access this page, but when I click the 'New issue' button I get redirected to a log in page with no visible way to create a new account. So I can access the issues, but not report a new one.
Re: Prototype of SceneBuilder integrated into Eclipse [message #1787068 is a reply to message #1787011] Fri, 18 May 2018 10:20 Go to previous message
Tobias Ask is currently offline Tobias AskFriend
Messages: 2
Registered: March 2018
Junior Member
Julius Schwartzenberg wrote on Thu, 17 May 2018 10:06

The document is inside a package and I'm using JDK 8, so it seems the cause is still unclear for my case.


Very strange... Could you perhaps send me the project you're working on? Or a screenshot/description of the project structure.

Julius Schwartzenberg wrote on Thu, 17 May 2018 10:06

I can access this page, but when I click the 'New issue' button I get redirected to a log in page with no visible way to create a new account. So I can access the issues, but not report a new one.


I see. I will put the project on my public GitHub page as soon as possible.
Previous Topic:groovy editor in eclipse 4 rcp
Next Topic:ContextMenu not showing
Goto Forum:
  


Current Time: Tue Mar 19 09:54:00 GMT 2024

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

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

Back to the top