Project

General

Profile

« Previous | Next » 

Revision dd433955

Added by Patrick Plitzner over 7 years ago

ref #5458 Add named areas selection box

View differences:

src/main/java/eu/etaxonomy/cdm/vaadin/presenter/dbstatus/DistributionSelectionPresenter.java
4 4
import java.util.ArrayList;
5 5
import java.util.Arrays;
6 6
import java.util.List;
7
import java.util.Set;
7 8

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

  
......
13 14
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
14 15
import eu.etaxonomy.cdm.model.common.TermType;
15 16
import eu.etaxonomy.cdm.model.common.TermVocabulary;
17
import eu.etaxonomy.cdm.model.location.NamedArea;
16 18
import eu.etaxonomy.cdm.model.name.Rank;
17 19
import eu.etaxonomy.cdm.model.taxon.Classification;
18 20
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
......
33 35
	}
34 36

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

  
41
		DistributionEditorUtil.openDistributionView(taxonNode, term);
43
		DistributionEditorUtil.openDistributionView(taxonNode, term, selectedAreas);
42 44
	}
43 45

  
44 46
	@Override
src/main/java/eu/etaxonomy/cdm/vaadin/presenter/dbstatus/DistributionTablePresenter.java
147 147
//      Collections.sort(list);
148 148
        return list;
149 149
    }
150
    
151
    private List<String> getNamedAreas(){
152
    	String selectedAreas = (String) VaadinSession.getCurrent().getAttribute("selectedAreas");
153
    	return Arrays.asList(selectedAreas.split(","));
154
    }
150 155

  
151 156

  
152 157
	private SortedSet<DefinedTermBase> getTermSet(){
......
223 228
			nodeIds.add(taxonNode.getId());
224 229
		}
225 230
		List<String> termList = getTermList();
226
		CdmSQLContainer container = new CdmSQLContainer(CdmQueryFactory.generateTaxonDistributionQuery(termList, nodeIds));
231
		List<String> namesAreaUuids = getNamedAreas();
232
		CdmSQLContainer container = new CdmSQLContainer(CdmQueryFactory.generateTaxonDistributionQuery(termList, nodeIds, namesAreaUuids));
227 233
		return container;
228 234
	}
229 235

  
src/main/java/eu/etaxonomy/cdm/vaadin/util/CdmQueryFactory.java
59 59
        return generateQueryDelegate(SELECT_QUERY, COUNT_QUERY, CONTAINS_QUERY);
60 60
    }
61 61

  
62
    public static QueryDelegate generateTaxonDistributionQuery(List<String> termList, List<Integer> taxonNodeIds) throws SQLException {
62
    public static QueryDelegate generateTaxonDistributionQuery(List<String> termList, List<Integer> taxonNodeIds, List<String> namesAreaUuids) throws SQLException {
63 63

  
64 64
    	String idString = "";
65 65
    	Iterator<Integer> nodeIterator = taxonNodeIds.iterator();
src/main/java/eu/etaxonomy/cdm/vaadin/util/DistributionEditorUtil.java
1 1
package eu.etaxonomy.cdm.vaadin.util;
2 2

  
3
import java.util.Set;
4

  
3 5
import com.vaadin.server.VaadinSession;
4 6
import com.vaadin.ui.Notification;
5
import com.vaadin.ui.Notification.Type;
6 7
import com.vaadin.ui.UI;
7 8

  
8 9
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
9 10
import eu.etaxonomy.cdm.model.common.TermVocabulary;
11
import eu.etaxonomy.cdm.model.location.NamedArea;
10 12
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
11 13

  
12 14
public class DistributionEditorUtil {
13 15

  
14
	public static void openDistributionView(TaxonNode taxonNode, TermVocabulary<DefinedTermBase> term) {
16
	public static void openDistributionView(TaxonNode taxonNode, TermVocabulary<DefinedTermBase> term, Set<NamedArea> selectedAreas) {
15 17
		if(taxonNode==null){
16 18
			Notification.show("Please choose a classification and/or taxon", Notification.Type.HUMANIZED_MESSAGE);
17 19
			return;
......
22 24
		}
23 25
	    VaadinSession.getCurrent().setAttribute("taxonNodeUUID", taxonNode.getUuid());
24 26
	    VaadinSession.getCurrent().setAttribute("selectedTerm", term.getUuid());
27
	    String selectedAreaUuids = "";
28
	    for (NamedArea namedArea : selectedAreas) {
29
			selectedAreaUuids += namedArea.getUuid().toString()+",";
30
		}
31
	    VaadinSession.getCurrent().setAttribute("selectedAreas", selectedAreaUuids);
25 32
	
26 33
	    //navigate to table view
27 34
	    UI.getCurrent().getNavigator().navigateTo("table");
src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/DistributionSelectionView.java
2 2

  
3 3
import java.sql.SQLException;
4 4
import java.util.List;
5
import java.util.Set;
5 6

  
6 7
import com.vaadin.data.Container;
7 8
import com.vaadin.data.Property.ValueChangeEvent;
......
17 18
import com.vaadin.ui.ComboBox;
18 19
import com.vaadin.ui.CustomComponent;
19 20
import com.vaadin.ui.Label;
21
import com.vaadin.ui.ListSelect;
20 22
import com.vaadin.ui.Panel;
21 23
import com.vaadin.ui.Tree;
22 24
import com.vaadin.ui.VerticalLayout;
23 25

  
24 26
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
25 27
import eu.etaxonomy.cdm.model.common.TermVocabulary;
28
import eu.etaxonomy.cdm.model.location.NamedArea;
26 29
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
27 30
import eu.etaxonomy.cdm.vaadin.container.TaxonNodeContainer;
28 31

  
......
32 35
    private Panel panel_1;
33 36
    private VerticalLayout verticalLayout_2;
34 37
    private Button button_proceed;
35
    private ComboBox distributionAreaBox;
36 38
    private ComboBox classificationBox;
39
    private ComboBox distributionAreaBox;
40
    private ListSelect namedAreaList;
37 41
    private Tree taxonTree;
38 42
    private Label labelInstruction;
39 43
    private Label labelNoClassification;
......
68 72
			taxonNode = (TaxonNode) classificationBox.getValue();
69 73
		}
70 74
		TermVocabulary<DefinedTermBase> term = (TermVocabulary<DefinedTermBase>)distributionAreaBox.getValue();
75
		Set<NamedArea> selectedAreas = (Set<NamedArea>) namedAreaList.getValue();
71 76
		try {
72
			distListener.buttonClick(taxonNode, term);
77
			distListener.buttonClick(taxonNode, term, selectedAreas);
73 78
		} catch (SQLException e) {
74 79
			e.printStackTrace();
75 80
		}
......
92 97
				labelNoClassification.setVisible(parentNode==null);
93 98
			}
94 99
		});
95

  
96 100
        taxonTree.setItemCaptionPropertyId(TaxonNodeContainer.LABEL);
97 101
        
102
        distributionAreaBox.addValueChangeListener(new ValueChangeListener() {
103
			
104
			@Override
105
			public void valueChange(ValueChangeEvent event) {
106
				TermVocabulary<NamedArea> voc = (TermVocabulary<NamedArea>) event.getProperty().getValue();
107
				IndexedContainer indexedContainer = new IndexedContainer(voc.getTerms());
108
				namedAreaList.setContainerDataSource(indexedContainer);
109
			}
110
		});
111
        
98 112
		List<TermVocabulary<DefinedTermBase>> namedAreaList = distListener.getNamedAreaList();
99 113
		Container d = new IndexedContainer(namedAreaList);
100 114
		distributionAreaBox.setContainerDataSource(d);
......
167 181
        // distributionAreaBox
168 182
        distributionAreaBox = new ComboBox();
169 183
        distributionAreaBox.setCaption("Distribution Area");
170
        distributionAreaBox.setImmediate(false);
171 184
        distributionAreaBox.setWidth("200px");
172 185
        distributionAreaBox.setHeight("-1px");
173 186
        verticalLayout_2.addComponent(distributionAreaBox);
174 187

  
188
        // named areas
189
        namedAreaList = new ListSelect();
190
        namedAreaList.setCaption("Areas");
191
        namedAreaList.setWidth("200px");
192
        namedAreaList.setHeight("-1px");
193
        namedAreaList.setMultiSelect(true);
194
        verticalLayout_2.addComponent(namedAreaList);
195

  
175 196
        // taxon tree
176 197
        taxonTree = new Tree("Taxonomy");
177 198
        taxonTree.setWidth("200px");
src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/IDistributionSelectionComponent.java
2 2

  
3 3
import java.sql.SQLException;
4 4
import java.util.List;
5
import java.util.Set;
5 6

  
6 7
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
7 8
import eu.etaxonomy.cdm.model.common.TermVocabulary;
8
import eu.etaxonomy.cdm.model.taxon.Classification;
9
import eu.etaxonomy.cdm.model.location.NamedArea;
9 10
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
10 11

  
11 12
public interface IDistributionSelectionComponent {
12 13
	public interface DistributionSelectionComponentListener{
13
		void buttonClick(TaxonNode classification, TermVocabulary<DefinedTermBase> term) throws SQLException;
14
		void buttonClick(TaxonNode classification, TermVocabulary<DefinedTermBase> term, Set<NamedArea> selectedAreas) throws SQLException;
14 15
		
15 16
		List<TaxonNode> getTaxonNodeList();
16 17
		
src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/SettingsConfigWindow.java
9 9
*/
10 10
package eu.etaxonomy.cdm.vaadin.view.dbstatus;
11 11

  
12
import java.util.HashSet;
13

  
12 14
import com.vaadin.data.Container;
13 15
import com.vaadin.data.Property.ValueChangeEvent;
14 16
import com.vaadin.data.Property.ValueChangeListener;
......
27 29

  
28 30
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
29 31
import eu.etaxonomy.cdm.model.common.TermVocabulary;
32
import eu.etaxonomy.cdm.model.location.NamedArea;
30 33
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
31 34
import eu.etaxonomy.cdm.vaadin.container.TaxonNodeContainer;
32 35
import eu.etaxonomy.cdm.vaadin.presenter.dbstatus.settings.SettingsPresenter;
......
95 98
					taxonNode = (TaxonNode) classificationBox.getValue();
96 99
				}
97 100
				term = (TermVocabulary<DefinedTermBase>) distAreaBox.getValue();
98
				DistributionEditorUtil.openDistributionView(taxonNode, term);
101
				DistributionEditorUtil.openDistributionView(taxonNode, term, new HashSet<NamedArea>());
99 102
				window.close();
100 103
			}
101 104
		});

Also available in: Unified diff