Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 44295 | Differences between
and this patch

Collapse All | Expand All

(-)Eclipse UI/org/eclipse/ui/internal/EditorReference.java (-1 / +2 lines)
Lines 645-651 Link Here
645
            site = manager.createSite(this, part, desc, editorInput);
645
            site = manager.createSite(this, part, desc, editorInput);
646
            
646
            
647
            // if there is saved state that's appropriate, pass it on
647
            // if there is saved state that's appropriate, pass it on
648
            if (part instanceof IPersistableEditor && editorState != null) {
648
            if (part instanceof IPersistableEditor && editorState != null
649
            		&& EditorManager.useIPersistableEditor()) {
649
				((IPersistableEditor) part).restoreState(editorState);
650
				((IPersistableEditor) part).restoreState(editorState);
650
			}
651
			}
651
            
652
            
(-)Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java (+1 lines)
Lines 387-392 Link Here
387
387
388
	// --- Workbench ---
388
	// --- Workbench ---
389
	public static String WorkbenchPreference_showMultipleEditorTabsButton;
389
	public static String WorkbenchPreference_showMultipleEditorTabsButton;
390
	public static String WorkbenchPreference_useIPersistableEditorButton;
390
	public static String WorkbenchPreference_showTextOnPerspectiveBar;
391
	public static String WorkbenchPreference_showTextOnPerspectiveBar;
391
	public static String WorkbenchPreference_stickyCycleButton;
392
	public static String WorkbenchPreference_stickyCycleButton;
392
	public static String WorkbenchPreference_RunInBackgroundButton;
393
	public static String WorkbenchPreference_RunInBackgroundButton;
(-)Eclipse UI/org/eclipse/ui/internal/IPreferenceConstants.java (+8 lines)
Lines 197-202 Link Here
197
    public static String SHOW_MULTIPLE_EDITOR_TABS = "SHOW_MULTIPLE_EDITOR_TABS"; //$NON-NLS-1$	
197
    public static String SHOW_MULTIPLE_EDITOR_TABS = "SHOW_MULTIPLE_EDITOR_TABS"; //$NON-NLS-1$	
198
198
199
    /**
199
    /**
200
     * Workbench preference to use the new IPersistableEditor interface
201
     * throughout the workbench new editor/open editor calls.
202
     * 
203
     * @since 3.3
204
     */
205
    public static String USE_IPERSISTABLE_EDITORS = "USE_IPERSISTABLE_EDITORS"; //$NON-NLS-1$
206
    
207
    /**
200
     * Preference to show user jobs in a dialog.
208
     * Preference to show user jobs in a dialog.
201
     */
209
     */
202
    public static String RUN_IN_BACKGROUND = "RUN_IN_BACKGROUND"; //$NON-NLS-1$
210
    public static String RUN_IN_BACKGROUND = "RUN_IN_BACKGROUND"; //$NON-NLS-1$
(-)Eclipse UI/org/eclipse/ui/internal/EditorManager.java (-1 / +8 lines)
Lines 1558-1564 Link Here
1558
				persistable.saveState(inputMem);
1558
				persistable.saveState(inputMem);
1559
				
1559
				
1560
				// any editors that want to persist state
1560
				// any editors that want to persist state
1561
				if (editor instanceof IPersistableEditor) {
1561
				if (editor instanceof IPersistableEditor
1562
						&& EditorManager.useIPersistableEditor()) {
1562
					IMemento editorState = editorMem
1563
					IMemento editorState = editorMem
1563
							.createChild(IWorkbenchConstants.TAG_EDITOR_STATE);
1564
							.createChild(IWorkbenchConstants.TAG_EDITOR_STATE);
1564
					((IPersistableEditor) editor).saveState(editorState);
1565
					((IPersistableEditor) editor).saveState(editorState);
Lines 1634-1637 Link Here
1634
		}
1635
		}
1635
		return null;
1636
		return null;
1636
	}
1637
	}
1638
	
1639
	public static boolean useIPersistableEditor() {
1640
		IPreferenceStore store = WorkbenchPlugin.getDefault()
1641
				.getPreferenceStore();
1642
		return store.getBoolean(IPreferenceConstants.USE_IPERSISTABLE_EDITORS);
1643
	}
1637
}
1644
}
(-)Eclipse UI/org/eclipse/ui/internal/messages.properties (+1 lines)
Lines 345-350 Link Here
345
345
346
# --- Workbench ---
346
# --- Workbench ---
347
WorkbenchPreference_showMultipleEditorTabsButton = Show &multiple editor tabs
347
WorkbenchPreference_showMultipleEditorTabsButton = Show &multiple editor tabs
348
WorkbenchPreference_useIPersistableEditorButton = &Use editor state persistance
348
WorkbenchPreference_showTextOnPerspectiveBar = S&how text on the perspective bar
349
WorkbenchPreference_showTextOnPerspectiveBar = S&how text on the perspective bar
349
WorkbenchPreference_stickyCycleButton = Keep &next/previous editor, view and perspectives dialog open
350
WorkbenchPreference_stickyCycleButton = Keep &next/previous editor, view and perspectives dialog open
350
WorkbenchPreference_RunInBackgroundButton=Always r&un in background
351
WorkbenchPreference_RunInBackgroundButton=Always r&un in background
(-)Eclipse UI/org/eclipse/ui/internal/WorkbenchPreferenceInitializer.java (+1 lines)
Lines 62-67 Link Here
62
		node.putInt(IPreferenceConstants.EDITOR_TAB_POSITION, SWT.TOP);
62
		node.putInt(IPreferenceConstants.EDITOR_TAB_POSITION, SWT.TOP);
63
63
64
		node.putBoolean(IPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS, true);
64
		node.putBoolean(IPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS, true);
65
		node.putBoolean(IPreferenceConstants.USE_IPERSISTABLE_EDITORS, true);
65
66
66
		node.putInt(IPreferenceConstants.EDITOR_TAB_WIDTH, 3); // high
67
		node.putInt(IPreferenceConstants.EDITOR_TAB_WIDTH, 3); // high
67
		node.putInt(IPreferenceConstants.OPEN_VIEW_MODE,
68
		node.putInt(IPreferenceConstants.OPEN_VIEW_MODE,
(-)Eclipse UI/org/eclipse/ui/internal/actions/NewEditorAction.java (-1 / +3 lines)
Lines 18-23 Link Here
18
import org.eclipse.ui.PartInitException;
18
import org.eclipse.ui.PartInitException;
19
import org.eclipse.ui.XMLMemento;
19
import org.eclipse.ui.XMLMemento;
20
import org.eclipse.ui.internal.ActiveEditorAction;
20
import org.eclipse.ui.internal.ActiveEditorAction;
21
import org.eclipse.ui.internal.EditorManager;
21
import org.eclipse.ui.internal.IWorkbenchConstants;
22
import org.eclipse.ui.internal.IWorkbenchConstants;
22
import org.eclipse.ui.internal.WorkbenchMessages;
23
import org.eclipse.ui.internal.WorkbenchMessages;
23
import org.eclipse.ui.internal.WorkbenchPage;
24
import org.eclipse.ui.internal.WorkbenchPage;
Lines 56-62 Link Here
56
			return;
57
			return;
57
		}
58
		}
58
		try {
59
		try {
59
			if (editor instanceof IPersistableEditor) {
60
			if (editor instanceof IPersistableEditor 
61
					&& EditorManager.useIPersistableEditor()) {
60
				XMLMemento editorState = XMLMemento
62
				XMLMemento editorState = XMLMemento
61
						.createWriteRoot(IWorkbenchConstants.TAG_EDITOR_STATE);
63
						.createWriteRoot(IWorkbenchConstants.TAG_EDITOR_STATE);
62
				((IPersistableEditor) editor).saveState(editorState);
64
				((IPersistableEditor) editor).saveState(editorState);
(-)Eclipse UI/org/eclipse/ui/internal/presentations/SystemMenuNewEditor.java (-1 / +3 lines)
Lines 18-23 Link Here
18
import org.eclipse.ui.PartInitException;
18
import org.eclipse.ui.PartInitException;
19
import org.eclipse.ui.PlatformUI;
19
import org.eclipse.ui.PlatformUI;
20
import org.eclipse.ui.XMLMemento;
20
import org.eclipse.ui.XMLMemento;
21
import org.eclipse.ui.internal.EditorManager;
21
import org.eclipse.ui.internal.IWorkbenchConstants;
22
import org.eclipse.ui.internal.IWorkbenchConstants;
22
import org.eclipse.ui.internal.WorkbenchMessages;
23
import org.eclipse.ui.internal.WorkbenchMessages;
23
import org.eclipse.ui.internal.WorkbenchPage;
24
import org.eclipse.ui.internal.WorkbenchPage;
Lines 69-75 Link Here
69
						String editorId = editor.getSite().getId();
70
						String editorId = editor.getSite().getId();
70
						if (editorId != null) {
71
						if (editorId != null) {
71
							try {
72
							try {
72
								if (editor instanceof IPersistableEditor) {
73
								if (editor instanceof IPersistableEditor
74
										&& EditorManager.useIPersistableEditor()) {
73
									XMLMemento editorState = XMLMemento
75
									XMLMemento editorState = XMLMemento
74
											.createWriteRoot(IWorkbenchConstants.TAG_EDITOR_STATE);
76
											.createWriteRoot(IWorkbenchConstants.TAG_EDITOR_STATE);
75
									((IPersistableEditor) editor)
77
									((IPersistableEditor) editor)
(-)Eclipse UI/org/eclipse/ui/internal/dialogs/EditorsPreferencePage.java (-2 / +19 lines)
Lines 54-59 Link Here
54
54
55
    protected Button showMultipleEditorTabs;
55
    protected Button showMultipleEditorTabs;
56
56
57
    protected Button useIPersistableEditor;
58
57
    private Composite editorReuseIndentGroup;
59
    private Composite editorReuseIndentGroup;
58
60
59
    private Composite editorReuseThresholdGroup;
61
    private Composite editorReuseThresholdGroup;
Lines 82-87 Link Here
82
        createEditorHistoryGroup(composite);
84
        createEditorHistoryGroup(composite);
83
85
84
        createSpace(composite);
86
        createSpace(composite);
87
        createUseIPersistablePref(composite);
85
        createShowMultipleEditorTabsPref(composite);
88
        createShowMultipleEditorTabsPref(composite);
86
		createEditorReuseGroup(composite);
89
		createEditorReuseGroup(composite);
87
		((TabBehaviour)Tweaklets.get(TabBehaviour.class)).setPreferenceVisibility(editorReuseGroup, showMultipleEditorTabs);
90
		((TabBehaviour)Tweaklets.get(TabBehaviour.class)).setPreferenceVisibility(editorReuseGroup, showMultipleEditorTabs);
Lines 112-117 Link Here
112
        setButtonLayoutData(showMultipleEditorTabs);
115
        setButtonLayoutData(showMultipleEditorTabs);
113
    }
116
    }
114
117
118
    protected void createUseIPersistablePref(Composite composite) {
119
        useIPersistableEditor = new Button(composite, SWT.CHECK);
120
        useIPersistableEditor.setText(WorkbenchMessages.WorkbenchPreference_useIPersistableEditorButton);
121
        useIPersistableEditor.setFont(composite.getFont());
122
        useIPersistableEditor.setSelection(getPreferenceStore().getBoolean(
123
                IPreferenceConstants.USE_IPERSISTABLE_EDITORS));
124
        setButtonLayoutData(useIPersistableEditor);
125
    }
126
    
115
    protected Composite createComposite(Composite parent) {
127
    protected Composite createComposite(Composite parent) {
116
        Composite composite = new Composite(parent, SWT.NULL);
128
        Composite composite = new Composite(parent, SWT.NULL);
117
        GridLayout layout = new GridLayout();
129
        GridLayout layout = new GridLayout();
Lines 131-138 Link Here
131
    protected void performDefaults() {
143
    protected void performDefaults() {
132
        IPreferenceStore store = getPreferenceStore();
144
        IPreferenceStore store = getPreferenceStore();
133
        showMultipleEditorTabs
145
        showMultipleEditorTabs
134
                .setSelection(store
146
				.setSelection(store
135
                        .getDefaultBoolean(IPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS));
147
						.getDefaultBoolean(IPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS));
148
		useIPersistableEditor
149
				.setSelection(store
150
						.getDefaultBoolean(IPreferenceConstants.USE_IPERSISTABLE_EDITORS));
136
        reuseEditors.setSelection(store
151
        reuseEditors.setSelection(store
137
                .getDefaultBoolean(IPreferenceConstants.REUSE_EDITORS_BOOLEAN));
152
                .getDefaultBoolean(IPreferenceConstants.REUSE_EDITORS_BOOLEAN));
138
        dirtyEditorReuseGroup.setEnabled(reuseEditors.getSelection());
153
        dirtyEditorReuseGroup.setEnabled(reuseEditors.getSelection());
Lines 154-159 Link Here
154
        IPreferenceStore store = getPreferenceStore();
169
        IPreferenceStore store = getPreferenceStore();
155
        store.setValue(IPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS,
170
        store.setValue(IPreferenceConstants.SHOW_MULTIPLE_EDITOR_TABS,
156
                showMultipleEditorTabs.getSelection());
171
                showMultipleEditorTabs.getSelection());
172
        store.setValue(IPreferenceConstants.USE_IPERSISTABLE_EDITORS,
173
                useIPersistableEditor.getSelection());
157
        
174
        
158
        // store the reuse editors setting
175
        // store the reuse editors setting
159
        store.setValue(IPreferenceConstants.REUSE_EDITORS_BOOLEAN, reuseEditors
176
        store.setValue(IPreferenceConstants.REUSE_EDITORS_BOOLEAN, reuseEditors
(-)src/org/eclipse/ui/internal/ide/dialogs/IDEEditorsPreferencePage.java (+1 lines)
Lines 56-61 Link Here
56
		createEditorHistoryGroup(composite);
56
		createEditorHistoryGroup(composite);
57
57
58
		createSpace(composite);
58
		createSpace(composite);
59
		createUseIPersistablePref(composite);
59
		createShowMultipleEditorTabsPref(composite);
60
		createShowMultipleEditorTabsPref(composite);
60
		createEditorReuseGroup(composite);
61
		createEditorReuseGroup(composite);
61
		((TabBehaviour)Tweaklets.get(TabBehaviour.class)).setPreferenceVisibility(editorReuseGroup, showMultipleEditorTabs);
62
		((TabBehaviour)Tweaklets.get(TabBehaviour.class)).setPreferenceVisibility(editorReuseGroup, showMultipleEditorTabs);

Return to bug 44295