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 268442
Collapse All | Expand All

(-)plugin.xml (+6 lines)
Lines 229-232 Link Here
229
       </enabledWhen>
229
       </enabledWhen>
230
    </page>
230
    </page>
231
 </extension>
231
 </extension>
232
 <extension
233
       point="org.eclipse.core.runtime.preferences">
234
    <initializer
235
          class="org.eclipse.jst.pagedesigner.ui.preferences.PDPreferences">
236
    </initializer>
237
 </extension>
232
</plugin>
238
</plugin>
(-)META-INF/MANIFEST.MF (+1 lines)
Lines 118-123 Link Here
118
 org.eclipse.jst.pagedesigner.ui.common.sash;x-internal:=true,
118
 org.eclipse.jst.pagedesigner.ui.common.sash;x-internal:=true,
119
 org.eclipse.jst.pagedesigner.ui.dialogfields;x-internal:=true,
119
 org.eclipse.jst.pagedesigner.ui.dialogfields;x-internal:=true,
120
 org.eclipse.jst.pagedesigner.ui.dialogs;x-internal:=true,
120
 org.eclipse.jst.pagedesigner.ui.dialogs;x-internal:=true,
121
 org.eclipse.jst.pagedesigner.ui.preferences;x-internal:=true,
121
 org.eclipse.jst.pagedesigner.utils;x-internal:=true,
122
 org.eclipse.jst.pagedesigner.utils;x-internal:=true,
122
 org.eclipse.jst.pagedesigner.validation.caret;x-internal:=true,
123
 org.eclipse.jst.pagedesigner.validation.caret;x-internal:=true,
123
 org.eclipse.jst.pagedesigner.viewer;x-internal:=true
124
 org.eclipse.jst.pagedesigner.viewer;x-internal:=true
(-)src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java (-1 / +38 lines)
Lines 30-35 Link Here
30
import org.eclipse.gef.EditPart;
30
import org.eclipse.gef.EditPart;
31
import org.eclipse.gef.ui.views.palette.PalettePage;
31
import org.eclipse.gef.ui.views.palette.PalettePage;
32
import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
32
import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
33
import org.eclipse.jface.preference.IPreferenceStore;
33
import org.eclipse.jface.text.IDocument;
34
import org.eclipse.jface.text.IDocument;
34
import org.eclipse.jface.text.TextSelection;
35
import org.eclipse.jface.text.TextSelection;
35
import org.eclipse.jface.viewers.IPostSelectionProvider;
36
import org.eclipse.jface.viewers.IPostSelectionProvider;
Lines 51-56 Link Here
51
import org.eclipse.jst.pagedesigner.tools.RangeSelectionTool;
52
import org.eclipse.jst.pagedesigner.tools.RangeSelectionTool;
52
import org.eclipse.jst.pagedesigner.ui.common.PartActivationHandler;
53
import org.eclipse.jst.pagedesigner.ui.common.PartActivationHandler;
53
import org.eclipse.jst.pagedesigner.ui.common.sash.SashEditorPart;
54
import org.eclipse.jst.pagedesigner.ui.common.sash.SashEditorPart;
55
import org.eclipse.jst.pagedesigner.ui.preferences.PDPreferences;
56
import org.eclipse.jst.pagedesigner.utils.EditorUtil;
54
import org.eclipse.jst.pagedesigner.utils.PreviewUtil;
57
import org.eclipse.jst.pagedesigner.utils.PreviewUtil;
55
import org.eclipse.swt.SWT;
58
import org.eclipse.swt.SWT;
56
import org.eclipse.swt.layout.FillLayout;
59
import org.eclipse.swt.layout.FillLayout;
Lines 255-260 Link Here
255
		};
258
		};
256
		int sashIndex = addPage(_sashEditorPart, getEditorInput());
259
		int sashIndex = addPage(_sashEditorPart, getEditorInput());
257
260
261
		// Set the sash editor mode from the stored file property
262
		// or the default preference
263
		initDesignerMode();
264
258
		setPageText(sashIndex, PDPlugin.getResourceString("HTMLEditor.Design")); //$NON-NLS-1$
265
		setPageText(sashIndex, PDPlugin.getResourceString("HTMLEditor.Design")); //$NON-NLS-1$
259
266
260
		// the update's critical, to get viewer selection manager and
267
		// the update's critical, to get viewer selection manager and
Lines 1036-1042 Link Here
1036
	 * @param mode
1043
	 * @param mode
1037
	 */
1044
	 */
1038
	public void setDesignerMode(int mode) {
1045
	public void setDesignerMode(int mode) {
1039
		if (_sashEditorPart != null) {
1046
		if (_sashEditorPart != null && _mode != mode) {
1040
			switch (mode) {
1047
			switch (mode) {
1041
			case MODE_SASH_HORIZONTAL:
1048
			case MODE_SASH_HORIZONTAL:
1042
				_sashEditorPart.setOrientation(SWT.HORIZONTAL);
1049
				_sashEditorPart.setOrientation(SWT.HORIZONTAL);
Lines 1051-1060 Link Here
1051
			default:
1058
			default:
1052
				_sashEditorPart.setOrientation(SWT.VERTICAL);
1059
				_sashEditorPart.setOrientation(SWT.VERTICAL);
1053
			}
1060
			}
1061
			if (getEditorInput() != null) {
1062
				EditorUtil.setEditorInputDesignModeProperty(getEditorInput(), String.valueOf(mode));
1063
			}
1054
		}
1064
		}
1055
		this._mode = mode;
1065
		this._mode = mode;
1056
	}
1066
	}
1057
1067
1068
	/*
1069
	 * Set the sash editor mode from the stored file property
1070
	 * or the default preference.
1071
	 */
1072
	private void initDesignerMode() {
1073
		int preferredMode = MODE_SASH_VERTICAL;
1074
1075
		// If the user has already selected a mode for the file, use it.
1076
		String prop = null;
1077
		if (getEditorInput() != null) {
1078
			prop = EditorUtil.getEditorInputDesignModeProperty(getEditorInput());
1079
		}
1080
		if (prop != null) {
1081
			try {
1082
				preferredMode = Integer.parseInt(prop);
1083
			} catch (NumberFormatException e) {
1084
				// do nothing;
1085
			}
1086
		} else {
1087
			// Otherwise, get the default mode from preferences.
1088
			IPreferenceStore pStore = PDPlugin.getDefault().getPreferenceStore();
1089
			preferredMode = pStore.getInt(PDPreferences.SASH_EDITOR_MODE_PREF);
1090
		}
1091
1092
		setDesignerMode(preferredMode);
1093
	}
1094
1058
	/**
1095
	/**
1059
	 * @return the current design mode
1096
	 * @return the current design mode
1060
	 */
1097
	 */
(-)src/org/eclipse/jst/pagedesigner/utils/EditorUtil.java (+72 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2009 Oracle Corporation.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/ 
8
package org.eclipse.jst.pagedesigner.utils;
9
10
import org.eclipse.core.resources.IResource;
11
import org.eclipse.core.runtime.CoreException;
12
import org.eclipse.core.runtime.QualifiedName;
13
import org.eclipse.ui.IEditorInput;
14
import org.eclipse.ui.ide.ResourceUtil;
15
16
/**
17
 * Utility class for Editor related information.
18
 * <br>
19
 * <p><b>Provisional API - subject to change</b></p>
20
 */
21
public class EditorUtil {
22
23
	private static final String PROPERTY_QUALIFIER = "org.eclipse.jst.pagedesigner"; //$NON-NLS-1$
24
    private static final String PERSIST_PROPERTY_NAME_DESIGNER_MODE = "DesignMode";  //$NON-NLS-1$
25
    private static final QualifiedName PERSIST_PROPERTY_KEY_DESIGNER_MODE = 
26
    	new QualifiedName(PROPERTY_QUALIFIER, PERSIST_PROPERTY_NAME_DESIGNER_MODE);
27
28
	/**
29
	 * Find the design mode property for the file resource of the
30
	 * editor input. If found, then return the property value,
31
	 * otherwise return null. 
32
	 * 
33
	 * @param editorInput
34
	 * @return user selected design mode for the editor input file
35
	 */
36
	public static String getEditorInputDesignModeProperty(IEditorInput editorInput) {
37
		String dmProperty = null;
38
		if (editorInput != null) {
39
			IResource res = ResourceUtil.getResource(editorInput);
40
			if (res != null) {
41
				try {
42
					dmProperty = res.getPersistentProperty(PERSIST_PROPERTY_KEY_DESIGNER_MODE);
43
				} catch (CoreException e) {
44
					// do nothing;
45
				}
46
			}
47
		}
48
49
		return dmProperty;
50
	}
51
52
	/**
53
	 * Save the design mode property for the file resource of the
54
	 * editor input. If the supplied mode is <code>null</code>,
55
	 * the persistent property is removed from this resource. 
56
	 * 
57
	 * @param editorInput
58
	 * @param mode user selected design mode to be saved
59
	 */
60
	public static void setEditorInputDesignModeProperty(IEditorInput editorInput, String mode) {
61
		if (editorInput != null) {
62
			IResource res = ResourceUtil.getResource(editorInput);
63
			if (res != null) {
64
				try {
65
					res.setPersistentProperty(PERSIST_PROPERTY_KEY_DESIGNER_MODE, mode);
66
				} catch (CoreException e) {
67
					// do nothing;
68
				}
69
			}
70
		}
71
	}
72
}
(-)src/org/eclipse/jst/pagedesigner/ui/preferences/PDPreferences.java (+39 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2009 Oracle Corporation.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *******************************************************************************/ 
8
package org.eclipse.jst.pagedesigner.ui.preferences;
9
10
import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
11
import org.eclipse.jface.preference.IPreferenceStore;
12
import org.eclipse.jst.pagedesigner.PDPlugin;
13
import org.eclipse.jst.pagedesigner.editors.HTMLEditor;
14
15
/**
16
 * Utility class for handling preferences related to the Web Page Editor plug-in.
17
 * <br>
18
 * <p><b>Provisional API - subject to change</b></p>
19
 */
20
public class PDPreferences extends AbstractPreferenceInitializer {
21
22
	/**
23
	 * Preference used to set modes for the page designer when displayed
24
	 * in a sash editor.
25
	 */
26
	public static final String SASH_EDITOR_MODE_PREF = 
27
		PDPreferences.class.getName() + ".sash_editor_mode"; //$NON-NLS-1$
28
29
	private static IPreferenceStore getPreferenceStore() {
30
		return PDPlugin.getDefault().getPreferenceStore();
31
	}
32
	
33
	@Override
34
	public void initializeDefaultPreferences() {
35
		// Set default HTML editor split vertical (i.e. with top and bottom pane)
36
		IPreferenceStore store = getPreferenceStore();
37
		store.setDefault(SASH_EDITOR_MODE_PREF, HTMLEditor.MODE_SASH_VERTICAL);
38
	}
39
}

Return to bug 268442