Project

General

Profile

Download (3.55 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.ui.section.taxon;
2

    
3
import java.util.Arrays;
4

    
5
import org.eclipse.swt.SWT;
6

    
7
import eu.etaxonomy.cdm.model.taxon.Taxon;
8
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
9
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
10
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
11
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
12
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
13
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
14
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
15
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
16

    
17
public class TaxonOfRelationshipElement extends  AbstractIdentifiableEntityDetailElement<Taxon> implements ISelectableElement{
18

    
19
//	private Taxon taxon;
20
	protected ToggleableTextElement toggleable_cache;
21
	private TextWithLabelElement text_appendedPhrase;
22
	private SelectionArbitrator selectionArbitrator;
23

    
24

    
25

    
26

    
27
    private CheckboxElement checkbox_doubtful;
28

    
29
	private CheckboxElement checkbox_published;
30

    
31
	public TaxonOfRelationshipElement(CdmFormFactory formFactory, ICdmFormElement formElement, int style ) {
32
		super(formFactory, formElement);
33
		// make this element selectable
34

    
35

    
36
	}
37

    
38
    @Override
39
    protected void handleToggleableCacheField() {
40
        boolean pushedState = toggleable_cache.getState();
41

    
42
        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
43
        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, checkbox_published}));
44
        updateToggleableCacheField();
45
    }
46

    
47

    
48

    
49
    @Override
50
    public void updateToggleableCacheField() {
51

    
52
	        if (toggleable_cache != null){
53
	            if (!getEntity().isProtectedTitleCache()) {
54
	                toggleable_cache.setText(getEntity().generateTitle());
55
	            }
56
	        }
57
	}
58

    
59
	 @Override
60
	public void refresh(){
61
		 updateContent();
62
		 updateToggleableCacheField();
63
	 }
64

    
65
	@Override
66
	protected void updateContent() {
67
		 super.updateContent();
68
		 toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
69
			setIrrelevant(toggleable_cache.getState(),
70
					Arrays.asList(new Object[] { toggleable_cache, checkbox_published}));
71
		firePropertyChangeEvent(getEntity());
72

    
73
	 }
74

    
75

    
76

    
77
	@Override
78
	protected void createControls(ICdmFormElement formElement, Taxon entity, int style) {
79
		toggleable_cache = formFactory.createToggleableTextField(this,
80
				"Title Cache", getEntity().getTitleCache(),
81
				getEntity().isProtectedTitleCache(), style);
82

    
83
		text_appendedPhrase = formFactory.createTextWithLabelElement(
84
				this, "Appended Phrase", getEntity().getAppendedPhrase(),
85
				SWT.WRAP);
86

    
87
		checkbox_published = formFactory.createCheckbox(this,
88
				"Published", getEntity().isPublish(), style);
89

    
90
		checkbox_doubtful = formFactory.createCheckbox(this,
91
		        "Orginal Taxon Doubtful", getEntity().isDoubtful(), style);
92

    
93
		if(formFactory.getSelectionProvider() != null){
94
            selectionArbitrator = formFactory.createSelectionArbitrator(this);
95
        }
96

    
97
	}
98

    
99

    
100

    
101
	@Override
102
	public void handleEvent(Object eventSource) {
103
		if (eventSource== toggleable_cache) {
104
			handleToggleableCacheField();
105
		} else if (eventSource == checkbox_doubtful) {
106
			getEntity().setDoubtful(checkbox_doubtful.getSelection());
107
		}  else if (eventSource == text_appendedPhrase) {
108
			getEntity().setAppendedPhrase(text_appendedPhrase.getText());
109
		}  else if (eventSource == checkbox_published) {
110
			getEntity().setPublish(checkbox_published.getSelection());
111
		}
112

    
113
	}
114

    
115
	@Override
116
    public SelectionArbitrator getSelectionArbitrator() {
117
        return selectionArbitrator;
118
    }
119

    
120

    
121

    
122
}
(7-7/10)