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