Revision 5f031b4f
Added by Patrick Plitzner over 7 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/container/PresenceAbsenceTermContainer.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.List; |
4 | 4 |
|
5 |
import com.vaadin.data.util.BeanContainer; |
|
5 |
import com.vaadin.data.util.BeanItemContainer;
|
|
6 | 6 |
|
7 |
import eu.etaxonomy.cdm.model.common.Language; |
|
8 | 7 |
import eu.etaxonomy.cdm.model.common.TermType; |
9 | 8 |
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm; |
10 | 9 |
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper; |
11 | 10 |
import eu.etaxonomy.cdm.vaadin.util.TermCacher; |
12 | 11 |
|
13 |
public class PresenceAbsenceTermContainer extends BeanContainer<String, PresenceAbsenceTerm> {
|
|
12 |
public class PresenceAbsenceTermContainer extends BeanItemContainer<PresenceAbsenceTerm> {
|
|
14 | 13 |
|
15 | 14 |
private static final long serialVersionUID = -7891310979870159325L; |
16 | 15 |
|
... | ... | |
19 | 18 |
private PresenceAbsenceTermContainer() |
20 | 19 |
throws IllegalArgumentException { |
21 | 20 |
super(PresenceAbsenceTerm.class); |
22 |
setBeanIdResolver(new BeanIdResolver<String, PresenceAbsenceTerm>() { |
|
23 |
|
|
24 |
private static final long serialVersionUID = -6008191522128487319L; |
|
25 |
|
|
26 |
@Override |
|
27 |
public String getIdForBean(PresenceAbsenceTerm bean) { |
|
28 |
return bean.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel(); |
|
29 |
} |
|
30 |
}); |
|
31 | 21 |
List<PresenceAbsenceTerm> terms = CdmSpringContextHelper.getTermService().listByTermType(TermType.PresenceAbsenceTerm, null, null, null, null); |
32 | 22 |
TermCacher termCacher = TermCacher.getInstance(); |
33 | 23 |
for (PresenceAbsenceTerm presenceAbsenceTerm : terms) { |
src/main/java/eu/etaxonomy/cdm/vaadin/presenter/dbstatus/DistributionTablePresenter.java | ||
---|---|---|
63 | 63 |
Set<DefinedTermBase> chosenTerms = getChosenTerms(); |
64 | 64 |
NamedArea namedArea = null; |
65 | 65 |
for(DefinedTermBase term:chosenTerms){ |
66 |
if(term.getTitleCache().equalsIgnoreCase(distributionAreaString)){
|
|
66 |
if(term.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel().equalsIgnoreCase(distributionAreaString)){
|
|
67 | 67 |
namedArea = (NamedArea) term; |
68 | 68 |
break; |
69 | 69 |
} |
70 |
if(term.getTitleCache().equalsIgnoreCase(distributionAreaString)){ |
|
71 |
namedArea = (NamedArea) term; |
|
72 |
break; |
|
73 |
} |
|
70 | 74 |
} |
71 | 75 |
List<Distribution> distributions = getDistributions(taxon); |
72 | 76 |
Distribution distribution = null; |
73 | 77 |
for(Distribution dist : distributions){ |
74 |
if(dist.getArea().equals(namedArea)){ |
|
78 |
if(dist.getArea()!=null && dist.getArea().equals(namedArea)){
|
|
75 | 79 |
distribution = dist; |
76 | 80 |
break; |
77 | 81 |
} |
... | ... | |
139 | 143 |
Set<NamedArea> selectedAreas = getNamedAreas(); |
140 | 144 |
List<String> namedAreaTitles = new ArrayList<>(); |
141 | 145 |
for (NamedArea namedArea : selectedAreas) { |
142 |
if(abbreviated){ |
|
143 |
namedAreaTitles.add(namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel()); |
|
146 |
String title = null; |
|
147 |
Representation representation = namedArea.getRepresentation(Language.DEFAULT()); |
|
148 |
if(representation!=null){ |
|
149 |
if(abbreviated){ |
|
150 |
title = representation.getAbbreviatedLabel(); |
|
151 |
} |
|
152 |
else{ |
|
153 |
title = representation.getLabel(); |
|
154 |
} |
|
144 | 155 |
} |
145 |
else{
|
|
146 |
namedAreaTitles.add(namedArea.getRepresentation(Language.DEFAULT()).getLabel());
|
|
156 |
if(title==null){
|
|
157 |
title = namedArea.getTitleCache();
|
|
147 | 158 |
} |
159 |
namedAreaTitles.add(title); |
|
148 | 160 |
} |
149 | 161 |
return namedAreaTitles; |
150 | 162 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/util/CdmQueryFactory.java | ||
---|---|---|
22 | 22 |
import com.vaadin.data.util.sqlcontainer.query.QueryDelegate; |
23 | 23 |
|
24 | 24 |
import eu.etaxonomy.cdm.model.common.Language; |
25 |
import eu.etaxonomy.cdm.model.common.Representation; |
|
25 | 26 |
import eu.etaxonomy.cdm.model.location.NamedArea; |
26 | 27 |
import eu.etaxonomy.cdm.vaadin.statement.CdmStatementDelegate; |
27 | 28 |
|
... | ... | |
97 | 98 |
"rank.titleCache AS "+RANK_COLUMN+", "; |
98 | 99 |
|
99 | 100 |
for(NamedArea namedArea : namedAreas){ |
100 |
String label; |
|
101 |
if(abbreviatedLabels){ |
|
102 |
label = namedArea.getRepresentation(Language.DEFAULT()).getAbbreviatedLabel(); |
|
101 |
String label = null; |
|
102 |
Representation representation = namedArea.getRepresentation(Language.DEFAULT()); |
|
103 |
if(representation!=null){ |
|
104 |
if(abbreviatedLabels){ |
|
105 |
label = representation.getAbbreviatedLabel(); |
|
106 |
} |
|
107 |
else{ |
|
108 |
label = representation.getLabel(); |
|
109 |
} |
|
103 | 110 |
} |
104 |
else{
|
|
105 |
label = namedArea.getTitleCache();
|
|
111 |
if(label==null){
|
|
112 |
label = namedArea.getTitleCache();
|
|
106 | 113 |
} |
107 |
SELECT_QUERY += "MAX( IF(area.titleCache = '"+ label +"', statusTerm.titleCache, NULL) ) as '"+ label +"'," ;
|
|
114 |
SELECT_QUERY += "MAX( IF(area.titleCache = '"+ namedArea.getTitleCache() +"', statusTerm.titleCache, NULL) ) as '"+ label +"'," ;
|
|
108 | 115 |
} |
109 | 116 |
SELECT_QUERY = StringUtils.stripEnd(SELECT_QUERY, ",")+" "; |
110 | 117 |
SELECT_QUERY= SELECT_QUERY + FROM_QUERY + GROUP_BY + ORDER_BY; |
src/main/java/eu/etaxonomy/cdm/vaadin/util/DistributionEditorUtil.java | ||
---|---|---|
14 | 14 |
|
15 | 15 |
public static final String SEPARATOR = ";;"; |
16 | 16 |
|
17 |
public static final String SESSION_ABBREVIATED_LABELS = "abbreviatedLabels"; |
|
18 |
|
|
17 | 19 |
public static void openDistributionView(TaxonNode taxonNode, TermVocabulary<NamedArea> term, Set<NamedArea> selectedAreas) { |
18 | 20 |
if(taxonNode==null){ |
19 | 21 |
Notification.show("Please choose a classification and/or taxon", Notification.Type.HUMANIZED_MESSAGE); |
... | ... | |
25 | 27 |
} |
26 | 28 |
VaadinSession.getCurrent().setAttribute("taxonNodeUUID", taxonNode.getUuid()); |
27 | 29 |
VaadinSession.getCurrent().setAttribute("selectedTerm", term.getUuid()); |
28 |
// String selectedAreaUuids = ""; |
|
29 |
// for (NamedArea namedArea : selectedAreas) { |
|
30 |
// selectedAreaUuids += namedArea.getTitleCache()+SEPARATOR; |
|
31 |
// } |
|
32 |
// selectedAreaUuids = StringUtils.stripEnd(selectedAreaUuids, SEPARATOR); |
|
33 | 30 |
VaadinSession.getCurrent().setAttribute("selectedAreas", selectedAreas); |
34 | 31 |
|
35 | 32 |
//navigate to table view |
36 | 33 |
UI.getCurrent().getNavigator().navigateTo("table"); |
37 | 34 |
} |
38 | 35 |
|
36 |
|
|
39 | 37 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/dbstatus/DistributionTableView.java | ||
---|---|---|
29 | 29 |
|
30 | 30 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
31 | 31 |
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; |
32 |
import eu.etaxonomy.cdm.model.common.Language; |
|
33 |
import eu.etaxonomy.cdm.model.common.Representation; |
|
32 | 34 |
import eu.etaxonomy.cdm.model.description.DescriptionElementBase; |
35 |
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm; |
|
33 | 36 |
import eu.etaxonomy.cdm.model.taxon.Taxon; |
34 | 37 |
import eu.etaxonomy.cdm.vaadin.component.DetailWindow; |
35 | 38 |
import eu.etaxonomy.cdm.vaadin.component.HorizontalToolbar; |
... | ... | |
37 | 40 |
import eu.etaxonomy.cdm.vaadin.container.PresenceAbsenceTermContainer; |
38 | 41 |
import eu.etaxonomy.cdm.vaadin.presenter.dbstatus.DistributionTablePresenter; |
39 | 42 |
import eu.etaxonomy.cdm.vaadin.util.CdmQueryFactory; |
43 |
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil; |
|
40 | 44 |
import eu.etaxonomy.cdm.vaadin.util.TermCacher; |
41 | 45 |
|
42 | 46 |
public class DistributionTableView extends CustomComponent implements View{ |
... | ... | |
207 | 211 |
box.setImmediate(true); |
208 | 212 |
box.setBuffered(true); |
209 | 213 |
box.setSizeFull(); |
210 |
box.setValue(TermCacher.getInstance().getPresenceAbsenceTerm((String)value)); |
|
214 |
PresenceAbsenceTerm presenceAbsenceTerm = TermCacher.getInstance().getPresenceAbsenceTerm((String)value); |
|
215 |
box.setValue(presenceAbsenceTerm); |
|
216 |
if(presenceAbsenceTerm!=null){ |
|
217 |
String itemCaption = null; |
|
218 |
Representation representation = presenceAbsenceTerm.getRepresentation(Language.DEFAULT()); |
|
219 |
if(representation!=null){ |
|
220 |
if((Boolean)VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SESSION_ABBREVIATED_LABELS)){ |
|
221 |
itemCaption = representation.getAbbreviatedLabel(); |
|
222 |
} |
|
223 |
else{ |
|
224 |
itemCaption = representation.getLabel(); |
|
225 |
} |
|
226 |
} |
|
227 |
if(itemCaption==null){ |
|
228 |
itemCaption = presenceAbsenceTerm.getTitleCache(); |
|
229 |
} |
|
230 |
box.setItemCaption(presenceAbsenceTerm, itemCaption); |
|
231 |
} |
|
211 | 232 |
box.addValueChangeListener(new ValueChangeListener() { |
212 | 233 |
private static final long serialVersionUID = 6221534597911674067L; |
213 | 234 |
|
Also available in: Unified diff
ref #5458 Error handling for abbreviated labels