Revision 8ef14383
Added by Alexander Oppermann about 9 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/presenter/dbstatus/DistributionTablePresenter.java | ||
---|---|---|
1 | 1 |
package eu.etaxonomy.cdm.vaadin.presenter.dbstatus; |
2 | 2 |
|
3 |
import java.sql.SQLException; |
|
4 |
import java.util.ArrayList; |
|
3 | 5 |
import java.util.Arrays; |
4 | 6 |
import java.util.HashMap; |
5 | 7 |
import java.util.HashSet; |
... | ... | |
27 | 29 |
import eu.etaxonomy.cdm.model.taxon.Classification; |
28 | 30 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
29 | 31 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
32 |
import eu.etaxonomy.cdm.vaadin.container.CdmSQLContainer; |
|
30 | 33 |
import eu.etaxonomy.cdm.vaadin.model.CdmTaxonTableCollection; |
31 | 34 |
import eu.etaxonomy.cdm.vaadin.model.DbTableDTO; |
32 | 35 |
import eu.etaxonomy.cdm.vaadin.model.DbTableDTOS; |
33 | 36 |
import eu.etaxonomy.cdm.vaadin.model.LazyLoadedContainer; |
37 |
import eu.etaxonomy.cdm.vaadin.util.CdmQueryFactory; |
|
34 | 38 |
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper; |
35 | 39 |
import eu.etaxonomy.cdm.vaadin.view.dbstatus.DistributionTableView; |
36 | 40 |
import eu.etaxonomy.cdm.vaadin.view.dbstatus.IDistributionTableComponent; |
... | ... | |
47 | 51 |
private final DistributionTableView view; |
48 | 52 |
private ITaxonService taxonService; |
49 | 53 |
|
50 |
public DistributionTablePresenter(DistributionTableView dtv){ |
|
54 |
public DistributionTablePresenter(DistributionTableView dtv) throws SQLException{
|
|
51 | 55 |
this.view = dtv; |
52 | 56 |
view.addListener(this); |
53 | 57 |
taxonService = (ITaxonService)CdmSpringContextHelper.newInstance().getBean("taxonServiceImpl"); |
... | ... | |
60 | 64 |
} |
61 | 65 |
|
62 | 66 |
|
63 |
|
|
64 |
//for sql container |
|
65 |
public static final String NAME_ID = "Name"; |
|
66 |
public static final String PB_ID = "Pb"; |
|
67 |
public static final String FN_ID = "Fn"; |
|
68 |
public static final String UNP_ID = "Unp"; |
|
69 |
public static final String UNR_ID = "Unr"; |
|
70 |
|
|
71 |
public static String TERM = null; |
|
72 |
|
|
73 |
// private static final String SELECT_QUERY="SELECT tb.id as taxon_id, tnb.titleCache as " + NAME_ID + " , tb.publish as " + PB_ID + " , tb.unplaced as " + UNP_ID + FROM_QUERY; |
|
74 |
private static final String SELECT_QUERY="Select tb.DTYPE, tb.id, tb.titleCache AS Taxon, deb.DTYPE, deb.id, deb.area_id, dtb.vocabulary_id, dtb1.vocabulary_id, "; |
|
75 |
|
|
76 |
private static final String PIVOT_QUERY = "MAX( IF(dtb1.titleCache = '"+ TERM +"', dtb.titleCache, NULL) ) as '"+ TERM +"',"; |
|
77 |
|
|
78 |
private static final String FROM_QUERY = " From TaxonBase tb JOIN DescriptionBase db ON db.taxon_id=tb.id JOIN DescriptionElementBase deb ON deb.indescription_id=db.id Join DefinedTermBase dtb on deb.status_id=dtb.id Join DefinedTermBase dtb1 on deb.area_id=dtb1.id WHERE deb.DTYPE LIKE 'Distribution' GROUP BY tb.id"; |
|
79 |
|
|
80 |
private static final String COUNT_QUERY = "SELECT count(*) " + FROM_QUERY; |
|
81 |
|
|
82 |
|
|
83 | 67 |
public ComboBox updateDistributionField(DescriptionElementBase deb, |
84 | 68 |
Distribution db, |
85 | 69 |
BeanItemContainer<PresenceAbsenceTerm> termContainer, ComboBox box, |
... | ... | |
97 | 81 |
return term.getTerms(); |
98 | 82 |
} |
99 | 83 |
|
84 |
|
|
85 |
public List<String> getTermList() { |
|
86 |
VaadinSession session = VaadinSession.getCurrent(); |
|
87 |
UUID termUUID = (UUID) session.getAttribute("selectedTerm"); |
|
88 |
TermVocabulary<DefinedTermBase> term = vocabularyService.load(termUUID); |
|
89 |
term = CdmBase.deproxy(term, TermVocabulary.class); |
|
90 |
Set<DefinedTermBase> terms = term.getTerms(); |
|
91 |
List<String> list = new ArrayList<String>(); |
|
92 |
for(DefinedTermBase dtb: terms){ |
|
93 |
list.add(dtb.getTitleCache()); |
|
94 |
} |
|
95 |
return list; |
|
96 |
} |
|
97 |
|
|
100 | 98 |
@Override |
101 | 99 |
public HashMap<DescriptionElementBase, Distribution> getDistribution(DefinedTermBase dt, Taxon taxon) { |
102 | 100 |
Set<Feature> setFeature = new HashSet<Feature>(Arrays.asList(Feature.DISTRIBUTION())); |
... | ... | |
173 | 171 |
return items; |
174 | 172 |
} |
175 | 173 |
|
176 |
|
|
174 |
@Override |
|
175 |
public CdmSQLContainer getSQLContainer() throws SQLException{ |
|
176 |
Classification classification = getChosenClassification(); |
|
177 |
int classificationId = classification.getId(); |
|
178 |
List<String> termList = getTermList(); |
|
179 |
CdmSQLContainer container = new CdmSQLContainer(new CdmQueryFactory().generateTaxonDistributionQuery("id", termList, classificationId)); |
|
180 |
return container; |
|
181 |
} |
|
177 | 182 |
|
178 | 183 |
@Override |
179 | 184 |
public LazyLoadedContainer getLazyLoadedContainer(){ |
Also available in: Unified diff
Added SQL-Container to DB-Status App