Medical Imaging Interaction Toolkit  2018.4.99-4c24e3cb
Medical Imaging Interaction Toolkit
berryWorkbenchAdvisor.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #include "berryWorkbenchAdvisor.h"
14 
15 #include <Poco/Exception.h>
16 
17 namespace berry
18 {
19 
21 {
22  // do nothing
23 }
24 
26 {
27 }
28 
30 {
31  if (workbenchConfigurer.IsNotNull())
32  {
33  throw Poco::IllegalStateException();
34  }
35  this->workbenchConfigurer = configurer;
36  this->Initialize(configurer);
37 }
38 
40 {
41  // do nothing
42 }
43 
45 {
46  return workbenchConfigurer;
47 }
48 
50 {
51  // do nothing
52 }
53 
55 {
56  // do nothing
57 }
58 
60 {
61  return true;
62 }
63 
65 {
66  // do nothing
67 }
68 
70 {
71  // default: no input
72  return nullptr;
73 }
74 
76 {
77  // default: no opinion
78  return "";
79 }
80 
82 {
83  // final Display display = PlatformUI.getWorkbench().getDisplay();
84  // final boolean result [] = new boolean[1];
85  //
86  // // spawn another init thread. For API compatibility We guarantee this method is called from
87  // // the UI thread but it could take enough time to disrupt progress reporting.
88  // // spawn a new thread to do the grunt work of this initialization and spin the event loop
89  // // ourselves just like it's done in Workbench.
90  // final boolean[] initDone = new boolean[]{false};
91  // final Throwable [] error = new Throwable[1];
92  // Thread initThread = new Thread() {
93  // /* (non-Javadoc)
94  // * @see java.lang.Thread#run()
95  // */
96  // void run() {
97  // try {
98  // //declare us to be a startup thread so that our syncs will be executed
99  // UISynchronizer.startupThread.set(Boolean.TRUE);
100  // final IWorkbenchConfigurer [] myConfigurer = new IWorkbenchConfigurer[1];
101  // StartupThreading.runWithoutExceptions(new StartupRunnable() {
102  //
103  // void runWithException() throws Throwable {
104  // myConfigurer[0] = getWorkbenchConfigurer();
105  //
106  // }});
107  //
108  // IStatus status = myConfigurer[0].restoreState();
109  // if (!status.isOK()) {
110  // if (status.getCode() == IWorkbenchConfigurer.RESTORE_CODE_EXIT) {
111  // result[0] = false;
112  // return;
113  // }
114  // if (status.getCode() == IWorkbenchConfigurer.RESTORE_CODE_RESET) {
115  // myConfigurer[0].openFirstTimeWindow();
116  // }
117  // }
118  // result[0] = true;
119  // } catch (Throwable e) {
120  // error[0] = e;
121  // }
122  // finally {
123  // initDone[0] = true;
124  // display.wake();
125  // }
126  // }};
127  // initThread.start();
128  //
129  // while (true) {
130  // if (!display.readAndDispatch()) {
131  // if (initDone[0])
132  // break;
133  // display.sleep();
134  // }
135  //
136  // }
137  //
138  // // can only be a runtime or error
139  // if (error[0] instanceof Error)
140  // throw (Error)error[0];
141  // else if (error[0] instanceof RuntimeException)
142  // throw (RuntimeException)error[0];
143  //
144  // return result[0];
145 
147 
148  bool status = myConfigurer->RestoreState();
149  if (!status)
150  {
151  myConfigurer->OpenFirstTimeWindow();
152  }
153  return true;
154 }
155 
157 {
158  return true;
159 }
160 
162 {
163  return true;
164 }
165 
166 }
virtual bool RestoreState(IMemento::Pointer memento)
virtual QString GetMainPreferencePageId()
berry::SmartPointer< Self > Pointer
Definition: berryObject.h:82
virtual IAdaptable * GetDefaultPageInput()
virtual void Initialize(IWorkbenchConfigurer::Pointer configurer)
void InternalBasicInitialize(IWorkbenchConfigurer::Pointer configurer)
IWorkbenchConfigurer::Pointer GetWorkbenchConfigurer()
virtual bool SaveState(IMemento::Pointer memento)