View | Details | Raw Unified | Return to bug 85373 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse UI/org/eclipse/ui/application/IWorkbenchConfigurer.java (+24 lines)
Lines 13-20 Link Here
13
import org.eclipse.core.runtime.IStatus;
13
import org.eclipse.core.runtime.IStatus;
14
import org.eclipse.jface.resource.ImageDescriptor;
14
import org.eclipse.jface.resource.ImageDescriptor;
15
import org.eclipse.jface.window.WindowManager;
15
import org.eclipse.jface.window.WindowManager;
16
import org.eclipse.ui.IMemento;
16
import org.eclipse.ui.IWorkbench;
17
import org.eclipse.ui.IWorkbench;
17
import org.eclipse.ui.IWorkbenchWindow;
18
import org.eclipse.ui.IWorkbenchWindow;
19
import org.eclipse.ui.WorkbenchException;
18
20
19
/**
21
/**
20
 * Interface providing special access for configuring the workbench.
22
 * Interface providing special access for configuring the workbench.
Lines 75-80 Link Here
75
     * 	<code>false</code> to forget current workbench state on close.
77
     * 	<code>false</code> to forget current workbench state on close.
76
     */
78
     */
77
    public void setSaveAndRestore(boolean enabled);
79
    public void setSaveAndRestore(boolean enabled);
80
81
	/**
82
	 * Saves the current state of the specified workbench window 
83
	 * using the specified memento.
84
	 * 
85
	 * @param window the window to be recorded
86
	 * @param memento the storage area for object's state
87
	 * @return a status object indicating whether the save was successful
88
	 * @since 3.1
89
	 */
90
	public IStatus recordWorkbenchWindowState(IWorkbenchWindow window, IMemento memento);
91
	
92
	/**
93
	 * Restores a workbench window with state using the specified memento.
94
	 * 
95
	 * @param memento the storage area for object's state
96
	 * @return the <code>IWorkbenchWindow</code> that is restored or null if there was an error.
97
	 * @throws WorkbenchException 
98
	 * @since 3.1
99
	 */
100
	public IWorkbenchWindow restoreWorkbenchWindow(IMemento memento)
101
			throws WorkbenchException;
78
102
79
    /**
103
    /**
80
     * Returns the workbench window manager.
104
     * Returns the workbench window manager.
(-)Eclipse UI/org/eclipse/ui/internal/Workbench.java (+25 lines)
Lines 1301-1307 Link Here
1301
					WorkbenchMessages.Abnormal_Workbench_Conditi);
1301
					WorkbenchMessages.Abnormal_Workbench_Conditi);
1302
		}
1302
		}
1303
	}
1303
	}
1304
	
1305
	/* (non-Javadoc)
1306
	 * @see org.eclipse.ui.IWorkbench#restoreWorkbenchWindow(org.eclipse.ui.IMemento)
1307
	 */
1308
	IWorkbenchWindow restoreWorkbenchWindow(IMemento memento) throws WorkbenchException {
1309
		WorkbenchWindow newWindow = newWorkbenchWindow();
1310
		newWindow.create();
1304
1311
1312
		windowManager.add(newWindow);
1313
1314
		// whether the window was opened
1315
		boolean opened = false;
1316
1317
		try {
1318
			newWindow.restoreState(memento, null);
1319
			newWindow.fireWindowRestored();
1320
			newWindow.open();
1321
			opened = true;
1322
		} finally {
1323
			if (!opened)
1324
				newWindow.close();
1325
		}
1326
1327
		return newWindow;
1328
	}
1329
	
1305
	/*
1330
	/*
1306
	 * Record the workbench UI in a document
1331
	 * Record the workbench UI in a document
1307
	 */
1332
	 */
(-)Eclipse UI/org/eclipse/ui/internal/WorkbenchConfigurer.java (+16 lines)
Lines 16-24 Link Here
16
import org.eclipse.core.runtime.IStatus;
16
import org.eclipse.core.runtime.IStatus;
17
import org.eclipse.jface.resource.ImageDescriptor;
17
import org.eclipse.jface.resource.ImageDescriptor;
18
import org.eclipse.jface.window.WindowManager;
18
import org.eclipse.jface.window.WindowManager;
19
import org.eclipse.ui.IMemento;
19
import org.eclipse.ui.IWorkbench;
20
import org.eclipse.ui.IWorkbench;
20
import org.eclipse.ui.IWorkbenchWindow;
21
import org.eclipse.ui.IWorkbenchWindow;
21
import org.eclipse.ui.PlatformUI;
22
import org.eclipse.ui.PlatformUI;
23
import org.eclipse.ui.WorkbenchException;
22
import org.eclipse.ui.application.IWorkbenchConfigurer;
24
import org.eclipse.ui.application.IWorkbenchConfigurer;
23
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
25
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
24
import org.eclipse.ui.application.WorkbenchAdvisor;
26
import org.eclipse.ui.application.WorkbenchAdvisor;
Lines 177-180 Link Here
177
    public void openFirstTimeWindow() {
179
    public void openFirstTimeWindow() {
178
        ((Workbench) getWorkbench()).openFirstTimeWindow();
180
        ((Workbench) getWorkbench()).openFirstTimeWindow();
179
    }
181
    }
182
183
	/* (non-Javadoc)
184
	 * @see org.eclipse.ui.application.IWorkbenchConfigurer#recordWorkbenchWindowState(org.eclipse.ui.IWorkbenchWindow, org.eclipse.ui.IMemento)
185
	 */
186
	public IStatus recordWorkbenchWindowState(IWorkbenchWindow window, IMemento memento) {
187
		return ((WorkbenchWindow)window).saveState(memento);
188
	}
189
190
	/* (non-Javadoc)
191
	 * @see org.eclipse.ui.application.IWorkbenchConfigurer#restoreWorkbenchWindow(org.eclipse.ui.IMemento)
192
	 */
193
	public IWorkbenchWindow restoreWorkbenchWindow(IMemento memento) throws WorkbenchException {
194
		return ((Workbench)getWorkbench()).restoreWorkbenchWindow(memento);
195
	}
180
}
196
}

Return to bug 85373