2 * Copyright (C) 2018 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.taxeditor
.preference
.wizard
;
11 import java
.util
.ArrayList
;
12 import java
.util
.List
;
13 import java
.util
.UUID
;
15 import org
.apache
.commons
.lang
.StringUtils
;
16 import org
.eclipse
.jface
.wizard
.IWizardPage
;
17 import org
.eclipse
.jface
.wizard
.Wizard
;
19 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
20 import eu
.etaxonomy
.cdm
.api
.conversation
.IConversationEnabled
;
21 import eu
.etaxonomy
.cdm
.api
.service
.ITermService
;
22 import eu
.etaxonomy
.cdm
.model
.common
.DefinedTermBase
;
23 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
24 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
25 import eu
.etaxonomy
.cdm
.persistence
.dto
.TermDto
;
26 import eu
.etaxonomy
.cdm
.persistence
.hibernate
.CdmDataChangeMap
;
27 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
28 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
29 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
36 public class AvailableDistributionStatusAdminWizard
extends Wizard
implements IConversationEnabled
{
37 private ConversationHolder conversation
;
38 private final AvailableDistributionStatusPage aPage
;
41 public AvailableDistributionStatusAdminWizard() {
42 setWindowTitle(Messages
.AvailableDistributionStatusWizard_WIZARD_TITLE
);
43 // TODO if preferenceStore has elements checked load elements in wizard
44 pref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.AvailableDistributionStatus
);
47 pref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.AvailableDistributionStatus
, null);
49 aPage
= new AvailableDistributionStatusPage(Messages
.AvailableDistributionStatusWizard_PAGE_TITLE
, pref
, false);
53 public void addPages() {
58 public IWizardPage
getPage(String pageName
) {
64 public int getPageCount() {
69 public IWizardPage
[] getPages() {
70 IWizardPage
[] pages
= new IWizardPage
[1];
76 public String
getWindowTitle() {
78 return Messages
.AvailableDistributionStatusWizard_WINDOW_TITLE
;
82 public boolean performCancel() {
83 // TODO Auto-generated method stub
88 public boolean performFinish() {
89 Object
[] checkedElements
= aPage
.getViewer().getCheckedElements();
90 pref
= aPage
.getPreference();
92 List
<UUID
> listUIIDChecked
= new ArrayList
<>();
93 List
<DefinedTermBase
> preferredTerms
= new ArrayList
<>();
94 for (Object o
: checkedElements
) {
95 if(o
instanceof TermDto
){
96 TermDto termDto
= (TermDto
) o
;
97 listUIIDChecked
.add(termDto
.getUuid());
98 preferredTerms
.add(CdmStore
.getService(ITermService
.class).load(termDto
.getUuid()));
101 String saveCheckedElements
= StringUtils
.join(listUIIDChecked
, ";"); //$NON-NLS-1$
102 CdmPreference savePref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.AvailableDistributionStatus
, saveCheckedElements
);
103 savePref
.setAllowOverride(pref
.isAllowOverride());
104 PreferencesUtil
.setPreferenceToDB(savePref
);
107 // aPage.getVocabularies().get(0).getTerms()
108 // .forEach(dto -> terms.add(CdmStore.getService(ITermService.class).load(dto.getUuid())));
110 PreferencesUtil
.firePreferencesChanged(this.getClass());
115 public void update(CdmDataChangeMap changeEvents
) {
120 public ConversationHolder
getConversationHolder() {
121 if (conversation
== null) {
122 conversation
= CdmStore
.createConversation();