Project

General

Profile

« Previous | Next » 

Revision 8ef14383

Added by Alexander Oppermann about 9 years ago

Added SQL-Container to DB-Status App

View differences:

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