2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.ui
.section
.name
;
11 import org
.eclipse
.jface
.util
.PropertyChangeEvent
;
13 import eu
.etaxonomy
.cdm
.model
.name
.INonViralName
;
14 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
15 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
16 import eu
.etaxonomy
.taxeditor
.ui
.element
.CheckboxElement
;
17 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
18 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
22 * @created Jan 5, 2011
24 public class HybridDetailElement
extends AbstractCdmDetailElement
<INonViralName
> {
26 private CheckboxElement checkboxMonomHybrid
;
27 private CheckboxElement checkboxBinomHybrid
;
28 private CheckboxElement checkboxTrinomHybrid
;
29 private CheckboxElement checkboxHybridFormula
;
31 public HybridDetailElement(CdmFormFactory formFactory
,
32 ICdmFormElement formElement
) {
33 super(formFactory
, formElement
);
37 protected void createControls(ICdmFormElement formElement
, INonViralName entity
,
39 boolean enableBinom
= false;
40 boolean enableTrinom
= false;
41 if (entity
.getRank() != null){
42 if (entity
.getRank().isLower(Rank
.GENUS())){
46 if (entity
.getRank().isLower(Rank
.SPECIES())){
50 checkboxMonomHybrid
= formFactory
.createCheckbox(formElement
, "Monom hybrid", entity
.isMonomHybrid(), style
);
51 checkboxBinomHybrid
= formFactory
.createCheckbox(formElement
, "Binom hybrid", entity
.isBinomHybrid(), style
);
52 checkboxBinomHybrid
.setEnabled(enableBinom
);
53 checkboxTrinomHybrid
= formFactory
.createCheckbox(formElement
, "Trinom hybrid", entity
.isTrinomHybrid(), style
);
54 checkboxTrinomHybrid
.setEnabled(enableTrinom
);
55 checkboxHybridFormula
= formFactory
.createCheckbox(formElement
, "Hybrid formula", entity
.isHybridFormula(), style
);
56 checkboxHybridFormula
.setEnabled(false);//read-only
58 registerCacheRelevance(checkboxMonomHybrid
, cacheRelevanceHelper
.getDependenciesArray());
59 registerCacheRelevance(checkboxBinomHybrid
, cacheRelevanceHelper
.getDependenciesArray());
60 registerCacheRelevance(checkboxTrinomHybrid
, cacheRelevanceHelper
.getDependenciesArray());
61 registerCacheRelevance(checkboxHybridFormula
, cacheRelevanceHelper
.getDependenciesArray());
66 public void handleEvent(Object eventSource
) {
67 if(eventSource
== checkboxMonomHybrid
){
68 getEntity().setMonomHybrid(checkboxMonomHybrid
.getSelection());
70 else if(eventSource
== checkboxBinomHybrid
){
71 getEntity().setBinomHybrid(checkboxBinomHybrid
.getSelection());
73 else if(eventSource
== checkboxTrinomHybrid
){
74 getEntity().setTrinomHybrid(checkboxTrinomHybrid
.getSelection());
79 public void propertyChange(PropertyChangeEvent event
) {
84 Object obj
= event
.getSource();
86 if (obj
instanceof NameDetailElement
){
87 if (getEntity().getRank() != null){
88 checkboxBinomHybrid
.setEnabled(getEntity().getRank().isLower(Rank
.GENUS()));
89 checkboxTrinomHybrid
.setEnabled(getEntity().getRank().isLower(Rank
.SPECIES()));