Project

General

Profile

Download (3.94 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.Collection;
13
import java.util.List;
14
import java.util.UUID;
15

    
16
import org.apache.commons.lang.StringUtils;
17
import org.eclipse.jface.wizard.IWizardPage;
18
import org.eclipse.jface.wizard.Wizard;
19

    
20
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
21
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
22
import eu.etaxonomy.cdm.api.service.ITermService;
23
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
24
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
25
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
26
import eu.etaxonomy.cdm.persistence.dto.TermDto;
27
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
28
import eu.etaxonomy.taxeditor.l10n.Messages;
29
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
30
import eu.etaxonomy.taxeditor.store.CdmStore;
31

    
32
/**
33
 * @author k.luther
34
 * @since 05.10.2018
35
 *
36
 */
37
public class AvailableDistributionStatusWizard extends Wizard implements IConversationEnabled{
38
    private ConversationHolder conversation;
39
    private final AvailableDistributionStatusPage aPage;
40
    CdmPreference pref;
41

    
42
    public AvailableDistributionStatusWizard() {
43
        setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
44
        // TODO if preferenceStore has elements checked load elements in wizard
45
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
46
        aPage = new AvailableDistributionStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, pref, true);
47
    }
48

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

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

    
57
        return aPage;
58
    }
59

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

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

    
72
    @Override
73
    public String getWindowTitle() {
74

    
75
        return Messages.AvailableDistributionStatusWizard_WINDOW_TITLE;
76
    }
77

    
78
    @Override
79
    public boolean performCancel() {
80
        // TODO Auto-generated method stub
81
        return true;
82
    }
83

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

    
88
        List<UUID> listUIIDChecked = new ArrayList<>();
89
        List<DefinedTermBase> preferredTerms = new ArrayList<>();
90
        for (Object o : checkedElements) {
91
            if(o instanceof TermDto){
92
                TermDto termDto = (TermDto) o;
93
                listUIIDChecked.add(termDto.getUuid());
94
                preferredTerms.add(CdmStore.getService(ITermService.class).load(termDto.getUuid()));
95
            }
96
        }
97
        String saveCheckedElements = StringUtils.join(listUIIDChecked, ";"); //$NON-NLS-1$
98

    
99
        Collection<DefinedTermBase> terms = new ArrayList<>();
100

    
101
        terms.addAll(CdmStore.getService(ITermService.class).listByTermType(this.aPage.type, null, 0, null, null));
102

    
103
//        aPage.getVocabularies().get(0).getTerms()
104
//        .forEach(dto -> terms.add(CdmStore.getService(ITermService.class).load(dto.getUuid())));
105
        CdmStore.getTermManager().setPreferredTerms(preferredTerms, terms);
106
        CdmStore.getTermManager().clearTermMapForTermType(this.aPage.type);
107
        PreferencesUtil.firePreferencesChanged(this.getClass());
108
        return true;
109
    }
110

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

    
114
    }
115

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

    
124
}
(8-8/14)