From a81248710cd7a46f26e4df961dfc58a5f1062e7b Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Wed, 28 Oct 2015 17:08:43 +0100
Subject: [PATCH 1/1] Fixed persistency of Matching preferences #5337
---
.../matching/AbstractMatchingPreferences.java | 149 +++---------------
.../NonViralNameMatchingPreference.java | 7 +-
.../matching/ReferenceMatchingPreference.java | 9 +-
.../TeamOrPersonMatchingPreference.java | 10 +-
4 files changed, 24 insertions(+), 151 deletions(-)
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/AbstractMatchingPreferences.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/AbstractMatchingPreferences.java
index 6d2ddb9bc..be84b00cf 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/AbstractMatchingPreferences.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/AbstractMatchingPreferences.java
@@ -17,15 +17,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.jface.preference.ComboFieldEditor;
+import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.widgets.Combo;
-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.model.common.IdentifiableEntity;
@@ -37,13 +32,11 @@ import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
/**
- * Abstract AbstractMatchingPreferences class.
- *
* @author n.hoffmann
* @created Jan 22, 2010
* @version 1.0
*/
-public abstract class AbstractMatchingPreferences extends PreferencePage implements
+public abstract class AbstractMatchingPreferences extends FieldEditorPreferencePage implements
IWorkbenchPreferencePage {
/**
@@ -60,96 +53,30 @@ public abstract class AbstractMatchingPreferences
protected Map matchModeCombos = new HashMap();
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
+ @Override
+ public void init(IWorkbench workbench) {
+ setPreferenceStore(PreferencesUtil.getPreferenceStore());
+ }
+
+ /**
+ * {@inheritDoc}
*/
- /** {@inheritDoc} */
@Override
- protected Control createContents(Composite parent) {
- final Composite composite = new Composite(parent, SWT.NULL);
- GridLayout gridLayout = new GridLayout();
- gridLayout.numColumns = 2;
- composite.setLayout(gridLayout);
-
- if(!CdmStore.isActive()) {
+ protected void createFieldEditors() {
+ if(!CdmStore.isActive()) {
MessagingUtils.noDataSourceWarningDialog(null);
}else{
for(String fieldName : getFieldNames()){
- createFieldWidget(composite, fieldName);
+ String[][] comboValues = new String[getMatchModeList().size()][2];
+ for (int i=0;i
return fields;
}
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performApply()
- */
- /** {@inheritDoc} */
- @Override
- protected void performApply() {
- PreferencesUtil.setMatchStrategy(matchStrategy);
- super.performApply();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
- */
- /** {@inheritDoc} */
- @Override
- protected void performDefaults() {
- try {
- // set match strategy to default
- matchStrategy = getDefaultMatchStrategy();
-
- // set combos to their default values
- for(String fieldName : matchModeCombos.keySet()){
- Combo combo = matchModeCombos.get(fieldName);
- MatchMode matchMode = matchStrategy.getMatchMode(fieldName);
- combo.select(matchModeList.indexOf(matchMode));
- }
-
- } catch (MatchException e) {
- MessagingUtils.error(this.getClass(), e);
- throw new RuntimeException(e);
- }
- super.performDefaults();
- }
-
/**
* Returns the default match strategy for the respective class
*
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/NonViralNameMatchingPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/NonViralNameMatchingPreference.java
index 339232c7a..b048e2d13 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/NonViralNameMatchingPreference.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/NonViralNameMatchingPreference.java
@@ -27,12 +27,10 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
*/
public class NonViralNameMatchingPreference extends AbstractMatchingPreferences{
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
/** {@inheritDoc} */
@Override
public void init(IWorkbench workbench) {
+ super.init(workbench);
clazz = NonViralName.class;
try {
@@ -43,9 +41,6 @@ public class NonViralNameMatchingPreference extends AbstractMatchingPreferences<
}
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.preference.matching.AbstractMatchingPreferences#getDefaultMatchStrategy()
- */
/** {@inheritDoc} */
@Override
protected IMatchStrategy getDefaultMatchStrategy() throws MatchException {
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/ReferenceMatchingPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/ReferenceMatchingPreference.java
index 9a578c0c4..f28e61fc6 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/ReferenceMatchingPreference.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/matching/ReferenceMatchingPreference.java
@@ -19,20 +19,16 @@ import eu.etaxonomy.cdm.strategy.match.MatchStrategyConfigurator;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
/**
- * ReferenceMatchingPreference class.
- *
* @author n.hoffmann
* @created Jan 22, 2010
* @version 1.0
*/
public class ReferenceMatchingPreference extends AbstractMatchingPreferences {
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
/** {@inheritDoc} */
@Override
public void init(IWorkbench workbench) {
+ super.init(workbench);
clazz = Reference.class;
try {
@@ -43,9 +39,6 @@ public class ReferenceMatchingPreference extends AbstractMatchingPreferences[TeamOrPersonMatchingPreference class.
- *
* @author n.hoffmann
* @created Jan 22, 2010
* @version 1.0
@@ -28,13 +26,10 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
public class TeamOrPersonMatchingPreference extends
AbstractMatchingPreferences {
- /* (non-Javadoc)
- * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
- */
/** {@inheritDoc} */
@Override
public void init(IWorkbench workbench) {
-
+ super.init(workbench);
clazz = TeamOrPersonBase.class;
try {
@@ -45,9 +40,6 @@ public class TeamOrPersonMatchingPreference extends
}
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.preference.matching.AbstractMatchingPreferences#getDefaultMatchStrategy()
- */
/** {@inheritDoc} */
@Override
protected IMatchStrategy getDefaultMatchStrategy() throws MatchException {
--
2.34.1
]