Project

General

Profile

Download (4.18 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2015 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.cdm.vaadin.presenter;
11

    
12
import java.sql.SQLException;
13
import java.util.UUID;
14

    
15
import com.vaadin.data.util.sqlcontainer.query.generator.filter.QueryBuilder;
16

    
17
import eu.etaxonomy.cdm.api.service.ITaxonService;
18
import eu.etaxonomy.cdm.model.common.CdmBase;
19
import eu.etaxonomy.cdm.model.taxon.Taxon;
20
import eu.etaxonomy.cdm.vaadin.container.CdmSQLContainer;
21
import eu.etaxonomy.cdm.vaadin.container.LeafNodeTaxonContainer;
22
import eu.etaxonomy.cdm.vaadin.util.CdmQueryFactory;
23
import eu.etaxonomy.cdm.vaadin.util.CdmSQLStringDecorator;
24
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
25
import eu.etaxonomy.cdm.vaadin.view.IStatusComposite;
26
import eu.etaxonomy.cdm.vaadin.view.IStatusComposite.StatusComponentListener;
27

    
28
/**
29
 * @author cmathew
30
 * @date 10 Mar 2015
31
 *
32
 */
33
public class StatusPresenter implements StatusComponentListener {
34

    
35
    private final IStatusComposite composite;
36

    
37
    private LeafNodeTaxonContainer container;
38

    
39
    private final ITaxonService taxonService;
40

    
41
    private int totalNoOfTaxa = 0;
42

    
43
    public StatusPresenter(IStatusComposite composite) {
44
        this.composite = composite;
45
        composite.setListener(this);
46
        // TODO: Need to evaluate the various sql dialects and make sure that these
47
        // queries are compatible with all
48
        QueryBuilder.setStringDecorator(new CdmSQLStringDecorator());
49

    
50
        taxonService = CdmSpringContextHelper.getTaxonService();
51
    }
52

    
53

    
54
    @Override
55
    public void removeFilters() {
56
        removeUnplacedFilter();
57
        removeUnpublishedFilter();
58
        removeNameFilter();
59
    }
60

    
61
    /* (non-Javadoc)
62
     * @see eu.etaxonomy.cdm.vaadin.view.IStatusComponent.StatusComponentListener#load()
63
     */
64
    @Override
65
    public LeafNodeTaxonContainer loadTaxa(int classificationId) throws SQLException {
66
        container = new LeafNodeTaxonContainer(classificationId);
67
        totalNoOfTaxa = container.getTotalNoOfTaxa();
68
        return container;
69
    }
70

    
71
    @Override
72
    public void refresh() {
73
        container.refresh();
74
    }
75
    @Override
76
    public void setUnplacedFilter() {
77
        container.setUnplacedFilter();
78
    }
79

    
80
    @Override
81
    public void removeUnplacedFilter() {
82
        container.removeUnplacedFilter();
83
    }
84

    
85
    @Override
86
    public void setUnpublishedFilter() {
87
        container.setUnpublishedFilter();
88
    }
89

    
90
    @Override
91
    public void removeUnpublishedFilter() {
92
        container.removeUnpublishedFilter();
93
    }
94

    
95
    @Override
96
    public void setNameFilter(String filterString) {
97
        container.setNameFilter(filterString);
98
    }
99

    
100
    @Override
101
    public void removeNameFilter() {
102
        container.removeNameFilter();
103
    }
104

    
105
    @Override
106
    public int getCurrentNoOfTaxa() {
107
        return container.size();
108
    }
109

    
110
    @Override
111
    public int getTotalNoOfTaxa() {
112
        return totalNoOfTaxa;
113
    }
114

    
115
    @Override
116
    public boolean isSynonym(Object itemId) {
117
        return container.isSynonym(itemId);
118
    }
119

    
120
    /* (non-Javadoc)
121
     * @see eu.etaxonomy.cdm.vaadin.view.IStatusComponent.StatusComponentListener#loadClassifications()
122
     */
123
    @Override
124
    public CdmSQLContainer loadClassifications() throws SQLException {
125
        CdmSQLContainer container = CdmSQLContainer.newInstance("Classification");
126
        return container;
127
    }
128

    
129

    
130
    @Override
131
    public void updatePublished(boolean pb, Object itemId) {
132
        UUID uuid = UUID.fromString((String)container.getItem(itemId).getItemProperty(CdmQueryFactory.UUID_ID).getValue());
133
        Taxon taxon = CdmBase.deproxy(taxonService.load(uuid), Taxon.class);
134
        boolean currentPb = taxon.isPublish();
135
        if(currentPb != pb) {
136
            taxon.setPublish(pb);
137
            taxonService.merge(taxon);
138
        }
139
    }
140

    
141

    
142
    /* (non-Javadoc)
143
     * @see eu.etaxonomy.cdm.vaadin.view.IStatusComposite.StatusComponentListener#getCurrentLeafNodeTaxonContainer()
144
     */
145
    @Override
146
    public LeafNodeTaxonContainer getCurrentLeafNodeTaxonContainer() {
147
        return container;
148
    }
149

    
150
}
(3-3/3)