ref #8385 Remove publish flag preference when set to default
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / PublishFlagPreference.java
index 97e93b735dae57c813dbd9192bf4d558706733cf..fb84c1c478bcf51566f674d2a053e9525989065d 100755 (executable)
@@ -8,23 +8,14 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.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.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
 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.cdm.model.metadata.PublishEnum;
 import eu.etaxonomy.taxeditor.l10n.Messages;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
+import eu.etaxonomy.taxeditor.preference.PublishFlagLocalPreference;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -32,122 +23,70 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @since 23.03.2018
  *
  */
-public class PublishFlagPreference extends CdmPreferencePage implements IE4AdminPreferencePage{
-
-   boolean setPublish;
-   boolean setNotPublish;
-   boolean inheritFromParent;
+public class PublishFlagPreference extends PublishFlagLocalPreference implements IE4AdminPreferencePage{
 
-   String do_not_publish = "DO NOT PUBLISH";
-   String inherit_from_parent = "PARENT";
-   String publish = "PUBLISH";
-   CdmPreference pref = null;
 
    @Override
    public void init() {
        super.init();
-       pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
-       if (pref != null){
-           if (pref.getValue().equals(IPreferenceKeys.DO_NOT_PUBLISH)){
-               setNotPublish = true;
-               setPublish = false;
-               inheritFromParent = false;
-           }
-
-           if (pref.getValue().equals(IPreferenceKeys.INHERIT_FROM_PARENT)){
-               setNotPublish = false;
-               setPublish = false;
-               inheritFromParent = true;
-           }
-
-           if (pref.getValue().equals(IPreferenceKeys.PUBLISH)){
-               setNotPublish = false;
-               setPublish = true;
-               inheritFromParent = false;
-           }
-       }else{
-           setNotPublish = false;
-           setPublish = true;
-           inheritFromParent = false;
-       }
 
-   }
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    protected Control createContents(Composite parent) {
-        final Composite composite = new Composite(parent, SWT.NULL);
-
-        GridLayout gridLayout = new GridLayout();
-        composite.setLayout(gridLayout);
-        final CLabel description = new CLabel(composite, SWT.NULL);
-        description.setText(Messages.PublishFlagPreference_description);
-        gridLayout.numColumns = 1;
-        gridLayout.horizontalSpacing= 10;
-        gridLayout.makeColumnsEqualWidth = true;
-
-        Button setPublishFlagAsDefault = new Button(composite, SWT.RADIO);
-        setPublishFlagAsDefault.setText(Messages.PublishFlagPreference_set);
-        setPublishFlagAsDefault.setSelection(setPublish);
-        setPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-               setPublish = !setPublish;
-            }
-        });
-        Button setNotPublishFlagAsDefault = new Button(composite, SWT.RADIO);
-        setNotPublishFlagAsDefault.setText(Messages.PublishFlagPreference_do_not_set);
-        setNotPublishFlagAsDefault.setSelection(setNotPublish);
-        setNotPublishFlagAsDefault.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                setNotPublish = !setNotPublish;
-            }
-        });
-
-        Button setInheritFromParent = new Button(composite, SWT.RADIO);
-        setInheritFromParent.setText(Messages.PublishFlagPreference_inherit);
-        setInheritFromParent.setSelection(inheritFromParent);
-        setInheritFromParent.addSelectionListener(new SelectionAdapter() {
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                inheritFromParent = !inheritFromParent;
-            }
-        });
 
-        return composite;
+   }
 
-    }
 
 
     @Override
     public boolean performOk() {
-        if (pref == null){
+        if (!isApply()){
             return true;
         }
-        String preferenceValue = null;
-        if (setPublish){
-            preferenceValue = publish;
-        }else if (setNotPublish){
-            preferenceValue = do_not_publish;
-        } else{
-            preferenceValue = inherit_from_parent;
-        }
-        CdmPreference pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DefaultBehaviourForPublishFlag, preferenceValue);
-        pref.setAllowOverride(true);
-
         ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
         if (controller == null){
             return false;
         }
         IPreferenceService service = controller.getPreferenceService();
+        String text = publishFlagBehaviour.getText();
+        // default -> delete preference
+        if(text.equals(Messages.Preference_Use_Default)){
+            service.remove(pref.getKey());
+            PreferencesUtil.updateDBPreferences();
+            return true;
+        }
+
+        for (PublishEnum display: PublishEnum.values()){
+            if (display.getLabel().equals(text)){
+                text = display.getKey();
+                break;
+            }
+        }
+        CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DefaultBehaviourForPublishFlag, text);
+        pref.setAllowOverride(allowOverride);
+
         service.set(pref);
+        PreferencesUtil.updateDBPreferences();
 
         return true;
     }
 
 
 
+    @Override
+    public void getValues() {
+        isAdminPreference = true;
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DefaultBehaviourForPublishFlag);
+        if (pref == null){
+            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DefaultBehaviourForPublishFlag, ((PublishEnum)PreferencePredicate.DefaultBehaviourForPublishFlag.getDefaultValue()).getKey());
+            publishBehaviour = null;
+            allowOverride = pref.isAllowOverride();
+        }
+        else {
+            allowOverride = pref.isAllowOverride();
+            publishBehaviour = PublishEnum.valueOf(pref.getValue());
+        }
+    }
+
+
+
+
 
 }