(no commit message)
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / name / NameRelationshipDetailElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 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
11 package eu.etaxonomy.taxeditor.ui.section.name;
12
13 import org.eclipse.swt.SWT;
14 import org.eclipse.swt.events.SelectionListener;
15 import org.eclipse.swt.graphics.Color;
16
17 import eu.etaxonomy.cdm.model.name.NameRelationship;
18 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
19 import eu.etaxonomy.taxeditor.store.StoreUtil;
20 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
21 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
22 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
23 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
24 import eu.etaxonomy.taxeditor.ui.element.LabelElement;
25 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
26 import eu.etaxonomy.taxeditor.ui.section.supplemental.AbstractReferencedEntityElement;
27 import eu.etaxonomy.taxeditor.ui.selection.AbstractSelectionElement;
28
29 /**
30 * <p>NameRelationshipDetailElement class.</p>
31 *
32 * @author n.hoffmann
33 * @created Mar 18, 2010
34 * @version 1.0
35 */
36 public class NameRelationshipDetailElement extends AbstractReferencedEntityElement<NameRelationship>{
37
38 private TextWithLabelElement text_ruleConsidered;
39 private AbstractSelectionElement selection_toName;
40 private TermComboElement<NameRelationshipType> combo_relationshipType;
41 private LabelElement label;
42
43 /**
44 * <p>Constructor for NameRelationshipDetailElement.</p>
45 *
46 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
47 * @param formElement a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
48 * @param entity a {@link eu.etaxonomy.cdm.model.name.NameRelationship} object.
49 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
50 * @param style a int.
51 */
52 public NameRelationshipDetailElement(CdmFormFactory cdmFormFactory,
53 AbstractFormSection formElement,
54 NameRelationship entity, SelectionListener removeListener, int style) {
55 super(cdmFormFactory, formElement, entity, removeListener, style);
56 }
57
58 /* (non-Javadoc)
59 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
60 */
61 /** {@inheritDoc} */
62 @Override
63 public void createControls(ICdmFormElement element, int style) {
64 label = formFactory.createLabel(element, null);
65
66 text_ruleConsidered = formFactory.createTextWithLabelElement(element, "Rule Considered", null, SWT.NULL);
67
68 super.createControls(element, style);
69 }
70
71 /** {@inheritDoc} */
72 @Override
73 public void setEntity(NameRelationship entity) {
74 String text = entity.getFromName().getTitleCache() + " is " + entity.getType().getLabel() + " " + entity.getToName().getTitleCache();
75
76 label.setText(text);
77 text_ruleConsidered.setText(entity.getRuleConsidered());
78
79 super.setEntity(entity);
80 }
81
82 /** {@inheritDoc} */
83 @Override
84 public void handleEvent(Object eventSource) {
85 if(eventSource == combo_relationshipType){
86 getEntity().setType(combo_relationshipType.getSelection());
87 }
88 else if(eventSource == selection_toName){
89 StoreUtil.error(getClass(), "No API call available.", null);
90 }
91 else if(eventSource == text_ruleConsidered){
92 getEntity().setRuleConsidered(text_ruleConsidered.getText());
93 }
94 else if(eventSource == selection_reference){
95 getEntity().setCitation(selection_reference.getSelection());
96 }
97 else if(eventSource == text_referenceDetail){
98 getEntity().setCitationMicroReference(text_referenceDetail.getText());
99 }
100 }
101
102 /** {@inheritDoc} */
103 @Override
104 public void setBackground(Color color) {
105 if(label != null)
106 label.setBackground(color);
107 super.setBackground(color);
108 }
109
110 }