Revision fc53e2e8
Added by Andreas Müller over 6 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/container/PresenceAbsenceTermContainer.java | ||
---|---|---|
1 | 1 |
package eu.etaxonomy.cdm.vaadin.container; |
2 | 2 |
|
3 |
import java.util.Arrays; |
|
3 | 4 |
import java.util.Collection; |
4 | 5 |
import java.util.HashSet; |
6 |
import java.util.List; |
|
5 | 7 |
import java.util.Set; |
8 |
import java.util.UUID; |
|
6 | 9 |
|
7 | 10 |
import com.vaadin.data.util.BeanItemContainer; |
8 | 11 |
import com.vaadin.server.VaadinSession; |
9 | 12 |
|
10 | 13 |
import eu.etaxonomy.cdm.model.common.TermType; |
11 | 14 |
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm; |
15 |
import eu.etaxonomy.cdm.model.metadata.CdmPreference; |
|
16 |
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate; |
|
12 | 17 |
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper; |
13 | 18 |
import eu.etaxonomy.cdm.vaadin.util.DistributionEditorUtil; |
14 | 19 |
import eu.etaxonomy.cdm.vaadin.util.TermCacher; |
... | ... | |
28 | 33 |
} |
29 | 34 |
|
30 | 35 |
private void initDataModel() { |
31 |
Collection<PresenceAbsenceTerm> distributionStatus = new HashSet<>();
|
|
32 |
distributionStatus = CdmSpringContextHelper.getTermService().listByTermType(TermType.PresenceAbsenceTerm, null, null, null, null); |
|
36 |
Collection<PresenceAbsenceTerm> distributionStatus = getDistributionStatusList(TERMS_INIT_STRATEGY);
|
|
37 |
|
|
33 | 38 |
defaultDistributionStatus = distributionStatus; |
34 | 39 |
TermCacher termCacher = TermCacher.getInstance(); |
35 | 40 |
addAll(distributionStatus); |
... | ... | |
39 | 44 |
} |
40 | 45 |
|
41 | 46 |
public static PresenceAbsenceTermContainer getInstance(){ |
42 |
if(instance==null){
|
|
47 |
if(instance == null){
|
|
43 | 48 |
instance = new PresenceAbsenceTermContainer(); |
44 | 49 |
} |
45 | 50 |
Collection<PresenceAbsenceTerm> distributionStatus = new HashSet<>(); |
46 | 51 |
Object attribute = VaadinSession.getCurrent().getAttribute(DistributionEditorUtil.SATTR_DISTRIBUTION_STATUS); |
47 |
if(attribute!=null){
|
|
52 |
if(attribute != null){
|
|
48 | 53 |
distributionStatus = (Set<PresenceAbsenceTerm>) attribute; |
49 | 54 |
} |
50 | 55 |
if(!distributionStatus.isEmpty() && !distributionStatus.equals(defaultDistributionStatus)){ |
... | ... | |
55 | 60 |
return instance; |
56 | 61 |
} |
57 | 62 |
|
63 |
public static List<PresenceAbsenceTerm> getDistributionStatusList(List<String> propertyPath){ |
|
64 |
CdmPreference statusPref = CdmSpringContextHelper.getPreferenceService().findVaadin(PreferencePredicate.AvailableDistributionStatus); |
|
65 |
if (statusPref != null){ |
|
66 |
List<UUID> uuidList = statusPref.getValueUuidList(); |
|
67 |
return (List)CdmSpringContextHelper.getTermService().load(uuidList, propertyPath); |
|
68 |
}else{ |
|
69 |
return CdmSpringContextHelper.getTermService().listByTermType( |
|
70 |
TermType.PresenceAbsenceTerm, null, null, null, propertyPath); |
|
71 |
} |
|
72 |
} |
|
73 |
|
|
74 |
protected static final List<String> TERMS_INIT_STRATEGY = Arrays.asList(new String []{ |
|
75 |
"$", |
|
76 |
"representations", |
|
77 |
}); |
|
78 |
|
|
58 | 79 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/distributionStatus/DistributionTablePresenter.java | ||
---|---|---|
305 | 305 |
// VaadinSession.getCurrent().setAttribute(DistributionEditorUtil.SATTR_SELECTED_AREAS, selectedAreas); |
306 | 306 |
// VaadinSession.getCurrent().setAttribute(DistributionEditorUtil.SATTR_CLASSIFICATION, classificationUuid); |
307 | 307 |
if(userHelper.userIsAutheticated() && !userHelper.userIsAnnonymous()) { |
308 |
getView().openDistributionSettings();
|
|
308 |
getView().openAreaAndTaxonSettings();
|
|
309 | 309 |
} |
310 | 310 |
} |
311 | 311 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/distributionStatus/DistributionTableViewBean.java | ||
---|---|---|
34 | 34 |
import com.vaadin.ui.Window; |
35 | 35 |
|
36 | 36 |
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; |
37 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
|
37 | 38 |
import eu.etaxonomy.cdm.model.common.Language; |
38 | 39 |
import eu.etaxonomy.cdm.model.common.Representation; |
39 | 40 |
import eu.etaxonomy.cdm.model.description.DescriptionElementBase; |
... | ... | |
100 | 101 |
if(value instanceof String){ |
101 | 102 |
presenceAbsenceTerm = TermCacher.getInstance().getPresenceAbsenceTerm((String) value); |
102 | 103 |
} |
103 |
if(presenceAbsenceTerm!=null){
|
|
104 |
if(presenceAbsenceTerm != null){
|
|
104 | 105 |
Representation representation = presenceAbsenceTerm.getRepresentation(Language.DEFAULT()); |
105 | 106 |
if(representation!=null){ |
106 | 107 |
if(DistributionEditorUtil.isAbbreviatedLabels()){ |
... | ... | |
137 | 138 |
final Item item = event.getItem(); |
138 | 139 |
Property<?> itemProperty = item.getItemProperty("uuid"); |
139 | 140 |
UUID uuid = UUID.fromString(itemProperty.getValue().toString()); |
140 |
final Taxon taxon = HibernateProxyHelper.deproxy(CdmSpringContextHelper.getTaxonService()
|
|
141 |
final Taxon taxon = CdmBase.deproxy(CdmSpringContextHelper.getTaxonService()
|
|
141 | 142 |
.load(uuid,Arrays.asList("descriptions.descriptionElements","name.taxonBases","updatedBy")), Taxon.class); |
142 |
final String areaID = (String) event.getPropertyId();
|
|
143 |
final String areaID = (String)event.getPropertyId(); |
|
143 | 144 |
PresenceAbsenceTerm presenceAbsenceTerm = null; |
144 | 145 |
Object statusValue = item.getItemProperty(areaID).getValue(); |
145 | 146 |
if(statusValue instanceof String){ |
... | ... | |
150 | 151 |
final ListSelect termSelect = new ListSelect(); |
151 | 152 |
termSelect.setSizeFull(); |
152 | 153 |
termSelect.setContainerDataSource(PresenceAbsenceTermContainer.getInstance()); |
153 |
termSelect.setNullSelectionAllowed(presenceAbsenceTerm!=null);
|
|
154 |
if(presenceAbsenceTerm!=null){
|
|
154 |
termSelect.setNullSelectionAllowed(presenceAbsenceTerm != null);
|
|
155 |
if(presenceAbsenceTerm != null){
|
|
155 | 156 |
termSelect.setNullSelectionItemId("[no status]"); |
157 |
}else{ |
|
158 |
logger.debug("No distribution status exists yet for area"); |
|
156 | 159 |
} |
157 | 160 |
termSelect.setValue(presenceAbsenceTerm); |
158 | 161 |
termSelect.addValueChangeListener(valueChangeEvent -> { |
159 |
System.out.println(valueChangeEvent); |
|
162 |
// System.out.println(valueChangeEvent);
|
|
160 | 163 |
Object distributionStatus = valueChangeEvent.getProperty().getValue(); |
161 | 164 |
getPresenter().updateDistributionField(areaID, distributionStatus, taxon); |
162 | 165 |
container.refresh(); |
... | ... | |
216 | 219 |
} |
217 | 220 |
|
218 | 221 |
private void createEditClickListener(){ |
219 |
Button detailButton = toolbar.getDetailButton(); |
|
220 |
detailButton.setCaption("Detail View"); |
|
222 |
//details |
|
223 |
Button detailButton = toolbar.getDetailButton(); |
|
224 |
detailButton.setCaption("Taxon Details"); |
|
221 | 225 |
detailButton.addClickListener(event -> { |
222 | 226 |
Object selectedItemId = DistributionTableViewBean.this.table.getValue(); |
223 | 227 |
// Object selectedItemId = DistributionTableViewBean.this.grid.getSelectedRow(); |
... | ... | |
237 | 241 |
} |
238 | 242 |
); |
239 | 243 |
|
240 |
Button distributionSettingsButton = toolbar.getDistributionSettingsButton(); |
|
241 |
distributionSettingsButton.addClickListener(event -> openDistributionSettings()); |
|
244 |
//area and taxon |
|
245 |
Button areaAndTaxonSettingsButton = toolbar.getDistributionSettingsButton(); |
|
246 |
areaAndTaxonSettingsButton.addClickListener(event -> openAreaAndTaxonSettings()); |
|
242 | 247 |
|
243 |
Button settingsButton = toolbar.getSettingsButton(); |
|
244 |
settingsButton.addClickListener(event -> openSettings()); |
|
248 |
//distr status |
|
249 |
Button distrStatusButton = toolbar.getSettingsButton(); |
|
250 |
distrStatusButton.addClickListener(event -> openStatusSettings()); |
|
245 | 251 |
} |
246 | 252 |
|
247 | 253 |
/** |
248 | 254 |
* {@inheritDoc} |
249 | 255 |
*/ |
250 | 256 |
@Override |
251 |
public void openSettings() { |
|
257 |
public void openStatusSettings() {
|
|
252 | 258 |
DistributionStatusSettingsConfigWindow cw = new DistributionStatusSettingsConfigWindow(this); |
253 | 259 |
Window window = cw.createWindow("Status"); |
254 | 260 |
UI.getCurrent().addWindow(window); |
... | ... | |
258 | 264 |
* {@inheritDoc} |
259 | 265 |
*/ |
260 | 266 |
@Override |
261 |
public void openDistributionSettings() {
|
|
267 |
public void openAreaAndTaxonSettings() {
|
|
262 | 268 |
if(distributionSettingConfigWindow==null){ |
263 | 269 |
distributionSettingConfigWindow = new AreaAndTaxonSettingsConfigWindow(this); |
264 | 270 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/distributionStatus/IDistributionTableView.java | ||
---|---|---|
25 | 25 |
public void update(); |
26 | 26 |
|
27 | 27 |
/** |
28 |
* Opens the setting window to change available distribution status. |
|
28 |
* Opens the status setting window to change available distribution status.
|
|
29 | 29 |
*/ |
30 |
public void openSettings(); |
|
30 |
public void openStatusSettings();
|
|
31 | 31 |
|
32 | 32 |
/** |
33 |
* Opens the distribution-setting window to change available areas and chose classification.
|
|
33 |
* Opens the area and taxon setting window to change available areas and chose classification.
|
|
34 | 34 |
*/ |
35 |
public void openDistributionSettings();
|
|
35 |
public void openAreaAndTaxonSettings();
|
|
36 | 36 |
|
37 | 37 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/distributionStatus/settings/DistributionStatusSettingsPresenter.java | ||
---|---|---|
10 | 10 |
|
11 | 11 |
import java.util.Arrays; |
12 | 12 |
import java.util.List; |
13 |
import java.util.UUID; |
|
14 | 13 |
|
15 | 14 |
import com.vaadin.data.Container; |
16 | 15 |
import com.vaadin.data.util.IndexedContainer; |
17 | 16 |
|
18 |
import eu.etaxonomy.cdm.model.common.TermType; |
|
19 | 17 |
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm; |
20 |
import eu.etaxonomy.cdm.model.metadata.CdmPreference; |
|
21 |
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate; |
|
22 |
import eu.etaxonomy.cdm.vaadin.util.CdmSpringContextHelper; |
|
18 |
import eu.etaxonomy.cdm.vaadin.container.PresenceAbsenceTermContainer; |
|
23 | 19 |
|
24 | 20 |
/** |
25 | 21 |
* @author a.mueller |
... | ... | |
39 | 35 |
} |
40 | 36 |
|
41 | 37 |
private List<PresenceAbsenceTerm> getDistributionStatusList(){ |
42 |
CdmPreference statusPref = CdmSpringContextHelper.getPreferenceService().findVaadin(PreferencePredicate.AvailableDistributionStatus); |
|
43 |
if (statusPref != null){ |
|
44 |
List<UUID> uuidList = statusPref.getValueUuidList(); |
|
45 |
return (List)CdmSpringContextHelper.getTermService().load(uuidList, TERMS_INIT_STRATEGY); |
|
46 |
}else{ |
|
47 |
return CdmSpringContextHelper.getTermService().listByTermType( |
|
48 |
TermType.PresenceAbsenceTerm, null, null, null, TERMS_INIT_STRATEGY); |
|
49 |
} |
|
38 |
return PresenceAbsenceTermContainer.getDistributionStatusList(TERMS_INIT_STRATEGY); |
|
50 | 39 |
} |
51 | 40 |
|
52 | 41 |
|
Also available in: Unified diff
ref #6903 preload status from preferences in dialog