use NewTaxEditorInstance for CdmPreferences in TaxEditor and fix representation handl...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / ChecklistEditorGeneralPreference.java
index ca9a2a683a0b5c4dd62925bae4825379ac080a77..50a8413a75143c0db28aeb98542f38d32d51a7ba 100755 (executable)
@@ -16,13 +16,17 @@ 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.swt.widgets.Label;
 
+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.IPreferenceKeys;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
 
 /**
  * @author a.oppermann
@@ -32,10 +36,15 @@ import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
 public class ChecklistEditorGeneralPreference extends CdmPreferencePage implements IE4AdminPreferencePage {
 
     boolean isEditorActivated;
+    boolean allowOverride;
     boolean isShowRank;
     boolean isSortByVocabularyOrder;
     boolean isShowSymbol;
     boolean isShowIdInVocabulary;
+    boolean isShowSymbol1;
+    boolean isShowSymbol2;
+    boolean isShowTitle;
+    String displayString;
     Composite child ;
 
     @Override
@@ -43,7 +52,14 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
         Composite composite = new Composite(parent, SWT.NULL);
         composite.setLayout(new GridLayout());
-        isEditorActivated = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE);
+        CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DistributionEditorActivated);
+        if (pref != null){
+            isEditorActivated = Boolean.valueOf(pref.getValue());
+            allowOverride = pref.isAllowOverride();
+        }else{
+            isEditorActivated = false;
+        }
+
         final Button activateCheckButton = new Button(composite, SWT.CHECK);
         activateCheckButton.setText(Messages.ChecklistEditorGeneralPreference_enable);
         activateCheckButton.setSelection(isEditorActivated);
@@ -62,18 +78,43 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
             }
         });
+        final Button allowOverrideCheckButton = new Button(composite, SWT.CHECK);
+        allowOverrideCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
+        allowOverrideCheckButton.setSelection(allowOverride);
+        allowOverrideCheckButton.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                allowOverride = allowOverrideCheckButton.getSelection();
+
+            }
+        });
 
         child  = new Composite(composite, SWT.NULL);
         child.setLayout(new GridLayout());
         child.setVisible(isEditorActivated);
-        final CLabel label = new CLabel(child, SWT.NULL);
-        label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard + Messages.ChecklistEditorGeneralPreference_2);
-        final CommandHandlerButton button_openFeatureTree = new CommandHandlerButton(child, SWT.PUSH,
-                Messages.ChecklistEditorGeneralPreference_3);
-
-        button_openFeatureTree.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
-        final Button showIdInVocabulary = new Button(child, SWT.CHECK);
-        isShowIdInVocabulary = PreferencesUtil.isShowIdInVocabularyInChecklistEditor();
+
+
+
+//
+
+
+//
+//        final CommandHandlerButton button_openWizard = new CommandHandlerButton(child, SWT.PUSH,
+//                "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler");
+//
+//        button_openWizard.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
+
+//        Table table = new Table
+        final CLabel description = new CLabel(child, SWT.NULL);
+        description.setText(Messages.ChecklistEditorGeneralPreference_Configure_display_of_Areas);
+
+        final Button showIdInVocabulary = new Button(child, SWT.RADIO);
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowIdInVocabulary);
+        if (pref != null){
+            isShowIdInVocabulary = Boolean.valueOf(pref.getValue());
+        }else{
+            isShowIdInVocabulary = false;
+        }
         showIdInVocabulary.setText(Messages.ChecklistEditorGeneralPreference_show_id_in_voc);
         showIdInVocabulary.setSelection(isShowIdInVocabulary);
         showIdInVocabulary.addSelectionListener(new SelectionAdapter(){
@@ -83,9 +124,80 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
              }
         });
+        final Button showSymbol1 = new Button(child, SWT.RADIO);
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbol1);
+        if (pref != null){
+            isShowSymbol1 = Boolean.valueOf(pref.getValue());
+        }else{
+            isShowSymbol1 = false;
+        }
+        showSymbol1.setText(Messages.ChecklistEditorGeneralPreference_show_symbol1);
+        showSymbol1.setSelection(isShowSymbol1);
+        showSymbol1.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                isShowSymbol1 = showSymbol1.getSelection();
+
+             }
+        });
+        final Button showSymbol2 = new Button(child, SWT.RADIO);
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbol2);
+        if (pref != null){
+            isShowSymbol2 = Boolean.valueOf(pref.getValue());
+        }else{
+            isShowSymbol2 = false;
+        }
+        showSymbol2.setText(Messages.ChecklistEditorGeneralPreference_show_symbol2);
+        showSymbol2.setSelection(isShowSymbol2);
+        showSymbol2.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                isShowSymbol2 = showSymbol2.getSelection();
+
+             }
+        });
+        final Button showTitle = new Button(child, SWT.RADIO);
+        isShowTitle = !(isShowIdInVocabulary || isShowSymbol1 || isShowSymbol2);
+
+        showTitle.setText(Messages.ChecklistEditorGeneralPreference_show_title);
+        showTitle.setSelection(isShowTitle);
+        showTitle.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                isShowTitle = showTitle.getSelection();
+
+             }
+        });
+
+        final Label seperator1 = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
+        final Button sortNamedAreaByVocabularyOrder = new Button(child, SWT.CHECK);
 
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AreasSortedByIdInVocabulary);
+        if (pref != null){
+            isSortByVocabularyOrder = Boolean.valueOf(pref.getValue());
+        }else{
+            isSortByVocabularyOrder = false;
+        }
+
+        sortNamedAreaByVocabularyOrder.setText(Messages.ChecklistEditorGeneralPreference_sort_areas);
+        sortNamedAreaByVocabularyOrder.setSelection(isSortByVocabularyOrder);
+        sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
+            @Override
+            public void widgetSelected(SelectionEvent e) {
+                isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
+             }
+        });
+        final Label seperator2 = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
+        final CLabel descriptionStatus = new CLabel(child, SWT.NULL);
+        descriptionStatus.setText("Configure how the status should be displayed");
         final Button showSymbol = new Button(child, SWT.CHECK);
-        isShowSymbol = PreferencesUtil.isShowSymbolInChecklistEditor();
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbolForStatus);
+        if (pref != null){
+            isShowSymbol = Boolean.valueOf(pref.getValue());
+        }else{
+            isShowSymbol = false;
+        }
+
         showSymbol.setText(Messages.ChecklistEditorGeneralPreference_show_symbol);
         showSymbol.setSelection(isShowSymbol);
         showSymbol.addSelectionListener(new SelectionAdapter(){
@@ -94,8 +206,14 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 isShowSymbol = showSymbol.getSelection();
              }
         });
-        PreferencesUtil.recursiveSetEnabled(button_openFeatureTree, CdmStore.isActive());
-        isShowRank = PreferencesUtil.isShowRankInChecklistEditor();
+//        PreferencesUtil.recursiveSetEnabled(button_openWizard, CdmStore.isActive());
+        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowRankInDistributionEditor);
+        if (pref != null){
+            isShowRank = Boolean.valueOf(pref.getValue());
+        }else{
+            isShowRank = false;
+        }
+
         final Button activateRankButton = new Button(child, SWT.CHECK);
         activateRankButton.setText(Messages.ChecklistEditorGeneralPreference_show_rank);
         activateRankButton.setSelection(isShowRank);
@@ -105,16 +223,7 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
                 isShowRank = activateRankButton.getSelection();
             }
         });
-        final Button sortNamedAreaByVocabularyOrder = new Button(child, SWT.CHECK);
-        isSortByVocabularyOrder = PreferencesUtil.isSortNamedAreaByOrderInVocabulary();
-        sortNamedAreaByVocabularyOrder.setText(Messages.ChecklistEditorGeneralPreference_sort_areas);
-        sortNamedAreaByVocabularyOrder.setSelection(isSortByVocabularyOrder);
-        sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
-             }
-        });
+
 
         if(isEditorActivated){
             child.setEnabled(true);
@@ -127,11 +236,62 @@ public class ChecklistEditorGeneralPreference extends CdmPreferencePage implemen
 
     @Override
     public boolean performOk() {
+        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
+        if (controller == null){
+            return false;
+        }
+        IPreferenceService service = controller.getPreferenceService();
+
+        CdmPreference pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.DistributionEditorActivated, Boolean.toString(isEditorActivated));
+        //ToDo
+        pref.setAllowOverride(allowOverride);
+        service.set(pref);
+
+        pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.ShowIdInVocabulary, Boolean.toString(isShowIdInVocabulary));
+        //ToDo
+        pref.setAllowOverride(true);
+        service.set(pref);
+
+        pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.ShowSymbol1, Boolean.toString(isShowSymbol1));
+        //ToDo
+        pref.setAllowOverride(true);
+        service.set(pref);
+        pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.ShowSymbol2, Boolean.toString(isShowSymbol2));
+        //ToDo
+        pref.setAllowOverride(true);
+        service.set(pref);
+
+
+        pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.ShowSymbolForStatus, Boolean.toString(isShowSymbol));
+        //ToDo
+        pref.setAllowOverride(true);
+        service.set(pref);
+
+        pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.ShowRankInDistributionEditor, Boolean.toString(isShowRank));
+        //ToDo
+        pref.setAllowOverride(true);
+        service.set(pref);
+        pref = CdmPreference.NewTaxEditorInstance( PreferencePredicate.AreasSortedByIdInVocabulary, Boolean.toString(isSortByVocabularyOrder));
+        //ToDo
+        pref.setAllowOverride(true);
+        service.set(pref);
+
         PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE, isEditorActivated);
         PreferencesUtil.setSortNamedAreasByOrderInVocabulary(isSortByVocabularyOrder);
         PreferencesUtil.setShowRankInChecklistEditor(isShowRank);
         PreferencesUtil.setShowSymbolInChecklistEditor(isShowSymbol);
-        PreferencesUtil.setShowIdInVocabularyInChecklistEditor(isShowIdInVocabulary);
+
+        if (isShowIdInVocabulary){
+            displayString = IPreferenceKeys.CHECKLIST_AREA_DISPLAY_ID_IN_VOCABULARY;
+        }else if (isShowSymbol1){
+            displayString = IPreferenceKeys.CHECKLIST_AREA_DISPLAY_SYMBOL1;
+        }else if (isShowSymbol2){
+            displayString = IPreferenceKeys.CHECKLIST_AREA_DISPLAY_SYMBOL2;
+        }else{
+            displayString = IPreferenceKeys.CHECKLIST_AREA_DISPLAY_TITLE;
+        }
+        PreferencesUtil.setShowIdInVocabularyInChecklistEditor(displayString);
+
         return true;
     }