# HG changeset patch # User Raimund Renkert # Date 1381323631 -7200 # Node ID 5c401065996794687fb5e15f508b9706a75cd79f # Parent 701b52518dcd85a0d1b6267272deab4c75f85a8d Enable multiselect in queryfilter. (Used as example in final workshop) diff -r 701b52518dcd -r 5c4010659967 src/main/java/de/intevation/lada/data/LProbeRepository.java --- a/src/main/java/de/intevation/lada/data/LProbeRepository.java Wed Oct 09 14:57:28 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/LProbeRepository.java Wed Oct 09 15:00:31 2013 +0200 @@ -78,7 +78,12 @@ MultivaluedMap params) { Query query = em.createNativeQuery(sql); for (String filter: filters) { - query.setParameter(filter, params.get(filter)); + List param = params.get(filter); + List clean = new ArrayList(); + for(String p : param) { + clean.add(p.replace(",", "|")); + } + query.setParameter(filter, clean); } List result = query.getResultList(); List> res = new ArrayList>(); diff -r 701b52518dcd -r 5c4010659967 src/main/java/de/intevation/lada/model/query/QueryFilter.java --- a/src/main/java/de/intevation/lada/model/query/QueryFilter.java Wed Oct 09 14:57:28 2013 +0200 +++ b/src/main/java/de/intevation/lada/model/query/QueryFilter.java Wed Oct 09 15:00:31 2013 +0200 @@ -11,6 +11,7 @@ private String dataIndex; private String type; private String label; + private boolean multiSelect; /** * Default constructor. @@ -72,4 +73,18 @@ public void setLabel(String label) { this.label = label; } + + /** + * @return the multiSelect + */ + public boolean isMultiSelect() { + return multiSelect; + } + + /** + * @param multiSelect the multiSelect to set + */ + public void setMultiSelect(boolean multiSelect) { + this.multiSelect = multiSelect; + } } diff -r 701b52518dcd -r 5c4010659967 src/main/java/de/intevation/lada/utils/QueryTools.java --- a/src/main/java/de/intevation/lada/utils/QueryTools.java Wed Oct 09 14:57:28 2013 +0200 +++ b/src/main/java/de/intevation/lada/utils/QueryTools.java Wed Oct 09 15:00:31 2013 +0200 @@ -72,6 +72,7 @@ qFilter.setDataIndex(filter.getString("dataIndex")); qFilter.setType(filter.getString("type")); qFilter.setLabel(filter.getString("label")); + qFilter.setMultiSelect(filter.optBoolean("multiselect", false)); qFilters.add(qFilter); } qConf.setFilters(qFilters);