Project

General

Profile

Download (3.94 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.CdmSQLStringDecorator;
23
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
24
import eu.etaxonomy.cdm.vaadin.view.IStatusComposite;
25
import eu.etaxonomy.cdm.vaadin.view.IStatusComposite.StatusComponentListener;
26

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

    
34
    private final IStatusComposite composite;
35

    
36
    private LeafNodeTaxonContainer container;
37

    
38
    private ITaxonService taxonService;
39

    
40
    private int totalNoOfTaxa = 0;
41

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

    
49
        initServices();
50
    }
51

    
52
    private void initServices() {
53
        taxonService = CdmSpringContextHelper.getTaxonService();
54
    }
55

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

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

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

    
82
    @Override
83
    public void removeUnplacedFilter() {
84
        container.removeUnplacedFilter();
85
    }
86

    
87
    @Override
88
    public void setUnpublishedFilter() {
89
        container.setUnpublishedFilter();
90
    }
91

    
92
    @Override
93
    public void removeUnpublishedFilter() {
94
        container.removeUnpublishedFilter();
95
    }
96

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

    
102
    @Override
103
    public void removeNameFilter() {
104
        container.removeNameFilter();
105
    }
106

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

    
112
    @Override
113
    public int getTotalNoOfTaxa() {
114
        return totalNoOfTaxa;
115
    }
116

    
117
    @Override
118
    public void addChildren(Object parentItemId) {
119
        //container.addChildren(parentItemId);
120
    }
121

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

    
131

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

    
143

    
144
}
(2-2/2)