Project

General

Profile

Download (3.43 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 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.name;
10

    
11
import org.eclipse.jface.util.PropertyChangeEvent;
12

    
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;
19

    
20
/**
21
 * @author n.hoffmann
22
 * @created Jan 5, 2011
23
 */
24
public class HybridDetailElement extends AbstractCdmDetailElement<INonViralName> {
25

    
26
	private CheckboxElement checkboxMonomHybrid;
27
	private CheckboxElement checkboxBinomHybrid;
28
	private CheckboxElement checkboxTrinomHybrid;
29
	private CheckboxElement checkboxHybridFormula;
30

    
31
	public HybridDetailElement(CdmFormFactory formFactory,
32
			ICdmFormElement formElement) {
33
		super(formFactory, formElement);
34
	}
35

    
36
	@Override
37
	protected void createControls(ICdmFormElement formElement, INonViralName entity,
38
			int style) {
39
	    boolean enableBinom = false;
40
	    boolean enableTrinom = false;
41
	    if (entity.getRank() != null){
42
    	    if (entity.getRank().isLower(Rank.GENUS())){
43
    	        enableBinom = true;
44
    	    }
45

    
46
    	    if (entity.getRank().isLower(Rank.SPECIES())){
47
                enableTrinom = true;
48
            }
49
	    }
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
57

    
58
        registerCacheRelevance(checkboxMonomHybrid, cacheRelevanceHelper.getDependenciesArray());
59
        registerCacheRelevance(checkboxBinomHybrid, cacheRelevanceHelper.getDependenciesArray());
60
        registerCacheRelevance(checkboxTrinomHybrid, cacheRelevanceHelper.getDependenciesArray());
61
        registerCacheRelevance(checkboxHybridFormula, cacheRelevanceHelper.getDependenciesArray());
62

    
63
	}
64

    
65
	@Override
66
	public void handleEvent(Object eventSource) {
67
		if(eventSource == checkboxMonomHybrid){
68
			getEntity().setMonomHybrid(checkboxMonomHybrid.getSelection());
69
		}
70
		else if(eventSource == checkboxBinomHybrid){
71
			getEntity().setBinomHybrid(checkboxBinomHybrid.getSelection());
72
		}
73
		else if(eventSource == checkboxTrinomHybrid){
74
			getEntity().setTrinomHybrid(checkboxTrinomHybrid.getSelection());
75
		}
76
	}
77

    
78
    @Override
79
    public void propertyChange(PropertyChangeEvent event) {
80
        if (event == null) {
81
            return;
82
        }
83

    
84
        Object obj = event.getSource();
85
        handleEvent(obj);
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()));
90
            }
91
        }
92
    }
93
}
(4-4/21)