package eu.etaxonomy.taxeditor.preference.wizard;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
import java.util.UUID;
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
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
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];
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();
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) {