Merge branch 'release/5.8.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / wizard / AvailableDistributionPerAreaStatusPage.java
index 89c20963393b3417d7f851717d3dfa519798861a..e952e6d323632bc26ae627ec8effb63b60b8eefd 100755 (executable)
@@ -52,6 +52,7 @@ import eu.etaxonomy.taxeditor.ui.dialog.selection.SelectionDialogFactory;
 public class AvailableDistributionPerAreaStatusPage extends AvailableDistributionStatusPage implements IPropertyChangeListener{
 
     List<CdmPreference> perAreaPreferences = new ArrayList();
+    List<CdmPreference> perAreaPreferencesDeleteList = new ArrayList();
     List<TermVocabularyDto> vocs;
     NamedArea actualArea;
     CdmPreference actualPref;
@@ -127,7 +128,7 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
                 PrefKey key;
                 if (actualArea != null){
                     areaText.setText(actualArea.getLabel());
-                    key = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.NewDistributionEditorInstance()+"area/"+actualArea.getUuid().toString()), PreferencePredicate.AvailableDistributionPerAreaStatus);
+                    key = newAreaSpecificStatusPreference();
                     actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
                     if (actualPref == null){
                         actualPref = CdmPreference.NewInstance(key, null);
@@ -149,35 +150,43 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
             }
 
         });
-        btnRemove = new Button(toolbar, SWT.NONE);
-        btnRemove.addSelectionListener(new SelectionListener(){
-
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-
-
-                PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.NewDistributionEditorInstance()+"area/"+actualArea.getUuid().toString()), PreferencePredicate.AvailableDistributionPerAreaStatus);
-                actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
-                actualPref = CdmPreference.NewInstance(key, null);
-
-                perAreaPreferences.add(actualPref);
-                status.setText("Preference for area " + actualArea.getLabel() + " removed.");
-                status.setVisible(true);
-                actualArea = null;
-                areaText.setText("");
-                rememberCheckedValues(getCheckedValuesFromPreferences());
-
-            }
-
-            @Override
-            public void widgetDefaultSelected(SelectionEvent e) {
-                // TODO Auto-generated method stub
-
-            }
-
-        });
-        btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
-        btnRemove.setToolTipText("");
+//        btnRemove = new Button(toolbar, SWT.NONE);
+//        btnRemove.addSelectionListener(new SelectionListener(){
+//
+//            @Override
+//            public void widgetSelected(SelectionEvent e) {
+//
+//                PrefKey key = newAreaSpecificStatusPreference();
+//                actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
+//                actualPref = CdmPreference.NewInstance(key, null);
+//                if (actualPref.getKey().equals(pref.getKey())){
+//                    pref = actualPref;
+//                }
+//
+//                perAreaPreferences.add(actualPref);
+//                if (actualArea != null){
+//                    status.setText("Preference for area " + actualArea.getLabel() + " removed. Now the status defined for all areas are displayed");
+//                }else{
+//                    status.setText("Preference for all areas is removed. Now all status will be displayed");
+//                }
+//                status.setVisible(true);
+//
+//                actualArea = null;
+//
+//                areaText.setText("");
+//                rememberCheckedValues(getCheckedValuesFromPreferences());
+//
+//            }
+//
+//            @Override
+//            public void widgetDefaultSelected(SelectionEvent e) {
+//                // TODO Auto-generated method stub
+//
+//            }
+//
+//        });
+//        btnRemove.setImage(ImageResources.getImage(ImageResources.ACTIVE_DELETE_ICON));
+//        btnRemove.setToolTipText("");
         status = new Label(toolbar, SWT.NONE);
         status.setVisible(false);
     }
@@ -191,7 +200,7 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
         Object eventSource = event.getSource();
         if(eventSource != this && btnSelectArea.equals(eventSource)){
             if (actualArea != null){
-                PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.DISTR_EDITOR+"/area/"+actualArea.getUuid().toString()), PreferencePredicate.AvailableDistributionPerAreaStatus);
+                PrefKey key = newAreaSpecificStatusPreference();
                 actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
                 areaText.setText(actualArea.getLabel());
             }else{
@@ -208,7 +217,7 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
            checkedValues = pref.getValue();
        }else{
            if (actualPref == null){
-               PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.DISTR_EDITOR+"/area/"+actualArea.getUuid().toString()), PreferencePredicate.AvailableDistributionPerAreaStatus);
+               PrefKey key = newAreaSpecificStatusPreference();
                actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
 
                if (actualPref == null){
@@ -251,9 +260,9 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
             savePref.setAllowOverride(pref.isAllowOverride());
             pref = savePref;
         }else{
-            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.NewDistributionEditorInstance()+"area/"+actualArea.getUuid().toString()), PreferencePredicate.AvailableDistributionPerAreaStatus);
+            PrefKey key = newAreaSpecificStatusPreference();
             actualPref = PreferenceResolver.resolve(perAreaPreferences, key);
-            CdmPreference savePref = CdmPreference.NewInstance(PreferenceSubject.fromKey(key), PreferencePredicate.AvailableDistributionPerAreaStatus, saveCheckedElements);
+            CdmPreference savePref = CdmPreference.NewInstance(PreferenceSubject.fromKey(key), PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
             if (actualPref != null){
                perAreaPreferences.remove(actualPref);
             }
@@ -263,11 +272,20 @@ public class AvailableDistributionPerAreaStatusPage extends AvailableDistributio
         }
     }
 
-
-
     @Override
     protected  List<TermVocabularyDto> getVocabulariesFromPreference(){
      return null;
     }
 
+    private PrefKey newAreaSpecificStatusPreference(){
+        PrefKey prefKey;
+        if (actualArea != null){
+            prefKey  = CdmPreference.NewKey(PreferenceSubject.NewInstance(PreferenceSubject.ROOT+"NamedArea["+actualArea.getUuid().toString()+"]"+PreferenceSubject.SEP), PreferencePredicate.AvailableDistributionStatus);
+        }else{
+            prefKey = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AvailableDistributionStatus);
+        }
+        return prefKey;
+    }
+
+
 }