ref #8385: correct preference handling for provider list
authorKatja Luther <k.luther@bgbm.org>
Fri, 16 Aug 2019 08:40:40 +0000 (10:40 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 16 Aug 2019 10:14:40 +0000 (12:14 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/AbcdImportProviderAdminPreferencePage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/ListComponent.java

index 573438b62d6371cd9226dc47bca724869c5107a7..15dcb48acbc5e8775a9bbd809cb7d0ebff4d6416 100755 (executable)
@@ -8,9 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.layout.GridLayout;
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 
@@ -18,8 +16,7 @@ import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.service.IPreferenceService;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
-import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.AbcdImportPreference;
+import eu.etaxonomy.taxeditor.preference.AbcdImportProvider;
 import eu.etaxonomy.taxeditor.preference.ListComponent;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -28,24 +25,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 23.03.2018
  *
  */
-public class AbcdImportProviderAdminPreferencePage extends AbcdImportPreference implements IE4AdminPreferencePage{
+public class AbcdImportProviderAdminPreferencePage extends AbcdImportProvider implements IE4AdminPreferencePage{
 
     private ListComponent biocaseProviderList;
 
     @Override
     protected Control createContents(Composite parent) {
-        final Composite composite = new Composite(parent, SWT.NULL);
-        final CLabel description = new CLabel(composite, SWT.NULL);
-        description.setText(Messages.AbcdImportProvider_description);
-        GridLayout gridLayout = new GridLayout();
-        composite.setLayout(gridLayout);
-
-        gridLayout.numColumns = 3;
-        //gridLayout.horizontalSpacing= 5;
-        //gridLayout.makeColumnsEqualWidth = true;
-
-        composite.setLayout(gridLayout);
-        biocaseProviderList = new ListComponent(composite, SWT.SCROLL_LINE, true);
+        Control composite = super.createContents(parent);
+        biocaseProviderList.setAdmin(true);
         setApply(true);
         return composite;
     }
@@ -64,7 +51,11 @@ public class AbcdImportProviderAdminPreferencePage extends AbcdImportPreference
                 return false;
             }
             IPreferenceService service = controller.getPreferenceService();
-            service.set(pref);
+            if (StringUtils.isBlank(providerList)){
+                service.remove(pref.getKey());
+            }else{
+                service.set(pref);
+            }
         }
 
         return true;
index 32c8259cdf97d7eda49d229948ac6e2b389dba78..dade377289471e5f94f290ccbbbf743e149fbd51 100755 (executable)
@@ -45,6 +45,7 @@ public class ListComponent
     private Text providerURI;
     boolean isAdmin = false;
 
+
     public ListComponent(Composite parent, int style, boolean isAdmin) {
         this.isAdmin= isAdmin;
         list = new List(parent, SWT.BORDER |  SWT.V_SCROLL);
@@ -104,6 +105,15 @@ public class ListComponent
         removeButton.addMouseListener(new RemoveListener());
     }
 
+
+    public boolean isAdmin() {
+        return isAdmin;
+    }
+
+    public void setAdmin(boolean isAdmin) {
+        this.isAdmin = isAdmin;
+    }
+
     class RemoveListener implements MouseListener {
         @Override
         public void mouseUp(MouseEvent e)  {