Project

General

Profile

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

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

    
8
import com.vaadin.ui.UI;
9

    
10
import eu.etaxonomy.cdm.api.service.IClassificationService;
11
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
12
import eu.etaxonomy.cdm.api.service.IVocabularyService;
13
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
14
import eu.etaxonomy.cdm.model.common.TermType;
15
import eu.etaxonomy.cdm.model.common.TermVocabulary;
16
import eu.etaxonomy.cdm.model.location.NamedArea;
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.util.DistributionEditorUtil;
22
import eu.etaxonomy.cdm.vaadin.view.dbstatus.DistributionSelectionView;
23
import eu.etaxonomy.cdm.vaadin.view.dbstatus.DistributionTableView;
24

    
25
public class DistributionSelectionPresenter {
26

    
27
	private DistributionSelectionView view;
28

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

    
35
	public void buttonClick(TaxonNode taxonNode, TermVocabulary<NamedArea> term, Set<NamedArea> selectedAreas) {
36
		DistributionTableView dtv = new DistributionTableView();
37
		new DistributionTablePresenter(dtv);
38
		UI.getCurrent().getNavigator().addView("table", dtv);
39

    
40
		DistributionEditorUtil.openDistributionView(taxonNode, term, selectedAreas);
41
	}
42

    
43
	public List<TaxonNode> getTaxonNodeList() {
44
		List<TaxonNode> nodes = new ArrayList<TaxonNode>();
45

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

    
66
	public List<TermVocabulary<DefinedTermBase>> getNamedAreaList() {
67

    
68
		IVocabularyService vocabularyService = CdmSpringContextHelper.getVocabularyService();
69
		List<TermVocabulary<DefinedTermBase>> termList = vocabularyService.findByTermType(TermType.NamedArea);
70
		return termList;
71
	}
72

    
73
	 private List<String> NODE_INIT_STRATEGY(){
74
	        return Arrays.asList(new String[]{
75
	            "taxon.sec",
76
	            "taxon.name",
77
	            "classification"
78
	    });}
79
}
(1-1/2)