Project

General

Profile

Download (3.84 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2018 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9
package eu.etaxonomy.taxeditor.preference.wizard;
10

    
11
import java.util.ArrayList;
12
import java.util.UUID;
13

    
14
import org.apache.commons.lang.StringUtils;
15
import org.eclipse.jface.wizard.IWizardPage;
16
import org.eclipse.jface.wizard.Wizard;
17

    
18
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
19
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
20
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
21
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
22
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
23
import eu.etaxonomy.cdm.persistence.dto.TermVocabularyDto;
24
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
25
import eu.etaxonomy.taxeditor.l10n.Messages;
26
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
27
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
28
import eu.etaxonomy.taxeditor.store.CdmStore;
29

    
30
/**
31
 * @author k.luther
32
 * @since 04.06.2018
33
 *
34
 */
35
public class AvailableVocabularyWizard extends Wizard implements IConversationEnabled {
36

    
37
    private ConversationHolder conversation;
38
    private final AvailableAreaVocabulariesPage aPage;
39
    private boolean localPref = true;
40
    private CdmPreference pref;
41

    
42
    public AvailableVocabularyWizard(boolean localPref, CdmPreference pref, String featureTitle) {
43
        setWindowTitle(Messages.AvailableVocabularyWizard_WIZARD_TITLE);
44
        // TODO if preferenceStore has elements checked load elements in wizard
45
        this.localPref = localPref;
46
        this.pref = pref;
47
        aPage = new AvailableAreaVocabulariesPage(Messages.AvailableVocabularyWizard_PAGE_TITLE, localPref, pref, featureTitle);
48
    }
49

    
50
    @Override
51
    public void addPages() {
52
        addPage(aPage);
53
    }
54

    
55
    @Override
56
    public IWizardPage getPage(String pageName) {
57

    
58
        return aPage;
59
    }
60

    
61
    @Override
62
    public int getPageCount() {
63
       return 1;
64
    }
65

    
66
    @Override
67
    public IWizardPage[] getPages() {
68
        IWizardPage[] pages = new IWizardPage[1];
69
        pages [0] = aPage;
70
        return pages;
71
    }
72

    
73
    @Override
74
    public String getWindowTitle() {
75
        return Messages.AvailableVocabularyWizard_WINDOW_TITLE;
76
    }
77

    
78
    @Override
79
    public boolean performCancel() {
80
        return true;
81
    }
82

    
83
    @Override
84
    public boolean performFinish() {
85
        Object[] checkedElements = aPage.getViewer().getCheckedElements();
86

    
87
        ArrayList<UUID> listUIIDChecked = new ArrayList<UUID>();
88
        for (Object o : checkedElements) {
89
            if(o instanceof TermVocabularyDto){
90
                TermVocabularyDto vocDto = (TermVocabularyDto) o;
91
                listUIIDChecked.add(vocDto.getUuid());
92
            }
93
        }
94
        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
95
        String predicate = null;
96
        if (pref != null){
97
            predicate = pref.getPredicate();
98
        }
99
        if (!localPref){
100
            CdmPreference savePref = CdmPreference.NewInstance(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.getByKey(predicate), saveCheckedElements);
101
            savePref.setAllowOverride(pref.isAllowOverride());
102
            PreferencesUtil.setPreferenceToDB(savePref);
103

    
104
            PreferencesUtil.updateDBPreferences();
105
        }else{
106
            PreferencesUtil.setStringValue(IPreferenceKeys.DISTRIBUTION_VOCABULARIES, saveCheckedElements);
107
        }
108
        return true;
109
    }
110

    
111
    @Override
112
    public void update(CdmDataChangeMap changeEvents) {
113
    }
114

    
115
    @Override
116
    public ConversationHolder getConversationHolder() {
117
        if (conversation == null) {
118
            conversation = CdmStore.createConversation();
119
        }
120
        return conversation;
121
    }
122

    
123
}
(9-9/14)