Community
Participate
Working Groups
To reproduce: 1. Start SWT Example Application > Playground > Selectable Submodule 2. Click on the [x] next to Selectable Submodule Result: exception thrown, module is not removed. Expected: module is removed org.eclipse.riena.navigation.ApplicationModelFailure: viewId is null for nodeId NavNodeId:org.eclipse.riena.example.selectablesubmodule.contracts[null] at org.eclipse.riena.navigation.ui.swt.presentation.SwtViewProvider.getViewId(SwtViewProvider.java:131) at org.eclipse.riena.navigation.ui.swt.presentation.SwtViewProvider.createAndRegisterSwtViewId(SwtViewProvider.java:90) at org.eclipse.riena.navigation.ui.swt.presentation.SwtViewProvider.getSwtViewId(SwtViewProvider.java:61) at org.eclipse.riena.navigation.ui.swt.views.SubApplicationView$MySubModuleNodeListener.getViewId(SubApplicationView.java:555) at org.eclipse.riena.navigation.ui.swt.views.SubApplicationView$MySubModuleNodeListener.disposed(SubApplicationView.java:515) at org.eclipse.riena.navigation.ui.swt.views.SubApplicationView$MySubModuleNodeListener.disposed(SubApplicationView.java:1) at org.eclipse.riena.navigation.listener.NavigationTreeObserver$MySubModuleNodeListener.disposed(NavigationTreeObserver.java:1294) at org.eclipse.riena.navigation.listener.NavigationTreeObserver$MySubModuleNodeListener.disposed(NavigationTreeObserver.java:1) at org.eclipse.riena.navigation.model.NavigationNode.notifyDisposed(NavigationNode.java:902) at org.eclipse.riena.navigation.model.NavigationNode.dispose(NavigationNode.java:934) at org.eclipse.riena.navigation.model.NavigationProcessor.dispose(NavigationProcessor.java:681) at org.eclipse.riena.navigation.model.NavigationProcessor.dispose(NavigationProcessor.java:141) at org.eclipse.riena.navigation.model.NavigationNode.dispose(NavigationNode.java:896) at org.eclipse.riena.navigation.ui.controllers.ModuleController$WindowListener.closed(ModuleController.java:216) at org.eclipse.riena.internal.ui.ridgets.swt.EmbeddedTitleBarRidget$TitleBarListener.windowClosed(EmbeddedTitleBarRidget.java:266) at org.eclipse.riena.ui.swt.ModuleTitleBar.fireClosed(ModuleTitleBar.java:71) at org.eclipse.riena.ui.swt.ModuleTitleBar.access$0(ModuleTitleBar.java:69) at org.eclipse.riena.ui.swt.ModuleTitleBar$TitlebarMouseListener.mouseUp(ModuleTitleBar.java:91) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:207) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3880) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3473) 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:64) at org.eclipse.riena.navigation.ui.application.AbstractApplication.start(AbstractApplication.java:63) 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)
Hi Steffen, Christian suggested assigning this to you. Kind regards, Elias.
Created attachment 147438 [details] Patch The SWTViewProvider assumes that every SubModuleNode has an associated View, but not selectable SubModuleNodes don't have one, because they just act as a folder in the navigation. That can be fixed pretty easy by just checking if the node to close is selectable or not.
Patch applied. Thanks Steffen.