ref #6333 Remove framework for exchanging an element in the details view
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / vocabulary / MeasurementUnitCollectionElement.java
1 /**
2 * Copyright (C) 2015 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.ui.section.vocabulary;
10
11 import org.eclipse.swt.events.SelectionListener;
12 import org.eclipse.swt.graphics.Color;
13
14 import eu.etaxonomy.cdm.model.common.TermType;
15 import eu.etaxonomy.cdm.model.description.Feature;
16 import eu.etaxonomy.cdm.model.description.MeasurementUnit;
17 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
18 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
19 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
21 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
22
23 /**
24 * @author pplitzner
25 * @date Apr 27, 2015
26 *
27 */
28 public class MeasurementUnitCollectionElement extends AbstractEntityCollectionElement<MeasurementUnit> {
29
30
31 private TermComboElement<MeasurementUnit> comboMeasurementUnit;
32
33 /**
34 * @param formFactory
35 * @param section
36 * @param entity
37 * @param removeListener
38 * @param isChoosableEntity
39 * @param backgroundColor
40 * @param style
41 */
42 public MeasurementUnitCollectionElement(CdmFormFactory formFactory, AbstractFormSection section, MeasurementUnit entity,
43 SelectionListener removeListener, Color backgroundColor, int style) {
44 super(formFactory, section, entity, removeListener, backgroundColor, style);
45
46 }
47
48 @Override
49 public void createControls(ICdmFormElement element, int style) {
50 comboMeasurementUnit = formFactory.createDefinedTermComboElement(TermType.MeasurementUnit, element, "Measurement unit", null, style);
51 }
52
53 @Override
54 public void setEntity(MeasurementUnit entity) {
55 this.entity = entity;
56 if(entity.getId()!=0){
57 comboMeasurementUnit.setSelection(entity);
58 comboMeasurementUnit.removeEmptyElement();
59 }
60 }
61
62 @Override
63 public void handleEvent(Object eventSource) {
64 if(eventSource==comboMeasurementUnit && comboMeasurementUnit.getSelection()!=null){
65 if(getParentElement() instanceof MeasurementUnitCollectionSection){
66 MeasurementUnitCollectionSection parentElement = (MeasurementUnitCollectionSection) getParentElement();
67 Feature feature = parentElement.getEntity();
68 feature.removeRecommendedMeasurementUnit(entity);
69 MeasurementUnit measurementUnit = comboMeasurementUnit.getSelection();
70 feature.addRecommendedMeasurementUnit(measurementUnit);
71 entity = measurementUnit;
72 //update the parent section to re-set the listeners to the persisted measurement unit
73 parentElement.removeElementAndUpdate(null);
74 }
75 }
76 }
77
78 }