Revision dd433955
Added by Patrick Plitzner over 7 years ago
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
ref #5458 Add named areas selection box