Project

General

Profile

Download (3.31 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.presenter.dbstatus;
2

    
3
import java.sql.SQLException;
4
import java.util.ArrayList;
5
import java.util.Arrays;
6
import java.util.List;
7

    
8
import com.vaadin.server.VaadinSession;
9
import com.vaadin.ui.UI;
10

    
11
import eu.etaxonomy.cdm.api.service.IClassificationService;
12
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
13
import eu.etaxonomy.cdm.api.service.IVocabularyService;
14
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
15
import eu.etaxonomy.cdm.model.common.TermType;
16
import eu.etaxonomy.cdm.model.common.TermVocabulary;
17
import eu.etaxonomy.cdm.model.name.Rank;
18
import eu.etaxonomy.cdm.model.taxon.Classification;
19
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
20
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper;
21
import eu.etaxonomy.cdm.vaadin.view.dbstatus.DistributionSelectionView;
22
import eu.etaxonomy.cdm.vaadin.view.dbstatus.DistributionTableView;
23
import eu.etaxonomy.cdm.vaadin.view.dbstatus.IDistributionSelectionComponent;
24

    
25
public class DistributionSelectionPresenter implements IDistributionSelectionComponent.DistributionSelectionComponentListener {
26

    
27
	DistributionSelectionView view;
28

    
29
	public DistributionSelectionPresenter(DistributionSelectionView dsv) {
30
		this.view = dsv;
31
		view.addListener(this);
32
		view.dataBinding();
33
	}
34

    
35
	@Override
36
	public void buttonClick(TaxonNode taxonNode, TermVocabulary<DefinedTermBase> term) throws SQLException {
37
	    VaadinSession.getCurrent().setAttribute("taxonNodeUUID", taxonNode.getUuid());
38
	    VaadinSession.getCurrent().setAttribute("selectedTerm", term.getUuid());
39

    
40
	    DistributionTableView dtv = new DistributionTableView();
41
	    new DistributionTablePresenter(dtv);
42
	    UI.getCurrent().getNavigator().addView("table", dtv);
43
	    //navigate to table view
44
        UI.getCurrent().getNavigator().navigateTo("table");
45
	}
46

    
47
	@Override
48
	public List<TaxonNode> getTaxonNodeList() {
49
		List<TaxonNode> nodes = new ArrayList<TaxonNode>();
50

    
51
		IClassificationService classificationService = CdmSpringContextHelper.getClassificationService();
52
		ITaxonNodeService taxonNodeService = CdmSpringContextHelper.getTaxonNodeService();
53
		List<Classification> classificationList = classificationService.listClassifications(null, null, null, NODE_INIT_STRATEGY());
54
		for (Classification classification : classificationList) {
55
			nodes.add(classification.getRootNode());
56
		}
57
		for (Classification classification : classificationList) {
58
			List<TaxonNode> allNodesForClassification = taxonNodeService.listAllNodesForClassification(classification, null, null);
59
			for (TaxonNode taxonNode : allNodesForClassification) {
60
				if(taxonNode.getTaxon()!=null && taxonNode.getTaxon().getName()!=null && taxonNode.getTaxon().getName().getRank()!=null){
61
					Rank rank = taxonNode.getTaxon().getName().getRank();
62
					if(rank.isHigher(Rank.SPECIES()) || rank.equals(Rank.SPECIES())){
63
						nodes.add(taxonNode);
64
					}
65
				}
66
			}
67
		}
68
		return nodes;
69
	}
70

    
71
	@Override
72
	public List<TermVocabulary<DefinedTermBase>> getNamedAreaList() {
73

    
74
		IVocabularyService vocabularyService = CdmSpringContextHelper.getVocabularyService();
75
		List<TermVocabulary<DefinedTermBase>> termList = vocabularyService.findByTermType(TermType.NamedArea);
76
		return termList;
77
	}
78

    
79
	 private List<String> NODE_INIT_STRATEGY(){
80
	        return Arrays.asList(new String[]{
81
	            "taxon.sec",
82
	            "taxon.name",
83
	            "classification"
84
	    });}
85
}
(1-1/2)