Project

General

Profile

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

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

    
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;
30

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

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

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

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

    
56
        return aPage;
57
    }
58

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

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

    
71
    @Override
72
    public String getWindowTitle() {
73

    
74
        return Messages.AvailableDistributionStatusWizard_WINDOW_TITLE;
75
    }
76

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

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

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

    
98
        PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), saveCheckedElements);
99
        PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), true);
100
        PreferencesUtil.firePreferencesChanged(this.getClass());
101
        return true;
102
    }
103

    
104
    @Override
105
    public void update(CdmDataChangeMap changeEvents) {
106

    
107
    }
108

    
109
    @Override
110
    public ConversationHolder getConversationHolder() {
111
        if (conversation == null) {
112
            conversation = CdmStore.createConversation();
113
        }
114
        return conversation;
115
    }
116

    
117
}
(8-8/14)