Project

General

Profile

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

    
3
import java.util.Arrays;
4
import java.util.List;
5
import java.util.Set;
6

    
7
import org.eclipse.jface.util.IPropertyChangeListener;
8
import org.eclipse.jface.util.PropertyChangeEvent;
9
import org.eclipse.swt.SWT;
10
import org.eclipse.swt.events.ModifyEvent;
11
import org.eclipse.swt.events.ModifyListener;
12
import org.eclipse.swt.graphics.Color;
13
import org.eclipse.swt.widgets.Composite;
14
import org.eclipse.swt.widgets.Control;
15

    
16
import eu.etaxonomy.cdm.model.taxon.Taxon;
17
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
18
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
19
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
20
import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
21
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
22
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
23
import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
24
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
25
import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
26
import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
27
import eu.etaxonomy.taxeditor.ui.element.ISelectable;
28
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
29
import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
30
import eu.etaxonomy.taxeditor.ui.element.ToggleableTextElement;
31
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
32
import eu.etaxonomy.taxeditor.ui.section.AbstractIdentifiableEntityDetailElement;
33

    
34
public class TaxonOfRelationshipElement extends  AbstractIdentifiableEntityDetailElement<Taxon>{
35
	
36
//	private Taxon taxon; 
37
	protected ToggleableTextElement toggleable_cache;
38
	private TextWithLabelElement text_appendedPhrase;
39
	private SelectionArbitrator selectionArbitrator;
40
	private CheckboxElement checkbox_doubtful;
41

    
42
	private CheckboxElement checkbox_published;
43
	
44
	public TaxonOfRelationshipElement(CdmFormFactory formFactory, ICdmFormElement formElement, int style ) {
45
		super(formFactory, formElement);
46
		// make this element selectable
47
		if(formFactory.getSelectionProvider() != null){
48
			selectionArbitrator = formFactory.createSelectionArbitrator(this);
49
		}
50
	}
51

    
52

    
53
	
54
	protected void handleToggleableCacheField() {
55
        boolean pushedState = toggleable_cache.getState();
56

    
57
        getEntity().setTitleCache(toggleable_cache.getText(), pushedState);
58
        setIrrelevant(pushedState, Arrays.asList(new Object[] { toggleable_cache, checkbox_published}));
59
        updateToggleableCacheField();
60
    }
61
	
62
	 public void updateToggleableCacheField() {
63
		
64
	        if (toggleable_cache != null){
65
	            if (!getEntity().isProtectedTitleCache()) {
66
	                toggleable_cache.setText(getEntity().generateTitle());
67
	            }
68
	        }
69
	}
70
	
71
	 @Override
72
	public void refresh(){
73
		 updateContent();
74
		 updateToggleableCacheField();
75
	 }
76
	 
77
	@Override
78
	protected void updateContent() {
79
		 super.updateContent();
80
		 toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
81
			setIrrelevant(toggleable_cache.getState(),
82
					Arrays.asList(new Object[] { toggleable_cache, checkbox_published}));
83
		 
84
	 }
85

    
86
	
87

    
88
	@Override
89
	protected void createControls(ICdmFormElement formElement, Taxon entity, int style) {
90
		toggleable_cache = formFactory.createToggleableTextField(this,
91
				"Title Cache", getEntity().getTitleCache(),
92
				getEntity().isProtectedTitleCache(), style);
93

    
94
		text_appendedPhrase = formFactory.createTextWithLabelElement(
95
				this, "Appended Phrase", getEntity().getAppendedPhrase(),
96
				SWT.WRAP);
97
		
98
		checkbox_published = formFactory.createCheckbox(this,
99
				"Published", getEntity().isPublish(), style);
100
		
101
		checkbox_doubtful = formFactory.createCheckbox(this,
102
				"Misappl. Doubtful", getEntity().isDoubtful(), style);
103
		
104
	}
105

    
106

    
107

    
108
	@Override
109
	public void handleEvent(Object eventSource) {
110
		if (eventSource== toggleable_cache) {
111
			handleToggleableCacheField();
112
		} else if (eventSource == checkbox_doubtful) {
113
			getEntity().setDoubtful(checkbox_doubtful.getSelection());
114
		}  else if (eventSource == text_appendedPhrase) {
115
			getEntity().setAppendedPhrase(text_appendedPhrase.getText());
116
		}  else if (eventSource == checkbox_published) {
117
			getEntity().setPublish(checkbox_published.getSelection());
118
		}
119
		
120
	}
121

    
122

    
123

    
124

    
125
}
(7-7/10)