ref #7006 Revert opcoach plugin for preferences
authorPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 26 Oct 2017 13:15:52 +0000 (15:15 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 26 Oct 2017 13:15:52 +0000 (15:15 +0200)
21 files changed:
eu.etaxonomy.taxeditor.bulkeditor/plugin.xml
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/DefaultFeatureTreePreferenecs.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/AbstractMatchingPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/NonViralNameMatchingPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/ReferenceMatchingPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/TeamOrPersonMatchingPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/AbstractMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/LanguageMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameRelationshipTypeMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/PresenceAbsenceMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/RankMenuPreferences.java
eu.etaxonomy.taxeditor.workbench/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.workbench/build.properties
eu.etaxonomy.taxeditor.workbench/fragment.e4xmi
eu.etaxonomy.taxeditor.workbench/schema/e4PreferencePages.exsd [deleted file]
eu.etaxonomy.taxeditor.workbench/schema/e4PreferenceStoreProvider.exsd [deleted file]
eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/E4PreferenceRegistry.java [deleted file]
eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/IPreferenceStoreProvider.java [deleted file]
eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/ScopedPreferenceStore.java [deleted file]
eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/handlers/E4PreferencesHandler.java [deleted file]

index f4607c067f838459e3743c5a4c01d59174d65e49..7ff8ad34c686a37460fb49d7f9266a53873f42de 100644 (file)
       </fragment>
    </extension>
    <extension
-         point="eu.etaxonomy.taxeditor.workbench.e4PreferencePages">
+         point="org.eclipse.ui.preferencePages">
       <page
             category="eu.etaxonomy.taxeditor.preferences.bulkeditor.general"
             class="eu.etaxonomy.taxeditor.bulkeditor.preference.BulkEditorMarkerPreferencePage"
index 866560eb8f48d5c74ac83729f3fc6c394f430f96..a5287f9622c2d373b6268008d4649acb585002c4 100755 (executable)
    </fragment>
 </extension>
 <extension
-      point="eu.etaxonomy.taxeditor.workbench.e4PreferencePages">
+      point="org.eclipse.ui.preferencePages">
    <page
          category="eu.etaxonomy.taxeditor.preferences.general"
          class="eu.etaxonomy.taxeditor.preference.DebugPreferences"
index b544093326d36e7b25884a31338be6290a172802..2168b53186558aa206e51ee6d68a5d214f515e6e 100644 (file)
@@ -11,8 +11,6 @@ package eu.etaxonomy.taxeditor.preference;
 
 import java.util.List;
 
-import javax.annotation.PostConstruct;
-
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.ListViewer;
@@ -24,11 +22,14 @@ import org.eclipse.swt.layout.GridData;
 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 eu.etaxonomy.cdm.api.service.IFeatureTreeService;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.taxeditor.featuretree.FeatureTreeContentProvider;
 import eu.etaxonomy.taxeditor.featuretree.FeatureTreeLabelProvider;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -39,7 +40,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Sep 16, 2010
  * @version 1.0
  */
-public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
+public class DefaultFeatureTreePreferenecs extends CdmPreferencePage implements IWorkbenchPreferencePage {
 
        private FeatureTree defaultFeatureTreeForTextualDescription;
        private FeatureTree defaultFeatureTreeForStructuredDescription;
@@ -49,24 +50,25 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
         */
        /** {@inheritDoc} */
        @Override
-       @PostConstruct
        protected Control createContents(Composite parent) {
                defaultFeatureTreeForTextualDescription = PreferencesUtil.getDefaultFeatureTreeForTextualDescription();
                defaultFeatureTreeForStructuredDescription = PreferencesUtil.getDefaultFeatureTreeForStructuredDescription();
 
                Composite composite = new Composite(parent, SWT.NULL);
                composite.setLayout(new GridLayout());
-               if(CdmStore.isActive()) {
+               if(!CdmStore.isActive()) {
+            MessagingUtils.noDataSourceWarningDialog(null);
+               }else{
                    createTextTreeSelection(composite);
                    createStructureTreeSelection(composite);
                }
-               init();
+
                return composite;
        }
 
        private void createTextTreeSelection(Composite parent){
                final CLabel label = new CLabel(parent, SWT.NONE);
-               label.setText("Deafult Feature Tree to be used for textual descriptions");
+               label.setText("Default Feature Tree to be used for textual descriptions");
 
                final ListViewer viewer = new ListViewer(parent);
                viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
@@ -125,7 +127,8 @@ public class DefaultFeatureTreePreferenecs extends CdmPreferencePage {
        }
 
        /** {@inheritDoc} */
-       public void init() {
+       @Override
+       public void init(IWorkbench workbench) {
                setPreferenceStore(PreferencesUtil.getPreferenceStore());
        }
 
index d7b961761fca97326a54449a1c363e92e30b6841..015b3fb44b546634cd23abba6aa0fde97ecdb57e 100644 (file)
@@ -12,20 +12,21 @@ package eu.etaxonomy.taxeditor.preference.matching;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.List;
-
-import javax.inject.Inject;
+import java.util.Map;
 
 import org.eclipse.jface.preference.ComboFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
 
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.cdm.strategy.match.MatchMode;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -34,7 +35,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created Jan 22, 2010
  * @version 1.0
  */
-public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity> extends FieldEditorPreferencePage {
+public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity> extends FieldEditorPreferencePage implements
+               IWorkbenchPreferencePage {
 
        /**
         * Fields that will be excluded from the display
@@ -42,16 +44,17 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
        private static final String ExcludePattern = "serialVersionUID|logger|allFields|ajc.*|id|updated|updatedBy|created|createdBy|uuid" +
                                "|parsingProblem|problemStarts|problemEnds|PROTECTED|NOT_PROTECTED|propertyChangeSupport";
 
+       protected IMatchStrategy matchStrategy;
+
        protected Class<T> clazz;
 
        private List<MatchMode> matchModeList;
 
-       @Inject
+       protected Map<String, Combo> matchModeCombos = new HashMap<String, Combo>();
+
     @Override
-    protected Control createContents(Composite parent) {
-        Control contents = super.createContents(parent);
+    public void init(IWorkbench workbench) {
         setPreferenceStore(PreferencesUtil.getPreferenceStore());
-        return contents;
     }
 
        /**
@@ -59,7 +62,9 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
         */
        @Override
        protected void createFieldEditors() {
-           if(CdmStore.isActive()) {
+           if(!CdmStore.isActive()) {
+            MessagingUtils.noDataSourceWarningDialog(null);
+        }else{
             for(String fieldName : getFieldNames()){
                 String[][] comboValues = new String[getMatchModeList().size()][2];
                 for (int i=0;i<getMatchModeList().size();i++) {
@@ -85,8 +90,6 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
                return matchModeList;
        }
 
-       public abstract Class<? extends CdmBase> getType();
-
        /**
         * Get names of all declared fields
         *
@@ -95,7 +98,7 @@ public abstract class AbstractMatchingPreferences<T extends IdentifiableEntity>
        private List<String> getFieldNames(){
                List<Field> fields = new ArrayList<Field>();
 
-               fields = getAllFields(fields, getType());
+               fields = getAllFields(fields, clazz);
                List<String> fieldNames = new ArrayList<String>();
 
                for(Field field : fields){
index c7682caa3d9eca4180f56e8a12497cb4fa727811..c90645912fdf4752a46344317848d47d8ac482f3 100644 (file)
@@ -9,11 +9,13 @@
 
 package eu.etaxonomy.taxeditor.preference.matching;
 
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import org.eclipse.ui.IWorkbench;
+
 import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
  * <p>NonViralNameMatchingPreference class.</p>
@@ -23,10 +25,19 @@ import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
  */
 public class NonViralNameMatchingPreference extends AbstractMatchingPreferences<TaxonName>{
 
-    @Override
-    public Class<? extends CdmBase> getType(){
-        return TaxonName.class;
-    }
+       /** {@inheritDoc} */
+       @Override
+    public void init(IWorkbench workbench) {
+           super.init(workbench);
+               clazz = TaxonName.class;
+
+               try {
+                       matchStrategy = MatchStrategyConfigurator.NonViralNameMatchStrategy();
+               } catch (MatchException e) {
+                       MessagingUtils.error(this.getClass(), e);
+                       throw new RuntimeException(e);
+               }
+       }
 
        /** {@inheritDoc} */
        @Override
index 0d0e9e1525af26f86740028bd6468923389adf25..fcf1a9ebe3975cb6291031699862a68e6b57dad6 100644 (file)
@@ -9,11 +9,13 @@
 
 package eu.etaxonomy.taxeditor.preference.matching;
 
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import org.eclipse.ui.IWorkbench;
+
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
  * @author n.hoffmann
@@ -22,11 +24,19 @@ import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
  */
 public class ReferenceMatchingPreference extends AbstractMatchingPreferences<Reference> {
 
+       /** {@inheritDoc} */
+       @Override
+    public void init(IWorkbench workbench) {
+           super.init(workbench);
+               clazz = Reference.class;
 
-    @Override
-    public Class<? extends CdmBase> getType(){
-        return Reference.class;
-    }
+               try {
+                       matchStrategy = MatchStrategyConfigurator.ReferenceMatchStrategy();
+               } catch (MatchException e) {
+                       MessagingUtils.error(this.getClass(), e);
+                       throw new RuntimeException(e);
+               }
+       }
 
        /** {@inheritDoc} */
        @Override
index 27c1c0bab69763e5a4b2746fc15bfd8db3010602..7b8b069e3c504d90c3aa4e1874e6d0a3751d27d0 100644 (file)
@@ -9,11 +9,13 @@
 
 package eu.etaxonomy.taxeditor.preference.matching;
 
+import org.eclipse.ui.IWorkbench;
+
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.strategy.match.IMatchStrategy;
 import eu.etaxonomy.cdm.strategy.match.MatchException;
 import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 
 /**
  * @author n.hoffmann
@@ -23,11 +25,19 @@ import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
 public class TeamOrPersonMatchingPreference extends
                AbstractMatchingPreferences<TeamOrPersonBase> {
 
+       /** {@inheritDoc} */
+       @Override
+    public void init(IWorkbench workbench) {
+           super.init(workbench);
+               clazz = TeamOrPersonBase.class;
 
-    @Override
-    public Class<? extends CdmBase> getType(){
-        return TeamOrPersonBase.class;
-    }
+               try {
+                       matchStrategy = MatchStrategyConfigurator.TeamOrPersonMatchStrategy();
+               } catch (MatchException e) {
+                       MessagingUtils.error(this.getClass(), e);
+                       throw new RuntimeException(e);
+               }
+       }
 
        /** {@inheritDoc} */
        @Override
index 600b5b6d87953241bded5eb14235f73d9b27114b..d396d7592cbe3b1e1c47b9661f8254ecbdbef20b 100644 (file)
@@ -13,8 +13,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-import javax.annotation.PostConstruct;
-
 import org.eclipse.core.commands.Command;
 import org.eclipse.core.commands.IParameter;
 import org.eclipse.core.commands.Parameterization;
@@ -31,6 +29,8 @@ import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 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.commands.ICommandService;
 import org.eclipse.ui.handlers.IHandlerService;
 
@@ -39,7 +39,7 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
-import eu.etaxonomy.taxeditor.editor.definedterm.DefinedTermEditor;
+import eu.etaxonomy.taxeditor.editor.definedterm.e4.DefinedTermEditorE4;
 import eu.etaxonomy.taxeditor.model.AbstractUtility;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
@@ -51,7 +51,8 @@ import eu.etaxonomy.taxeditor.store.TermStore;
  * @created 12.06.2009
  * @version 1.0
  */
-public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends CdmPreferencePage implements IConversationEnabled{
+public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends CdmPreferencePage implements
+               IWorkbenchPreferencePage, IConversationEnabled{
 
        private Button toggleButton;
        protected HashMap<DefinedTermBase<T>, Button> menuButtons;
@@ -98,7 +99,6 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
         * Create contents of the preference page
         */
        @Override
-       @PostConstruct
        public Control createContents(Composite parent) {
 
                Composite container = new Composite(parent, SWT.NULL);
@@ -147,8 +147,6 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
 
                createAdditionalContent(container);
 
-               init();
-
                return container;
        }
 
@@ -159,7 +157,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
                tableViewer.setCheckedElements(preferedTerms.toArray());
        }
 
-       protected void createAdditionalContent(@SuppressWarnings("unused") Composite container) {
+       protected void createAdditionalContent(Composite container) {
                // implement where needed
        }
 
@@ -183,7 +181,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
 
                                ICommandService commandService = (ICommandService)  AbstractUtility.getService(ICommandService.class);
 
-                               Command command = commandService.getCommand(DefinedTermEditor.OPEN_COMMAND_ID);
+                               Command command = commandService.getCommand(DefinedTermEditorE4.OPEN_COMMAND_ID);
 
                                IParameter parameter;
                                try {
@@ -201,7 +199,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
                                                        handlerService.executeCommand(pCommand, null);
                                                } catch (NotDefinedException e) {
                                                        throw new RuntimeException("Could not find open command: "
-                                                                       + DefinedTermEditor.OPEN_COMMAND_ID);
+                                                                       + DefinedTermEditorE4.OPEN_COMMAND_ID);
                                                } catch (Exception e) {
                                                        MessagingUtils
                                                                        .error(getClass(),
@@ -221,9 +219,13 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
        }
 
        /** {@inheritDoc} */
-    public void init() {
+       @Override
+    public void init(IWorkbench workbench) {
            setPreferenceStore(PreferencesUtil.getPreferenceStore());
-           if(CdmStore.isActive()) {
+           if(!CdmStore.isActive()) {
+               MessagingUtils.noDataSourceWarningDialog(null);
+
+           } else {
                getConversationHolder().bind();
            }
        }
@@ -270,8 +272,7 @@ public abstract class AbstractMenuPreferences<T extends DefinedTermBase> extends
 
        private boolean checkNoneChecked(){
 
-               if(tableViewer.getTable().getItems().length>0
-                       && tableViewer.getCheckedElements().length == 0){
+               if(tableViewer.getCheckedElements().length == 0){
                        setMessage("Please check at least one item", WARNING);
                        return true;
                }else{
index 532d6f49e3e484ac8457a22b9964936dd6ea28a4..f8f535dbe37d20644a50c94e554ab7f6ef0dc058 100644 (file)
@@ -9,8 +9,6 @@
 
 package eu.etaxonomy.taxeditor.preference.menu;
 
-import javax.annotation.PostConstruct;
-
 import org.eclipse.jface.viewers.ITableLabelProvider;
 import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.jface.viewers.ViewerComparator;
@@ -47,7 +45,6 @@ public class LanguageMenuPreferences extends AbstractMenuPreferences<Language> {
         */
        /** {@inheritDoc} */
        @Override
-       @PostConstruct
        public Control createContents(Composite parent) {
                Control control = super.createContents(parent);
 
index 07ab990e9828547419351f49bc64f7bcdb1c9a1f..e4f5c606669ce79e3e6e47a127c8d5bcdc0be4b2 100644 (file)
@@ -9,8 +9,6 @@
 
 package eu.etaxonomy.taxeditor.preference.menu;
 
-import javax.annotation.PostConstruct;
-
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
@@ -46,7 +44,6 @@ public class NameRelationshipTypeMenuPreferences extends
         */
        /** {@inheritDoc} */
        @Override
-    @PostConstruct
        public Control createContents(Composite parent) {
                Control container = super.createContents(parent);
                getTableViewer().setLabelProvider(new NameRelationLabelProvider());
index 49bdd339685013431835dcddc13906bcb0c426f2..7eee8b9fc25bbceaa612646a24502f76368c4254 100644 (file)
@@ -9,6 +9,8 @@
 
 package eu.etaxonomy.taxeditor.preference.menu;
 
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
 
@@ -19,7 +21,8 @@ import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
  * @created 25.06.2009
  * @version 1.0
  */
-public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTerm> {
+public class PresenceAbsenceMenuPreferences extends AbstractMenuPreferences<PresenceAbsenceTerm> implements
+               IWorkbenchPreferencePage {
 
        /**
         * <p>Constructor for PresenceAbsenceMenuPreferences.</p>
index 79225d96735eb4f414f46fa352e0aea48d774b7c..af0372a3ad0dbbb940b9b5d5fe00ed76c4a623c7 100644 (file)
@@ -13,6 +13,7 @@ import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchPreferencePage;
 
 import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.cdm.model.name.Rank;
@@ -27,7 +28,8 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
  * @created 17.09.2008
  * @version 1.0
  */
-public class RankMenuPreferences extends AbstractMenuPreferences<Rank> {
+public class RankMenuPreferences extends AbstractMenuPreferences<Rank> implements
+               IWorkbenchPreferencePage {
 
        /** Constant <code>PLUGIN_ID="eu.etaxonomy.taxeditor.preferences.rank"{trunked}</code> */
        public static final String PLUGIN_ID = "eu.etaxonomy.taxeditor.preferences.ranks";
index 7ea4ab59a44bd4f833284de35e1e8d72ae6c3a1b..2e9c366186bbec52f4572436de6d75c7165df1e3 100644 (file)
@@ -1,8 +1,6 @@
 Manifest-Version: 1.0
 Bundle-SymbolicName: eu.etaxonomy.taxeditor.workbench;singleton:=true
-Export-Package: com.opcoach.e4.preferences,
- com.opcoach.e4.preferences.handlers,
- eu.etaxonomy.taxeditor.bulkeditor,
+Export-Package: eu.etaxonomy.taxeditor.bulkeditor,
  eu.etaxonomy.taxeditor.workbench,
  eu.etaxonomy.taxeditor.workbench.part
 Bundle-Name: Workbench Bundle
index 8db32ff08dc867dece276947bc28bc89a15c6970..b9cce9e3f86595ba457a251f769fd21e8f4bb782 100644 (file)
@@ -5,5 +5,4 @@ bin.includes = META-INF/,\
                plugin.xml,\
                OSGI-INF/,\
                fragment.e4xmi,\
-               OSGI-INF/l10n/bundle.properties,\
-               schema/
+               OSGI-INF/l10n/bundle.properties
index 804af14ef89b9c451c181c8b96925f1f5139a28c..8f5880c48f870916133e6794cdfd4fa07c112795 100644 (file)
@@ -45,7 +45,7 @@
           <children xsi:type="menu:MenuSeparator" xmi:id="_OUNVYLMnEeeMU61m8yqdaA" elementId="eu.etaxonomy.taxeditor.workbench.menuseparator.referencing"/>
         </children>
         <children xsi:type="menu:MenuSeparator" xmi:id="_FaGnuCQNEeen_7LZsZSNoA" elementId="eu.etaxonomy.taxeditor.application.windowMenu.last"/>
-        <children xsi:type="menu:HandledMenuItem" xmi:id="_FaGnuSQNEeen_7LZsZSNoA" elementId="org.eclipse.ui.main.menu.window.preferences" label="%command.label.12" command="_gYnhIKnTEeeTAPHmaMLwQQ"/>
+        <children xsi:type="menu:HandledMenuItem" xmi:id="_FaGnuSQNEeen_7LZsZSNoA" elementId="org.eclipse.ui.main.menu.window.preferences" label="%command.label.12" command="_l9kXoB7PEeeC-JvycL9ysA"/>
       </children>
       <children xsi:type="menu:Menu" xmi:id="_FaGnuiQNEeen_7LZsZSNoA" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin" label="%menu.label.4" mnemonics="A">
         <children xsi:type="menu:HandledMenuItem" xmi:id="_b4RFsCQsEeeq76l4saMAFQ" elementId="eu.etaxonomy.taxeditor.workbench.menu.admin.dbpreferences" label="%command.label.23" command="_VawPsCQsEeeq76l4saMAFQ">
     <elements xsi:type="commands:Command" xmi:id="_hMjgECZsEeer_rabtodzWA" elementId="eu.etaxonomy.taxeditor.command.openPart" commandName="Open Part">
       <parameters xmi:id="_hMjgESZsEeer_rabtodzWA" elementId="eu.etaxonomy.taxeditor.workbench.commandparameter.partName" name="partName" optional="false"/>
     </elements>
-    <elements xsi:type="commands:Command" xmi:id="_gYnhIKnTEeeTAPHmaMLwQQ" elementId="eu.etaxonomy.taxeditor.workbench.preferences" commandName="%command.label.12"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_WLNcQCQsEeeq76l4saMAFQ" featurename="handlers" parentElementId="org.eclipse.e4.legacy.ide.application">
     <elements xsi:type="commands:Handler" xmi:id="_WLNcQSQsEeeq76l4saMAFQ" elementId="eu.etaxonomy.taxeditor.OpenExternalAboutPlatformHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.OpenExternalAboutPlatformHandler" command="_UZ2zYCQsEeeq76l4saMAFQ"/>
     <elements xsi:type="commands:Handler" xmi:id="_nSIiECUKEeeHw5lTgGMs1Q" elementId="eu.etaxonomy.taxeditor.handler.OpenImportPreferenceHandler" command="_fdEqUCUKEeeHw5lTgGMs1Q"/>
     <elements xsi:type="commands:Handler" xmi:id="_2fnUYCZ0EeeQLpuomSmVoQ" elementId="eu.etaxonomy.taxeditor.workbench.OpenPartHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.OpenPartHandler" command="_hMjgECZsEeer_rabtodzWA"/>
     <elements xsi:type="commands:Handler" xmi:id="_dBGosFp0Eee4PsIXei-TMg" elementId="eu.etaxonomy.taxeditor.workbench.SaveHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/eu.etaxonomy.taxeditor.workbench.SaveHandler" command="_X-56IFp0Eee4PsIXei-TMg"/>
-    <elements xsi:type="commands:Handler" xmi:id="_zP4pcKnQEeeTAPHmaMLwQQ" elementId="com.opcoach.e4.preferences.handlers.E4PreferencesHandler" contributionURI="bundleclass://eu.etaxonomy.taxeditor.workbench/com.opcoach.e4.preferences.handlers.E4PreferencesHandler" command="_gYnhIKnTEeeTAPHmaMLwQQ"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_Z4f0kFsaEeebk7BsM35KOg" featurename="children" parentElementId="org.eclipse.ui.contexts.dialogAndWindow">
     <elements xsi:type="commands:BindingContext" xmi:id="_5pEDMFsaEeebk7BsM35KOg" elementId="eu.etaxonomy.taxeditor.workbench.bindingcontext" name="Taxonomic Editor Keybinding Context"/>
diff --git a/eu.etaxonomy.taxeditor.workbench/schema/e4PreferencePages.exsd b/eu.etaxonomy.taxeditor.workbench/schema/e4PreferencePages.exsd
deleted file mode 100644 (file)
index bcae797..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="com.opcoach.e4.preferences" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="com.opcoach.e4.preferences" id="e4PreferencePages" name="e4PreferencePages"/>
-      </appinfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="page" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="page">
-      <annotation>
-         <appinfo>
-            <meta.element labelAttribute="name"/>
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="keywordReference" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a unique name that will be used to identify this page.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a translatable name that will be used in the UI for this page.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a name of the fully qualified class that implements 
-&lt;samp&gt;org.eclipse.jface.preference.IPreferencePage&lt;/samp&gt;.
-
-IT IS EASYER to extend FieldEditorPreferencePage 
-
-If this class extends directly org.eclipse.jface.preference.FieldEditorPreferencePage preferenceStore is automatically set on it.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.eclipse.jface.preference.FieldEditorPreferencePage:"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="category" type="string">
-            <annotation>
-               <documentation>
-                  a path indicating the location of the page in the preference tree. The path may either be a parent node ID or a sequence
-     of IDs separated by &apos;/&apos;, representing the full path from the root node.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier" basedOn="com.opcoach.e4.preferences.e4PreferencePages/page/@id"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="keywordReference">
-      <annotation>
-         <documentation>
-            A reference by a preference page to a keyword. See the keywords extension point.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the keyword being referred to.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier" basedOn="org.eclipse.ui.keywords/keyword/@id"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-
-</schema>
diff --git a/eu.etaxonomy.taxeditor.workbench/schema/e4PreferenceStoreProvider.exsd b/eu.etaxonomy.taxeditor.workbench/schema/e4PreferenceStoreProvider.exsd
deleted file mode 100644 (file)
index 93e4127..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="com.opcoach.e4.preferences" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="com.opcoach.e4.preferences" id="e4PreferenceStoreProvider" name="e4PreferenceStoreProvider"/>
-      </appinfo>
-      <documentation>
-         This extension point is used to associate a preference store to a plugin. 
-You can choose either to implement the IPreferenceStoreProvider interface or to give the ID of the IPreferenceStore to use (stored in the workbench context of your E4 application). 
-If this extension point is not used, a default ScopedPreferenceStore will be used for the preference page. 
-
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="preferenceStoreProvider" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="preferenceStoreProvider">
-      <complexType>
-         <attribute name="pluginId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Set here the plugin Id concerned by this extension. 
-Must be a valid plugin ID (control will be done at runtime)
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  Set a class to get the IPreferenceStore for the defined pluginID. 
-This parameter is optional if you use the contextId attribute.
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn=":com.opcoach.e4.preferences.IPreferenceStoreProvider"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="idInWorkbenchContext" type="string">
-            <annotation>
-               <documentation>
-                  If no class is defined, you can set here the ID of the IPreferenceStore available in the context. 
-This object must be set in the workbenchContext using an Addon for instance, with the following code (in addon): 
-
-@PostContextCreate
-public void initMyAddon(IEclipseContext ctx)
-{
-    IPreferenceStore ps = new ... .  // The code to create your pref store
-    ctx.set(ID set in this extension,  ps);
-}
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         The definition could be like the following : 
-
-pluginId=&quot;yourPluginID&quot;
-provider=&quot;a class implementing IPreferenceStoreProvider&quot;
-
-
-Or using the key in context (usefull to share the same preference store between plugins) : 
-
-pluginId=&quot;yourPluginID&quot;
-keyInContext=&quot;the key of the IPreferenceStore stored in context&quot;
-
-
-
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="copyright"/>
-      </appinfo>
-      <documentation>
-         @OPCoach 2014
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/E4PreferenceRegistry.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/E4PreferenceRegistry.java
deleted file mode 100644 (file)
index 5180a40..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 OPCoach.
- * 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:
- *     OPCoach - initial API and implementation
- *******************************************************************************/
-package com.opcoach.e4.preferences;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.e4.core.contexts.ContextInjectionFactory;
-import org.eclipse.e4.core.contexts.IEclipseContext;
-import org.eclipse.e4.core.di.annotations.Creatable;
-import org.eclipse.e4.core.services.contributions.IContributionFactory;
-import org.eclipse.e4.core.services.log.Logger;
-import org.eclipse.jface.preference.IPreferenceNode;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.preference.PreferenceNode;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-
-@Creatable
-public class E4PreferenceRegistry
-{
-
-       public static final String PREFS_PAGE_XP = "eu.etaxonomy.taxeditor.workbench.e4PreferencePages"; // $NON-NLS-1$
-       public static final String PREF_STORE_PROVIDER = "eu.etaxonomy.taxeditor.workbench.e4PreferenceStoreProvider"; // $NON-NLS-1$
-       protected static final String ELMT_PAGE = "page"; // $NON-NLS-1$
-       protected static final String ATTR_ID = "id"; // $NON-NLS-1$
-       protected static final String ATTR_CATEGORY = "category"; // $NON-NLS-1$
-       protected static final String ATTR_CLASS = "class"; // $NON-NLS-1$
-       protected static final String ATTR_NAME = "name"; // $NON-NLS-1$
-
-       protected static final String ATTR_PLUGIN_ID = "pluginId"; // $NON-NLS-1$
-       protected static final String ATTR_ID_IN_WBCONTEXT = "idInWorkbenchContext"; // $NON-NLS-1$
-
-       @Inject
-       protected Logger logger;
-
-       @Inject
-       protected IEclipseContext context;
-
-       @Inject
-       protected IExtensionRegistry registry;
-
-       private PreferenceManager pm = null;
-
-       // A map of (pluginId, { IPreferenceStoreProvider, or key in wbcontext }
-       private Map<String, Object> psProviders;
-
-       public PreferenceManager getPreferenceManager()
-       {
-
-               // Remember of the unbounded nodes to order parent pages.
-               // Map<category, list of children> (all nodes except root nodes)
-               Map<String, Collection<IPreferenceNode>> childrenNodes = new HashMap<String, Collection<IPreferenceNode>>();
-
-               if (pm != null) {
-            return pm;
-        }
-
-               pm = new PreferenceManager();
-               IContributionFactory factory = context.get(IContributionFactory.class);
-
-               for (IConfigurationElement elmt : registry.getConfigurationElementsFor(PREFS_PAGE_XP))
-               {
-                       String bundleId = elmt.getNamespaceIdentifier();
-                       if (!elmt.getName().equals(ELMT_PAGE))
-                       {
-                               logger.warn("unexpected element: {0}", elmt.getName());
-                               continue;
-                       } else if (isEmpty(elmt.getAttribute(ATTR_ID)) || isEmpty(elmt.getAttribute(ATTR_NAME)))
-                       {
-                               logger.warn("missing id and/or name: {}", bundleId);
-                               continue;
-                       }
-                       PreferenceNode pn = null;
-                       if (elmt.getAttribute(ATTR_CLASS) != null)
-                       {
-                               PreferencePage page = null;
-                               try
-                               {
-                                       String prefPageURI = getClassURI(bundleId, elmt.getAttribute(ATTR_CLASS));
-                                       Object object = factory.create(prefPageURI, context);
-                                       if (!(object instanceof PreferencePage))
-                                       {
-                                               logger.error("Expected instance of PreferencePage: {0}", elmt.getAttribute(ATTR_CLASS));
-                                               continue;
-                                       }
-                                       page = (PreferencePage) object;
-                                       setPreferenceStore(bundleId, page);
-
-                               } catch (ClassNotFoundException e)
-                               {
-                                       logger.error(e);
-                                       continue;
-                               }
-                               ContextInjectionFactory.inject(page, context);
-                               if ((page.getTitle() == null || page.getTitle().isEmpty()) && elmt.getAttribute(ATTR_NAME) != null)
-                               {
-                                       page.setTitle(elmt.getAttribute(ATTR_NAME));
-                               }
-
-                               pn = new PreferenceNode(elmt.getAttribute(ATTR_ID), page);
-                       } else
-                       {
-                               pn = new PreferenceNode(elmt.getAttribute(ATTR_ID), new EmptyPreferencePage(elmt.getAttribute(ATTR_NAME)));
-                       }
-
-                       // Issue 2 : Fix bug on order (see :
-                       // https://github.com/opcoach/e4Preferences/issues/2)
-                       // Add only pages at root level and remember of child pages for
-                       // categories
-                       String category = elmt.getAttribute(ATTR_CATEGORY);
-                       if (isEmpty(category))
-                       {
-                               pm.addToRoot(pn);
-                       } else
-                       {
-                               /*
-                                * IPreferenceNode parent = findNode(pm, category); if (parent
-                                * == null) { // No parent found, but may be the extension has
-                                * not been read yet. So remember of it unboundedNodes.put(pn,
-                                * category); } else { parent.add(pn); }
-                                */
-                               // Check if this category is already registered.
-                               Collection<IPreferenceNode> children = childrenNodes.get(category);
-                               if (children == null)
-                               {
-                                       children = new ArrayList<IPreferenceNode>();
-                                       childrenNodes.put(category, children);
-                               }
-                               children.add(pn);
-                       }
-               }
-
-               // Must now bind pages that has not been added in nodes (depends on the
-               // preference page read order)
-               // Iterate on all possible categories
-               Collection<String> categoriesDone = new ArrayList<String>();
-
-               while (!childrenNodes.isEmpty())
-               {
-                       for (String cat : Collections.unmodifiableSet(childrenNodes.keySet()))
-                       {
-                               // Is this category already in preference manager ? If not add
-                               // it later...
-                               IPreferenceNode parent = findNode(pm, cat);
-                               if (parent != null)
-                               {
-                                       // Can add the list of children to this parent page...
-                                       for (IPreferenceNode pn : childrenNodes.get(cat))
-                                       {
-                                               parent.add(pn);
-                                       }
-                                       // Ok This parent page is done. Can remove it from map
-                                       // outside of this loop
-                                       categoriesDone.add(cat);
-                               }
-                       }
-
-                       for (String keyToRemove : categoriesDone) {
-                childrenNodes.remove(keyToRemove);
-            }
-                       categoriesDone.clear();
-
-               }
-
-               return pm;
-       }
-
-       private void setPreferenceStore(String bundleId, PreferencePage page)
-       {
-               // Affect preference store to this page if this is a
-               // PreferencePage, else, must manage it internally
-               // Set the issue#1 on github :
-               // https://github.com/opcoach/e4Preferences/issues/1
-               // And manage the extensions of IP
-               initialisePreferenceStoreProviders();
-
-               IPreferenceStore store = null;
-
-               // Get the preference store according to policy.
-               Object data = psProviders.get(bundleId);
-               if (data != null)
-               {
-                       if (data instanceof IPreferenceStore) {
-                store = (IPreferenceStore) data;
-            } else if (data instanceof IPreferenceStoreProvider) {
-                store = ((IPreferenceStoreProvider) data).getPreferenceStore();
-            } else if (data instanceof String) {
-                store = (IPreferenceStore) context.get((String) data);
-            }
-
-               } else
-               {
-                       // Default behavior : create a preference store for this bundle and remember of it
-                       store = new ScopedPreferenceStore(InstanceScope.INSTANCE, bundleId);
-                       psProviders.put(bundleId, store);
-               }
-
-
-               if (store != null) {
-            page.setPreferenceStore(store);
-        } else
-               {
-                       logger.warn("Unable to set the preferenceStore for page " + page.getTitle() + " defined in bundle " + bundleId);
-               }
-
-       }
-
-       /** Read the e4PreferenceStoreProvider extension point */
-       private void initialisePreferenceStoreProviders()
-       {
-               if (psProviders == null)
-               {
-                       IContributionFactory factory = context.get(IContributionFactory.class);
-
-                       psProviders = new HashMap<String, Object>();
-
-                       // Read extensions and fill the map...
-                       for (IConfigurationElement elmt : registry.getConfigurationElementsFor(PREF_STORE_PROVIDER))
-                       {
-                               String declaringBundle = elmt.getNamespaceIdentifier();
-                               String pluginId = elmt.getAttribute(ATTR_PLUGIN_ID);
-                               if (isEmpty(pluginId))
-                               {
-                                       logger.warn("missing plugin Id in extension " + PREF_STORE_PROVIDER + " check the plugin " + declaringBundle);
-                                       continue;
-                               }
-
-                               String classname = elmt.getAttribute(ATTR_CLASS);
-                               String objectId = elmt.getAttribute(ATTR_ID_IN_WBCONTEXT);
-
-                               if ((isEmpty(classname) && isEmpty(objectId)) || (((classname != null) && classname.length() > 0) && ((objectId != null) && objectId.length() > 0)))
-                               {
-                                       logger.warn("In extension " + PREF_STORE_PROVIDER + " only one of the two attributes (pluginId or idInWorkbenchContext) must be set. Check the plugin "
-                                                       + declaringBundle);
-                                       continue;
-                               }
-
-                               // Ok can now work with data...
-                               Object data = objectId;
-                               if (classname != null)
-                               {
-                                       data = factory.create(classname, context);
-                                       if (!(data instanceof IPreferenceStoreProvider))
-                                       {
-                                               logger.warn("In extension " + PREF_STORE_PROVIDER + " the class must implements IPreferenceStoreProvider. Check the plugin " + declaringBundle);
-                                               continue;
-                                       }
-                               }
-
-                               psProviders.put(pluginId, data);
-
-                       }
-               }
-       }
-
-       private IPreferenceNode findNode(PreferenceManager pm, String categoryId)
-       {
-               for (Object o : pm.getElements(PreferenceManager.POST_ORDER))
-               {
-                       if (o instanceof IPreferenceNode && ((IPreferenceNode) o).getId().equals(categoryId))
-                       {
-                               return (IPreferenceNode) o;
-                       }
-               }
-               return null;
-       }
-
-       private String getClassURI(String definingBundleId, String spec) throws ClassNotFoundException
-       {
-               if (spec.startsWith("platform:"))
-               {
-                       return spec;
-               } // $NON-NLS-1$
-               return "bundleclass://" + definingBundleId + '/' + spec;
-       }
-
-       private boolean isEmpty(String value)
-       {
-               return value == null || value.trim().isEmpty();
-       }
-
-       static class EmptyPreferencePage extends PreferencePage
-       {
-
-               public EmptyPreferencePage(String title)
-               {
-                       setTitle(title);
-                       noDefaultAndApplyButton();
-               }
-
-               @Override
-               protected Control createContents(Composite parent)
-               {
-                       return new Label(parent, SWT.NONE);
-               }
-
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/IPreferenceStoreProvider.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/IPreferenceStoreProvider.java
deleted file mode 100644 (file)
index b1a3307..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 OPCoach.
- * 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:
- *     OPCoach - initial API and implementation
- *******************************************************************************/
-package com.opcoach.e4.preferences;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-
-/** This interface can be implemented to provide a PreferenceStore for a given plugin. 
- * This associatino must be done in the e4PreferenceStoreProvider extension point. 
- * @author olivier
- *
- */
-public interface IPreferenceStoreProvider
-{
-       /** Must be implemented to return a preference store */
-       public IPreferenceStore getPreferenceStore();
-
-}
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/ScopedPreferenceStore.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/ScopedPreferenceStore.java
deleted file mode 100644 (file)
index 8916abb..0000000
+++ /dev/null
@@ -1,861 +0,0 @@
-
-/*******************************************************************************
- * Copyright (c) 2014 OPCoach.
- * 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:
- *     Eclipse - copy of the implementation coming from jface 
- *******************************************************************************/
-
-package com.opcoach.e4.preferences;
-
-import java.io.IOException;
-
-import org.eclipse.core.commands.common.EventManager;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.INodeChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.jface.preference.IPersistentPreferenceStore;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.SafeRunnable;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * The ScopedPreferenceStore is an IPreferenceStore that uses the scopes
- * provided in org.eclipse.core.runtime.preferences.
- * <p>
- * A ScopedPreferenceStore does the lookup of a preference based on it's search
- * scopes and sets the value of the preference based on its store scope.
- * </p>
- * <p>
- * The default scope is always included in the search scopes when searching for
- * preference values.
- * </p>
- * 
- * @see org.eclipse.core.runtime.preferences
- * @since 3.1
- */
-public class ScopedPreferenceStore extends EventManager implements
-               IPreferenceStore, IPersistentPreferenceStore {
-
-       /**
-        * The storeContext is the context where values will stored with the
-        * setValue methods. If there are no searchContexts this will be the search
-        * context. (along with the "default" context)
-        */
-       private IScopeContext storeContext;
-
-       /**
-        * The searchContext is the array of contexts that will be used by the get
-        * methods for searching for values.
-        */
-       private IScopeContext[] searchContexts;
-
-       /**
-        * A boolean to indicate the property changes should not be propagated.
-        */
-       protected boolean silentRunning = false;
-
-       /**
-        * The listener on the IEclipsePreferences. This is used to forward updates
-        * to the property change listeners on the preference store.
-        */
-       IEclipsePreferences.IPreferenceChangeListener preferencesListener;
-
-       /**
-        * The default context is the context where getDefault and setDefault
-        * methods will search. This context is also used in the search.
-        */
-       private IScopeContext defaultContext = new DefaultScope();
-
-       /**
-        * The nodeQualifer is the string used to look up the node in the contexts.
-        */
-       String nodeQualifier;
-
-       /**
-        * The defaultQualifier is the string used to look up the default node.
-        */
-       String defaultQualifier;
-
-       /**
-        * Boolean value indicating whether or not this store has changes to be
-        * saved.
-        */
-       private boolean dirty;
-
-       /**
-        * Create a new instance of the receiver. Store the values in context in the
-        * node looked up by qualifier. <strong>NOTE:</strong> Any instance of
-        * ScopedPreferenceStore should call
-        * 
-        * @param context
-        *            the scope to store to
-        * @param qualifier
-        *            the qualifier used to look up the preference node
-        * @param defaultQualifierPath
-        *            the qualifier used when looking up the defaults
-        */
-       public ScopedPreferenceStore(IScopeContext context, String qualifier,
-                       String defaultQualifierPath) {
-               this(context, qualifier);
-               this.defaultQualifier = defaultQualifierPath;
-       }
-
-       /**
-        * Create a new instance of the receiver. Store the values in context in the
-        * node looked up by qualifier.
-        * 
-        * @param context
-        *            the scope to store to
-        * @param qualifier
-        *            the qualifer used to look up the preference node
-        */
-       public ScopedPreferenceStore(IScopeContext context, String qualifier) {
-               storeContext = context;
-               this.nodeQualifier = qualifier;
-               this.defaultQualifier = qualifier;
-
-               ((IEclipsePreferences) getStorePreferences().parent())
-                               .addNodeChangeListener(getNodeChangeListener());
-       }
-
-       /**
-        * Return a node change listener that adds a removes the receiver when nodes
-        * change.
-        * 
-        * @return INodeChangeListener
-        */
-       private INodeChangeListener getNodeChangeListener() {
-               return new IEclipsePreferences.INodeChangeListener() {
-                       /*
-                        * (non-Javadoc)
-                        * 
-                        * @see org.eclipse.core.runtime.preferences.IEclipsePreferences.INodeChangeListener#added(org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent)
-                        */
-                       public void added(NodeChangeEvent event) {
-                               if (nodeQualifier.equals(event.getChild().name())
-                                               && isListenerAttached()) {
-                                       getStorePreferences().addPreferenceChangeListener(
-                                                       preferencesListener);
-                               }
-                       }
-
-                       /*
-                        * (non-Javadoc)
-                        * 
-                        * @see org.eclipse.core.runtime.preferences.IEclipsePreferences.INodeChangeListener#removed(org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent)
-                        */
-                       public void removed(NodeChangeEvent event) {
-                               // Do nothing as there are no events from removed node
-                       }
-               };
-       }
-
-       /**
-        * Initialize the preferences listener.
-        */
-       private void initializePreferencesListener() {
-               if (preferencesListener == null) {
-                       preferencesListener = new IEclipsePreferences.IPreferenceChangeListener() {
-                               /*
-                                * (non-Javadoc)
-                                * 
-                                * @see org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener#preferenceChange(org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent)
-                                */
-                               public void preferenceChange(PreferenceChangeEvent event) {
-
-                                       if (silentRunning) {
-                                               return;
-                                       }
-
-                                       Object oldValue = event.getOldValue();
-                                       Object newValue = event.getNewValue();
-                                       String key = event.getKey();
-                                       if (newValue == null) {
-                                               newValue = getDefault(key, oldValue);
-                                       } else if (oldValue == null) {
-                                               oldValue = getDefault(key, newValue);
-                                       }
-                                       firePropertyChangeEvent(event.getKey(), oldValue, newValue);
-                               }
-                       };
-                       getStorePreferences().addPreferenceChangeListener(
-                                       preferencesListener);
-               }
-
-       }
-
-       /**
-        * Does its best at determining the default value for the given key. Checks
-        * the given object's type and then looks in the list of defaults to see if
-        * a value exists. If not or if there is a problem converting the value, the
-        * default default value for that type is returned.
-        * 
-        * @param key
-        *            the key to search
-        * @param obj
-        *            the object who default we are looking for
-        * @return Object or <code>null</code>
-        */
-       Object getDefault(String key, Object obj) {
-               IEclipsePreferences defaults = getDefaultPreferences();
-               if (obj instanceof String) {
-                       return defaults.get(key, STRING_DEFAULT_DEFAULT);
-               } else if (obj instanceof Integer) {
-                       return new Integer(defaults.getInt(key, INT_DEFAULT_DEFAULT));
-               } else if (obj instanceof Double) {
-                       return new Double(defaults.getDouble(key, DOUBLE_DEFAULT_DEFAULT));
-               } else if (obj instanceof Float) {
-                       return new Float(defaults.getFloat(key, FLOAT_DEFAULT_DEFAULT));
-               } else if (obj instanceof Long) {
-                       return new Long(defaults.getLong(key, LONG_DEFAULT_DEFAULT));
-               } else if (obj instanceof Boolean) {
-                       return defaults.getBoolean(key, BOOLEAN_DEFAULT_DEFAULT) ? Boolean.TRUE
-                                       : Boolean.FALSE;
-               } else {
-                       return null;
-               }
-       }
-
-       /**
-        * Return the IEclipsePreferences node associated with this store.
-        * 
-        * @return the preference node for this store
-        */
-       IEclipsePreferences getStorePreferences() {
-               return storeContext.getNode(nodeQualifier);
-       }
-
-       /**
-        * Return the default IEclipsePreferences for this store.
-        * 
-        * @return this store's default preference node
-        */
-       private IEclipsePreferences getDefaultPreferences() {
-               return defaultContext.getNode(defaultQualifier);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-        */
-       public void addPropertyChangeListener(IPropertyChangeListener listener) {
-               initializePreferencesListener();// Create the preferences listener if it
-               // does not exist
-               addListenerObject(listener);
-       }
-
-       /**
-        * Return the preference path to search preferences on. This is the list of
-        * preference nodes based on the scope contexts for this store. If there are
-        * no search contexts set, then return this store's context.
-        * <p>
-        * Whether or not the default context should be included in the resulting
-        * list is specified by the <code>includeDefault</code> parameter.
-        * </p>
-        * 
-        * @param includeDefault
-        *            <code>true</code> if the default context should be included
-        *            and <code>false</code> otherwise
-        * @return IEclipsePreferences[]
-        * @since 3.4 public, was added in 3.1 as private method
-        */
-       public IEclipsePreferences[] getPreferenceNodes(boolean includeDefault) {
-               // if the user didn't specify a search order, then return the scope that
-               // this store was created on. (and optionally the default)
-               if (searchContexts == null) {
-                       if (includeDefault) {
-                               return new IEclipsePreferences[] { getStorePreferences(),
-                                               getDefaultPreferences() };
-                       }
-                       return new IEclipsePreferences[] { getStorePreferences() };
-               }
-               // otherwise the user specified a search order so return the appropriate
-               // nodes based on it
-               int length = searchContexts.length;
-               if (includeDefault) {
-                       length++;
-               }
-               IEclipsePreferences[] preferences = new IEclipsePreferences[length];
-               for (int i = 0; i < searchContexts.length; i++) {
-                       preferences[i] = searchContexts[i].getNode(nodeQualifier);
-               }
-               if (includeDefault) {
-                       preferences[length - 1] = getDefaultPreferences();
-               }
-               return preferences;
-       }
-
-       /**
-        * Set the search contexts to scopes. When searching for a value the seach
-        * will be done in the order of scope contexts and will not search the
-        * storeContext unless it is in this list.
-        * <p>
-        * If the given list is <code>null</code>, then clear this store's search
-        * contexts. This means that only this store's scope context and default
-        * scope will be used during preference value searching.
-        * </p>
-        * <p>
-        * The defaultContext will be added to the end of this list automatically
-        * and <em>MUST NOT</em> be included by the user.
-        * </p>
-        * 
-        * @param scopes
-        *            a list of scope contexts to use when searching, or
-        *            <code>null</code>
-        */
-       public void setSearchContexts(IScopeContext[] scopes) {
-               this.searchContexts = scopes;
-               if (scopes == null) {
-                       return;
-               }
-
-               // Assert that the default was not included (we automatically add it to
-               // the end)
-               for (int i = 0; i < scopes.length; i++) {
-                       if (scopes[i].equals(defaultContext)) {
-                               Assert
-                                               .isTrue(
-                                                               false,
-                                                               "Do not add the default to the search contexts");
-                       }
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#contains(java.lang.String)
-        */
-       public boolean contains(String name) {
-               if (name == null) {
-                       return false;
-               }
-               return (Platform.getPreferencesService().get(name, null,
-                               getPreferenceNodes(true))) != null;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#firePropertyChangeEvent(java.lang.String,
-        *      java.lang.Object, java.lang.Object)
-        */
-       public void firePropertyChangeEvent(String name, Object oldValue,
-                       Object newValue) {
-               // important: create intermediate array to protect against listeners
-               // being added/removed during the notification
-               final Object[] list = getListeners();
-               if (list.length == 0) {
-                       return;
-               }
-               final PropertyChangeEvent event = new PropertyChangeEvent(this, name,
-                               oldValue, newValue);
-               for (int i = 0; i < list.length; i++) {
-                       final IPropertyChangeListener listener = (IPropertyChangeListener) list[i];
-                       SafeRunner.run(new SafeRunnable(JFaceResources
-                                       .getString("PreferenceStore.changeError")) { //$NON-NLS-1$
-                                               public void run() {
-                                                       listener.propertyChange(event);
-                                               }
-                                       });
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(java.lang.String)
-        */
-       public boolean getBoolean(String name) {
-               String value = internalGet(name);
-               return value == null ? BOOLEAN_DEFAULT_DEFAULT : Boolean.valueOf(value)
-                               .booleanValue();
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(java.lang.String)
-        */
-       public boolean getDefaultBoolean(String name) {
-               return getDefaultPreferences()
-                               .getBoolean(name, BOOLEAN_DEFAULT_DEFAULT);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(java.lang.String)
-        */
-       public double getDefaultDouble(String name) {
-               return getDefaultPreferences().getDouble(name, DOUBLE_DEFAULT_DEFAULT);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(java.lang.String)
-        */
-       public float getDefaultFloat(String name) {
-               return getDefaultPreferences().getFloat(name, FLOAT_DEFAULT_DEFAULT);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(java.lang.String)
-        */
-       public int getDefaultInt(String name) {
-               return getDefaultPreferences().getInt(name, INT_DEFAULT_DEFAULT);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(java.lang.String)
-        */
-       public long getDefaultLong(String name) {
-               return getDefaultPreferences().getLong(name, LONG_DEFAULT_DEFAULT);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(java.lang.String)
-        */
-       public String getDefaultString(String name) {
-               return getDefaultPreferences().get(name, STRING_DEFAULT_DEFAULT);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getDouble(java.lang.String)
-        */
-       public double getDouble(String name) {
-               String value = internalGet(name);
-               if (value == null) {
-                       return DOUBLE_DEFAULT_DEFAULT;
-               }
-               try {
-                       return Double.parseDouble(value);
-               } catch (NumberFormatException e) {
-                       return DOUBLE_DEFAULT_DEFAULT;
-               }
-       }
-
-       /**
-        * Return the string value for the specified key. Look in the nodes which
-        * are specified by this object's list of search scopes. If the value does
-        * not exist then return <code>null</code>.
-        * 
-        * @param key
-        *            the key to search with
-        * @return String or <code>null</code> if the value does not exist.
-        */
-       private String internalGet(String key) {
-               return Platform.getPreferencesService().get(key, null,
-                               getPreferenceNodes(true));
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getFloat(java.lang.String)
-        */
-       public float getFloat(String name) {
-               String value = internalGet(name);
-               if (value == null) {
-                       return FLOAT_DEFAULT_DEFAULT;
-               }
-               try {
-                       return Float.parseFloat(value);
-               } catch (NumberFormatException e) {
-                       return FLOAT_DEFAULT_DEFAULT;
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getInt(java.lang.String)
-        */
-       public int getInt(String name) {
-               String value = internalGet(name);
-               if (value == null) {
-                       return INT_DEFAULT_DEFAULT;
-               }
-               try {
-                       return Integer.parseInt(value);
-               } catch (NumberFormatException e) {
-                       return INT_DEFAULT_DEFAULT;
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getLong(java.lang.String)
-        */
-       public long getLong(String name) {
-               String value = internalGet(name);
-               if (value == null) {
-                       return LONG_DEFAULT_DEFAULT;
-               }
-               try {
-                       return Long.parseLong(value);
-               } catch (NumberFormatException e) {
-                       return LONG_DEFAULT_DEFAULT;
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#getString(java.lang.String)
-        */
-       public String getString(String name) {
-               String value = internalGet(name);
-               return value == null ? STRING_DEFAULT_DEFAULT : value;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#isDefault(java.lang.String)
-        */
-       public boolean isDefault(String name) {
-               if (name == null) {
-                       return false;
-               }
-               return (Platform.getPreferencesService().get(name, null,
-                               getPreferenceNodes(false))) == null;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#needsSaving()
-        */
-       public boolean needsSaving() {
-               return dirty;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#putValue(java.lang.String,
-        *      java.lang.String)
-        */
-       public void putValue(String name, String value) {
-               try {
-                       // Do not notify listeners
-                       silentRunning = true;
-                       getStorePreferences().put(name, value);
-               } finally {
-                       // Be sure that an exception does not stop property updates
-                       silentRunning = false;
-                       dirty = true;
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-        */
-       public void removePropertyChangeListener(IPropertyChangeListener listener) {
-               removeListenerObject(listener);
-               if (!isListenerAttached()) {
-                       disposePreferenceStoreListener();
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String,
-        *      double)
-        */
-       public void setDefault(String name, double value) {
-               getDefaultPreferences().putDouble(name, value);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String,
-        *      float)
-        */
-       public void setDefault(String name, float value) {
-               getDefaultPreferences().putFloat(name, value);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String,
-        *      int)
-        */
-       public void setDefault(String name, int value) {
-               getDefaultPreferences().putInt(name, value);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String,
-        *      long)
-        */
-       public void setDefault(String name, long value) {
-               getDefaultPreferences().putLong(name, value);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String,
-        *      java.lang.String)
-        */
-       public void setDefault(String name, String defaultObject) {
-               getDefaultPreferences().put(name, defaultObject);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String,
-        *      boolean)
-        */
-       public void setDefault(String name, boolean value) {
-               getDefaultPreferences().putBoolean(name, value);
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(java.lang.String)
-        */
-       public void setToDefault(String name) {
-
-               String oldValue = getString(name);
-               String defaultValue = getDefaultString(name);
-               try {
-                       silentRunning = true;// Turn off updates from the store
-                       // removing a non-existing preference is a no-op so call the Core
-                       // API directly
-                       getStorePreferences().remove(name);
-                       if (oldValue != defaultValue){
-                               dirty = true;
-                               firePropertyChangeEvent(name, oldValue, defaultValue);
-                       }
-                               
-               } finally {
-                       silentRunning = false;// Restart listening to preferences
-               }
-
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String,
-        *      double)
-        */
-       public void setValue(String name, double value) {
-               double oldValue = getDouble(name);
-               if (oldValue == value) {
-                       return;
-               }
-               try {
-                       silentRunning = true;// Turn off updates from the store
-                       if (getDefaultDouble(name) == value) {
-                               getStorePreferences().remove(name);
-                       } else {
-                               getStorePreferences().putDouble(name, value);
-                       }
-                       dirty = true;
-                       firePropertyChangeEvent(name, new Double(oldValue), new Double(
-                                       value));
-               } finally {
-                       silentRunning = false;// Restart listening to preferences
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String,
-        *      float)
-        */
-       public void setValue(String name, float value) {
-               float oldValue = getFloat(name);
-               if (oldValue == value) {
-                       return;
-               }
-               try {
-                       silentRunning = true;// Turn off updates from the store
-                       if (getDefaultFloat(name) == value) {
-                               getStorePreferences().remove(name);
-                       } else {
-                               getStorePreferences().putFloat(name, value);
-                       }
-                       dirty = true;
-                       firePropertyChangeEvent(name, new Float(oldValue), new Float(value));
-               } finally {
-                       silentRunning = false;// Restart listening to preferences
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String,
-        *      int)
-        */
-       public void setValue(String name, int value) {
-               int oldValue = getInt(name);
-               if (oldValue == value) {
-                       return;
-               }
-               try {
-                       silentRunning = true;// Turn off updates from the store
-                       if (getDefaultInt(name) == value) {
-                               getStorePreferences().remove(name);
-                       } else {
-                               getStorePreferences().putInt(name, value);
-                       }
-                       dirty = true;
-                       firePropertyChangeEvent(name, new Integer(oldValue), new Integer(
-                                       value));
-               } finally {
-                       silentRunning = false;// Restart listening to preferences
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String,
-        *      long)
-        */
-       public void setValue(String name, long value) {
-               long oldValue = getLong(name);
-               if (oldValue == value) {
-                       return;
-               }
-               try {
-                       silentRunning = true;// Turn off updates from the store
-                       if (getDefaultLong(name) == value) {
-                               getStorePreferences().remove(name);
-                       } else {
-                               getStorePreferences().putLong(name, value);
-                       }
-                       dirty = true;
-                       firePropertyChangeEvent(name, new Long(oldValue), new Long(value));
-               } finally {
-                       silentRunning = false;// Restart listening to preferences
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String,
-        *      java.lang.String)
-        */
-       public void setValue(String name, String value) {
-               // Do not turn on silent running here as Strings are propagated
-               if (getDefaultString(name).equals(value)) {
-                       getStorePreferences().remove(name);
-               } else {
-                       getStorePreferences().put(name, value);
-               }
-               dirty = true;
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String,
-        *      boolean)
-        */
-       public void setValue(String name, boolean value) {
-               boolean oldValue = getBoolean(name);
-               if (oldValue == value) {
-                       return;
-               }
-               try {
-                       silentRunning = true;// Turn off updates from the store
-                       if (getDefaultBoolean(name) == value) {
-                               getStorePreferences().remove(name);
-                       } else {
-                               getStorePreferences().putBoolean(name, value);
-                       }
-                       dirty = true;
-                       firePropertyChangeEvent(name, oldValue ? Boolean.TRUE
-                                       : Boolean.FALSE, value ? Boolean.TRUE : Boolean.FALSE);
-               } finally {
-                       silentRunning = false;// Restart listening to preferences
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.eclipse.jface.preference.IPersistentPreferenceStore#save()
-        */
-       public void save() throws IOException {
-               try {
-                       getStorePreferences().flush();
-                       dirty = false;
-               } catch (BackingStoreException e) {
-                       throw new IOException(e.getMessage());
-               }
-
-       }
-
-       /**
-        * Dispose the receiver.
-        */
-       private void disposePreferenceStoreListener() {
-
-               IEclipsePreferences root = (IEclipsePreferences) Platform
-                               .getPreferencesService().getRootNode().node(
-                                               Plugin.PLUGIN_PREFERENCE_SCOPE);
-               try {
-                       if (!(root.nodeExists(nodeQualifier))) {
-                               return;
-                       }
-               } catch (BackingStoreException e) {
-                       return;// No need to report here as the node won't have the
-                       // listener
-               }
-
-               IEclipsePreferences preferences = getStorePreferences();
-               if (preferences == null) {
-                       return;
-               }
-               if (preferencesListener != null) {
-                       preferences.removePreferenceChangeListener(preferencesListener);
-                       preferencesListener = null;
-               }
-       }
-
-}
diff --git a/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/handlers/E4PreferencesHandler.java b/eu.etaxonomy.taxeditor.workbench/src/main/java/com/opcoach/e4/preferences/handlers/E4PreferencesHandler.java
deleted file mode 100644 (file)
index fed5220..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2014 OPCoach.
- * 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:
- *     Manumitting Technologies : Brian de Alwis for initial API and implementation
- *     OPCoach  : O.Prouvost fix bugs on hierarchy
- *******************************************************************************//*
- * Handler to open up a configured preferences dialog.
- * Written by Brian de Alwis, Manumitting Technologies.
- * Placed in the public domain.
- * This code comes from : http://www.eclipse.org/forums/index.php/fa/4347/
- * and was referenced in the thread : http://www.eclipse.org/forums/index.php/m/750139/
- */
-package com.opcoach.e4.preferences.handlers;
-
-import javax.inject.Named;
-
-import org.eclipse.e4.core.di.annotations.CanExecute;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.preference.PreferenceManager;
-import org.eclipse.jface.viewers.ViewerComparator;
-import org.eclipse.swt.widgets.Shell;
-
-import com.opcoach.e4.preferences.E4PreferenceRegistry;
-
-
-public class E4PreferencesHandler
-{
-
-
-       @CanExecute
-       public boolean canExecute()
-       {
-               return true;
-       }
-
-       @Execute
-       public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell,  E4PreferenceRegistry prefReg)
-       {
-               PreferenceManager pm = prefReg.getPreferenceManager();
-               PreferenceDialog dialog = new PreferenceDialog(shell, pm);
-               dialog.create();
-               dialog.getTreeViewer().setComparator(new ViewerComparator());
-               dialog.getTreeViewer().expandToLevel(2);
-               dialog.open();
-       }
-
-
-
-
-}