Merge branch 'release/5.8.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / wizard / AvailableDistributionStatusWizard.java
index 5867bd9e78d272942f2e5a6162879b8068f9945a..131d2f63da0f883ab39cd1e133059453072851b2 100755 (executable)
@@ -9,7 +9,6 @@
 package eu.etaxonomy.taxeditor.preference.wizard;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 
@@ -20,14 +19,16 @@ import org.eclipse.jface.wizard.Wizard;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITermService;
-import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.cdm.model.term.DefinedTermBase;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.cdm.persistence.dto.TermDto;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.store.TermStore;
 
 /**
  * @author k.luther
@@ -39,12 +40,15 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
     private final AvailableDistributionStatusPage aPage;
     CdmPreference pref;
 
-
     public AvailableDistributionStatusWizard() {
         setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
         // TODO if preferenceStore has elements checked load elements in wizard
         pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
-        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref);
+        if (pref == null) {
+            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null);
+        }
+        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref, true);
+
     }
 
     @Override
@@ -52,29 +56,17 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
         addPage(aPage);
     }
 
-
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IWizardPage getPage(String pageName) {
 
         return aPage;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public int getPageCount() {
        return 1;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public IWizardPage[] getPages() {
         IWizardPage[] pages = new IWizardPage[1];
@@ -82,37 +74,18 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
         return pages;
     }
 
-
-
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public String getWindowTitle() {
 
         return Messages.AvailableDistributionStatusWizard_WINDOW_TITLE;
     }
 
-
-
-
-
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean performCancel() {
         // TODO Auto-generated method stub
         return true;
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public boolean performFinish() {
         Object[] checkedElements = aPage.getViewer().getCheckedElements();
@@ -121,39 +94,26 @@ public class AvailableDistributionStatusWizard extends Wizard implements IConver
         List<DefinedTermBase> preferredTerms = new ArrayList<>();
         for (Object o : checkedElements) {
             if(o instanceof TermDto){
-                TermDto otb = (TermDto) o;
-                listUIIDChecked.add(otb.getUuid());
-                preferredTerms.add(CdmStore.getService(ITermService.class).load(otb.getUuid()));
+                TermDto termDto = (TermDto) o;
+                listUIIDChecked.add(termDto.getUuid());
+                preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
             }
         }
         String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
-        pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, saveCheckedElements);
 
-        PreferencesUtil.setPreferenceToDB(pref);
-        Collection<DefinedTermBase> terms = new ArrayList<>();
-        aPage.getVocabularies().get(0).getTerms()
-        .forEach(dto -> terms.add(CdmStore.getService(ITermService.class).load(dto.getUuid())));
-        CdmStore.getTermManager().setPreferredTerms(preferredTerms, terms);
+        PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), saveCheckedElements);
+        PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
+
+        CdmStore.getTermManager().setPreferredTerms(preferredTerms, TermStore.getTerms(TermType.PresenceAbsenceTerm, null));
         PreferencesUtil.firePreferencesChanged(this.getClass());
         return true;
     }
 
-
-
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void update(CdmDataChangeMap changeEvents) {
-        // TODO Auto-generated method stub
 
     }
 
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public ConversationHolder getConversationHolder() {
         if (conversation == null) {