Skip to content
This repository has been archived by the owner on Jun 26, 2018. It is now read-only.

Update Splash #1381

Closed
3 of 4 tasks
alexsb opened this issue Jul 3, 2013 · 12 comments
Closed
3 of 4 tasks

Update Splash #1381

alexsb opened this issue Jul 3, 2013 · 12 comments
Assignees
Milestone

Comments

@alexsb
Copy link
Member

alexsb commented Jul 3, 2013

The current Splash screen has a couple of problems:

  • Old labels have opaque background (I changed the from red to gray)
  • Version number is outdated
  • Might want to adapt to new design
  • Progress bar is not updated

Concerning the background, I've experimented with writing using a graphics container (GC) instead of a label:

splash

Notice the "Test". Here I got transparency to work immediately. Does that look (exactly) the same for you?

@ghost ghost assigned alexsb Jul 3, 2013
mstreit added a commit that referenced this issue Jul 3, 2013
mstreit added a commit that referenced this issue Jul 3, 2013
removed SWT GUI Manager (unfortunately this breaks our packages)
can't test under Linux because the splash is replaced with an empty
window right after the loading begins (see #862).
@mstreit
Copy link
Member

mstreit commented Jul 3, 2013

not working for importer atm.
if the splash is disposed we need to show a popup progress bar instead
the splash should not be exposed. only the setProgress and setProgressLabel methods in the general manager should be accessed.

mstreit added a commit that referenced this issue Jul 3, 2013
@alexsb
Copy link
Member Author

alexsb commented Jul 3, 2013

In Kepler it looks like this:

splash2

@mstreit
Copy link
Member

mstreit commented Jul 3, 2013

see InteractiveSplashHandler line 45: splash.setBackgroundMode(SWT.INHERIT_DEFAULT);

@mstreit
Copy link
Member

mstreit commented Jul 3, 2013

We decided to extend the EclipseSplashHandler. This should be more stable.

@alexsb
Copy link
Member Author

alexsb commented Jul 3, 2013

Current version throws exception on occasion (mainly when debugging during startup)

org.eclipse.swt.SWTException: Failed to execute runnable (org.eclipse.swt.SWTException: Widget is disposed)
    at org.eclipse.swt.SWT.error(SWT.java:4397)
    at org.eclipse.swt.SWT.error(SWT.java:4312)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3717)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3366)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173)
    at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:388)
    at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
    at org.caleydo.core.internal.ApplicationWorkbenchAdvisor.preShutdown(ApplicationWorkbenchAdvisor.java:77)
    at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1027)
    at org.eclipse.ui.internal.Workbench.access$19(Workbench.java:1024)
    at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1327)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.Workbench.close(Workbench.java:1325)
    at org.eclipse.ui.internal.Workbench.close(Workbench.java:1298)
    at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1227)
    at org.eclipse.ui.internal.WorkbenchWindow.access$14(WorkbenchWindow.java:1198)
    at org.eclipse.ui.internal.WorkbenchWindow$10.run(WorkbenchWindow.java:1261)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1259)
    at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1271)
    at org.eclipse.ui.internal.WorkbenchWindow$6.close(WorkbenchWindow.java:474)
    at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer$12.shellClosed(WBWRenderer.java:612)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:98)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1416)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1401)
    at org.eclipse.swt.widgets.Shell.closeWidget(Shell.java:646)
    at org.eclipse.swt.widgets.Shell.gtk_delete_event(Shell.java:1228)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2082)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:5467)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:4569)
    at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
    at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8707)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1243)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2287)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3361)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:138)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:610)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.caleydo.core.internal.Application.start(Application.java:77)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    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:354)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Caused by: org.eclipse.swt.SWTException: Widget is disposed
    at org.eclipse.swt.SWT.error(SWT.java:4397)
    at org.eclipse.swt.SWT.error(SWT.java:4312)
    at org.eclipse.swt.SWT.error(SWT.java:4283)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:481)
    at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:418)
    at org.eclipse.swt.widgets.ProgressBar.setSelection(ProgressBar.java:251)
    at org.caleydo.core.startup.InteractiveSplashHandler$1.run(InteractiveSplashHandler.java:72)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
    ... 58 more

@ghost ghost assigned mstreit Jul 3, 2013
@alexsb
Copy link
Member Author

alexsb commented Jul 3, 2013

Re-assigning to marc

mstreit added a commit that referenced this issue Jul 4, 2013
does not solve our problems.
TODO: progress monitor integration with subtasks
@mstreit
Copy link
Member

mstreit commented Jul 4, 2013

the background is ok now on my machine (not red anymore)

@mstreit
Copy link
Member

mstreit commented Jul 4, 2013

Missing progress is only a problem under Linux and MacOSX. Related to #862

@mstreit
Copy link
Member

mstreit commented Jul 4, 2013

The only way to solve the progress / #862 problems is probably to do the loading after the workbench has been initialized using the eclipse progress monitors. However, this way it would not be possible anymore to restore workbench layouts. We need to decide if we still want to have that in future.

@mstreit
Copy link
Member

mstreit commented Jul 4, 2013

Contextually relevant: https://bugs.eclipse.org/bugs/show_bug.cgi?id=321350

@mstreit
Copy link
Member

mstreit commented Jul 4, 2013

We can try to change the order of our startup process and trigger the data loading in the splash init method.

@mstreit
Copy link
Member

mstreit commented Jul 4, 2013

7c73e74 solves the problem.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants