Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/pages/AbstractPapyrusPreferencePage.java')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/pages/AbstractPapyrusPreferencePage.java294
1 files changed, 49 insertions, 245 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/pages/AbstractPapyrusPreferencePage.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/pages/AbstractPapyrusPreferencePage.java
index 016e82ccafa..f4083f0579e 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/pages/AbstractPapyrusPreferencePage.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.preferences/src/org/eclipse/papyrus/infra/gmfdiag/preferences/pages/AbstractPapyrusPreferencePage.java
@@ -1,245 +1,49 @@
-/****************************************************************************
- * Copyright (c) 2008 Atos Origin.
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Thibault Landre (Atos Origin) - Initial API and implementation
- *
- *****************************************************************************/
-package org.eclipse.papyrus.infra.gmfdiag.preferences.pages;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.papyrus.infra.gmfdiag.preferences.Activator;
-import org.eclipse.papyrus.infra.gmfdiag.preferences.pages.internal.VisiblePageSingleton;
-import org.eclipse.papyrus.infra.gmfdiag.preferences.ui.AbstractGroup;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.IWorkbenchPropertyPage;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-
-/**
- * An abstract implementation of a Preference page.
- *
- * This preference page allows clients to define preference page in the preference of Eclipse, and
- * in the properties of a project in the workspace.
- * <p>
- * Clients must implement :
- * <ul>
- * <li><code>getBundleId()</code> method in order to define the preference scope (Project or Instance) of the preference page.</li>
- * <li><code>createPageContents()</code> method to populate the preference page with the different {@link AbstractGroup}. </br>Each group added has to be declared through the <code>addAbstractGroup(AbstractGroup fe)</code> method</li>
- * </ul>
- * </p>
- */
-public abstract class AbstractPapyrusPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, IWorkbenchPropertyPage {
-
- private IProject project;
-
- private Set<AbstractGroup> groupSet;
-
- private String key;
-
- /**
- * @see org.eclipse.ui.IWorkbenchPropertyPage#getElement()
- */
- public IAdaptable getElement() {
- return project;
- }
-
- protected void setPreferenceKey(String aKey) {
- this.key = aKey;
- }
-
- protected String getPreferenceKey() {
- return this.key;
- }
-
- @Override
- public IPreferenceStore getPreferenceStore() {
- return Activator.getDefault().getPreferenceStore();
- }
-
- /**
- * @see org.eclipse.ui.IWorkbenchPropertyPage#setElement(org.eclipse.core.runtime.IAdaptable)
- */
- public void setElement(IAdaptable element) {
- project = (IProject) element.getAdapter(IResource.class);
- }
-
- /**
- * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
- */
- @Override
- protected IPreferenceStore doGetPreferenceStore() {
- IPreferenceStore store;
- if (project != null) {
- store = new ScopedPreferenceStore(new ProjectScope(project), getBundleId());
- } else {
- store = new ScopedPreferenceStore(new InstanceScope(), getBundleId());
- }
- return store;
- }
-
- /**
- * Initializes this preference page for the given workbench.
- *
- * @param workbench
- * the workbench
- *
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- *
- */
- public void init(IWorkbench workbench) {
- // Do nothing
- }
-
- /**
- * Create the Papyrus preference page and inits the different fields editor contained in the
- * page.
- * <p>
- * This method shouldn't be overriden by sub-classes
- * </p>
- * {@inheritDoc}
- */
- @Override
- protected Control createContents(Composite parent) {
- // Create the container composite
- Composite container = new Composite(parent, SWT.NONE);
- GridLayout containerLayout = new GridLayout();
- container.setLayout(containerLayout);
-
- createPageContents(container);
-
- initGroup();
-
- return container;
- }
-
- /**
- * Populate the preference page with the different field editor.
- * <p>
- * Each field added has to be declared through the <code>addEditorFields(FieldEditor fe)</code> method
- * </p>
- *
- * @param parent
- * the parent composite
- */
- protected abstract void createPageContents(Composite parent);
-
- /**
- * Add the given field editor to the page.
- */
- protected void addAbstractGroup(AbstractGroup fe) {
- if (groupSet == null) {
- groupSet = new HashSet<AbstractGroup>();
- }
- groupSet.add(fe);
- }
-
- @Override
- public boolean performOk() {
- VisiblePageSingleton.getInstance().store();
- return super.performOk();
- }
-
- /**
- * Stores the values of the fields contained in this page into the preference store.
- */
- protected void storePreferences() {
- if (groupSet != null) {
- for (AbstractGroup gs : groupSet) {
- gs.storePreferences();
- }
- }
- }
-
- /**
- * Store all preferences
- */
- public void storeAllPreferences() {
- storePreferences();
-
- }
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
- */
- @Override
- protected void performDefaults() {
- loadDefaultPreferences();
- super.performDefaults();
- }
-
- /**
- * Load the default preferences of the fields contained in this page
- */
- private void loadDefaultPreferences() {
- if (groupSet != null) {
- for (AbstractGroup gs : groupSet) {
- gs.loadDefault();
- }
- }
-
- }
-
- /**
- * Init groups contained in this page.
- */
- private void initGroup() {
- if (groupSet != null) {
- for (AbstractGroup gs : groupSet) {
- gs.setPreferenceStore(getPreferenceStore());
- gs.load();
- }
- }
- }
-
- @Override
- public void dispose() {
- super.dispose();
- if (groupSet != null) {
- for (AbstractGroup gs : groupSet) {
- gs.dispose();
- }
- }
-
-
- }
-
- @Override
- public void setVisible(boolean visible) {
- // TODO Auto-generated method stub
- if (visible == true) {
- VisiblePageSingleton.getInstance().setVisiblePage(this);
- initGroup();
- }
- super.setVisible(visible);
-
- }
-
- /**
- * The bundle ID used to defined the preference store
- *
- * @return String
- */
- protected abstract String getBundleId();
-
-}
+/****************************************************************************
+ * Copyright (c) 2008 Atos Origin.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Thibault Landre (Atos Origin) - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.preferences.pages;
+
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.eclipse.papyrus.infra.gmfdiag.preferences.Activator;
+import org.eclipse.papyrus.infra.gmfdiag.preferences.ui.AbstractGroup;
+
+/**
+ * An abstract implementation of a Preference page.
+ *
+ * This preference page allows clients to define preference page in the preference of Eclipse, and
+ * in the properties of a project in the workspace.
+ * <p>
+ * Clients must implement :
+ * <ul>
+ * <li><code>getBundleId()</code> method in order to define the preference scope (Project or Instance) of the preference page.</li>
+ * <li><code>createPageContents()</code> method to populate the preference page with the different {@link AbstractGroup}. </br>
+ * Each group added has to be declared through the <code>addAbstractGroup(AbstractGroup fe)</code> method</li>
+ * </ul>
+ * </p>
+ *
+ * @deprecated Use the {@link org.eclipse.papyrus.infra.ui.preferences.AbstractPapyrusPreferencePage} API, instead.
+ */
+@Deprecated
+public abstract class AbstractPapyrusPreferencePage extends org.eclipse.papyrus.infra.ui.preferences.AbstractPapyrusPreferencePage {
+
+ @Override
+ public IPreferenceStore getPreferenceStore() {
+ return Activator.getDefault().getPreferenceStore();
+ }
+
+ /**
+ * Add the given {@code group} of field editors to the page.
+ */
+ protected void addAbstractGroup(AbstractGroup fe) {
+ addPreferenceGroup(fe);
+ }
+}

Back to the top