package eu.etaxonomy.taxeditor.preference.menu;
+import java.util.ArrayList;
import java.util.List;
+import java.util.UUID;
+
+import org.apache.commons.lang.StringUtils;
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
import eu.etaxonomy.cdm.model.term.TermType;
+import eu.etaxonomy.cdm.persistence.dto.TermDto;
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
import eu.etaxonomy.taxeditor.preference.GeneralTermPreference;
+import eu.etaxonomy.taxeditor.preference.LocalOrDefaultEnum;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
+import eu.etaxonomy.taxeditor.store.CdmStore;
/**
* <p>NameTypeDesignationStatusMenuPreferences class.</p>
// TODO Auto-generated method stub
return null;
}
+
+ @Override
+ public boolean performOk() {
+ if (!isApply()){
+ return true;
+ }
+ Object[] checkedElements = treeComposite.getViewer().getCheckedElements();
+ List<UUID> listUIIDChecked = new ArrayList<>();
+ List<TermDto> preferredTerms = new ArrayList<>();
+ for (Object o : checkedElements) {
+ if(o instanceof TermDto){
+ TermDto termDto = (TermDto) o;
+ listUIIDChecked.add(termDto.getUuid());
+ preferredTerms.add(termDto);
+ }
+ }
+ String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
+
+ PreferencesUtil.setStringValue(PreferencePredicate.NameTypeDesignationStatus.getKey(), saveCheckedElements);
+ String text = this.useLocalOrAdmin.getText();
+ if (text.equals(LocalOrDefaultEnum.Database.getLabel()) || text.equals(LocalOrDefaultEnum.Default.getLabel())){
+ PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NameTypeDesignationStatus.getKey()), false);
+ }else if (text.equals(LocalOrDefaultEnum.Local.getLabel())){
+ PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NameTypeDesignationStatus.getKey()), true);
+ }
+
+ CdmStore.getTermManager().setPreferredTermsByType(preferredTerms, TermType.NameTypeDesignationStatus);
+ PreferencesUtil.firePreferencesChanged(this.getClass());
+ return true;
+ }
}