3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.vaadin
.presenter
;
12 import java
.sql
.SQLException
;
13 import java
.util
.Collection
;
14 import java
.util
.UUID
;
16 import com
.vaadin
.data
.util
.filter
.Compare
;
17 import com
.vaadin
.data
.util
.filter
.Compare
.Equal
;
19 import eu
.etaxonomy
.cdm
.api
.service
.ITaxonService
;
20 import eu
.etaxonomy
.cdm
.model
.common
.CdmBase
;
21 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
22 import eu
.etaxonomy
.cdm
.vaadin
.container
.CdmSQLContainer
;
23 import eu
.etaxonomy
.cdm
.vaadin
.container
.LeafNodeTaxonContainer
;
24 import eu
.etaxonomy
.cdm
.vaadin
.util
.CdmQueryFactory
;
25 import eu
.etaxonomy
.cdm
.vaadin
.util
.CdmSpringContextHelper
;
26 import eu
.etaxonomy
.cdm
.vaadin
.view
.IStatusComposite
.StatusComponentListener
;
33 public class StatusPresenter
implements StatusComponentListener
{
36 public final static String C_TCACHE_ID
= "titleCache";
38 private LeafNodeTaxonContainer leafNodeTaxonContainer
;
40 private CdmSQLContainer classificationContainer
;
42 private final ITaxonService taxonService
;
44 private int totalNoOfTaxa
= 0;
46 public StatusPresenter() {
47 taxonService
= CdmSpringContextHelper
.getTaxonService();
52 public void removeFilters() {
53 removeUnplacedFilter();
54 removeUnpublishedFilter();
59 public LeafNodeTaxonContainer
loadTaxa(int classificationId
) throws SQLException
{
60 leafNodeTaxonContainer
= new LeafNodeTaxonContainer(classificationId
);
61 totalNoOfTaxa
= leafNodeTaxonContainer
.getTotalNoOfTaxa();
62 return leafNodeTaxonContainer
;
66 public Object
getClassificationId(String classification
) {
67 if(classification
== null) {
70 Equal cnameFilter
= new Compare
.Equal("titleCache", classification
);
71 classificationContainer
.addContainerFilter(cnameFilter
);
72 Collection
<?
> itemIds
= classificationContainer
.getItemIds();
74 if(!itemIds
.isEmpty()) {
75 itemId
= itemIds
.iterator().next();
77 classificationContainer
.removeContainerFilter(cnameFilter
);
82 public void refresh() {
83 leafNodeTaxonContainer
.refresh();
86 public void setUnplacedFilter() {
87 leafNodeTaxonContainer
.setUnplacedFilter();
91 public void removeUnplacedFilter() {
92 leafNodeTaxonContainer
.removeUnplacedFilter();
96 public void setUnpublishedFilter() {
97 leafNodeTaxonContainer
.setUnpublishedFilter();
101 public void removeUnpublishedFilter() {
102 leafNodeTaxonContainer
.removeUnpublishedFilter();
106 public void setNameFilter(String filterString
) {
107 leafNodeTaxonContainer
.setNameFilter(filterString
);
111 public void removeNameFilter() {
112 leafNodeTaxonContainer
.removeNameFilter();
116 public void setIdFilter(Object itemId
) {
117 leafNodeTaxonContainer
.setIdFilter(itemId
);
121 public void removeIdFilter() {
122 leafNodeTaxonContainer
.removeDynamicFilters();
126 public void removeDynamicFilters() {
127 leafNodeTaxonContainer
.removeDynamicFilters();
131 public int getCurrentNoOfTaxa() {
132 return leafNodeTaxonContainer
.size();
136 public int getTotalNoOfTaxa() {
137 return totalNoOfTaxa
;
141 public boolean isSynonym(Object itemId
) {
142 return leafNodeTaxonContainer
.isSynonym(itemId
);
146 public void refreshSynonymCache() {
147 leafNodeTaxonContainer
.refreshSynonymCache();
151 public CdmSQLContainer
loadClassifications() throws SQLException
{
152 classificationContainer
= CdmSQLContainer
.newInstance("Classification");
153 return classificationContainer
;
158 public void updatePublished(boolean pb
, Object itemId
) {
159 UUID uuid
= UUID
.fromString((String
)leafNodeTaxonContainer
.getItem(itemId
).getItemProperty(CdmQueryFactory
.UUID_ID
).getValue());
160 Taxon taxon
= CdmBase
.deproxy(taxonService
.load(uuid
), Taxon
.class);
161 boolean currentPb
= taxon
.isPublish();
162 if(currentPb
!= pb
) {
163 taxon
.setPublish(pb
);
164 taxonService
.merge(taxon
);
169 public LeafNodeTaxonContainer
getCurrentLeafNodeTaxonContainer() {
170 return leafNodeTaxonContainer
;
174 public CdmSQLContainer
getClassificationContainer() {
175 return classificationContainer
;