ref #9199: adapt nom. ref, nom. status, typedes. elements to original source
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / supplemental / AbstractOriginalSourceElement.java
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.supplemental;
10
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.events.SelectionListener;
13 import org.eclipse.swt.widgets.Text;
14
15 import eu.etaxonomy.cdm.common.CdmUtils;
16 import eu.etaxonomy.cdm.model.common.CdmBase;
17 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
18 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
19 import eu.etaxonomy.cdm.model.reference.ICdmTarget;
20 import eu.etaxonomy.cdm.model.reference.OriginalSourceBase;
21 import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
22 import eu.etaxonomy.cdm.model.reference.Reference;
23 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
24 import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
25 import eu.etaxonomy.taxeditor.ui.combo.OriginalSourceTypeComparator;
26 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
27 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
28 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
29 import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
30 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
31 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
32 import eu.etaxonomy.taxeditor.ui.section.common.ExternalLinksSection;
33 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
34
35 /**
36 * @author n.hoffmann
37 * @created Mar 16, 2010
38 */
39 public abstract class AbstractOriginalSourceElement<T extends OriginalSourceBase> extends AbstractEntityCollectionElement<T> {
40
41 private SelectionArbitrator selectionArbitrator;
42
43 protected boolean isCommonNameReference = false;
44 protected EntitySelectionElement<Reference> selection_reference;
45 protected TextWithLabelElement text_referenceDetail;
46 protected EnumComboElement<OriginalSourceType> combo_origsourcetype;
47 protected TextWithLabelElement text_idInSource;
48 protected TextWithLabelElement text_idNamespace;
49 protected TextWithLabelElement text_originaleNameString;
50 protected TextWithLabelElement text_cdmsource;
51
52 protected ExternalLinksSection externalLinks;
53
54 public AbstractOriginalSourceElement(CdmFormFactory formFactory,
55 AbstractFormSection section,
56 T element, SelectionListener removeListener,
57 int style, boolean isCommonNameReference) {
58 super(formFactory, section, element, removeListener, null, style);
59 if(formFactory.getSelectionProvider() != null){
60 selectionArbitrator = formFactory.createSelectionArbitrator(this);
61 }
62 this.isCommonNameReference = isCommonNameReference;
63 }
64
65 public AbstractOriginalSourceElement(CdmFormFactory formFactory,
66 AbstractFormSection section,
67 T element, SelectionListener removeListener,
68 int style) {
69 this(formFactory, section, element, removeListener, style, false);
70 }
71
72 @Override
73 public void setEntity(T entity) {
74 selection_reference.setEntity(entity.getCitation());
75 text_referenceDetail.setText(entity.getCitationMicroReference());
76 text_originaleNameString.setText(entity.getOriginalNameString());
77 ICdmTarget cdmSource = entity.getCdmSource();
78 String source = "";
79 if(cdmSource instanceof IdentifiableEntity) {
80 source = ((IdentifiableEntity) cdmSource).getTitleCache();
81 } else if(cdmSource instanceof CdmBase) {
82 source += CdmUtils.isNotBlank(source)?"\nUUID: ":"";
83 source += ((CdmBase) cdmSource).getUuid().toString();
84 } else if(cdmSource!=null){
85 source = cdmSource.toString();
86 }
87 text_cdmsource.setText(source);
88 externalLinks.setEntity(entity);
89 }
90
91 /**
92 * @wbp.parser.entryPoint*/
93 @Override
94 public void createControls(ICdmFormElement formElement, int style) {
95 if (isCommonNameReference && PreferencesUtil.getFilterCommonNameReferences()){
96 selection_reference = formFactory
97 .createCommonNameReferenceSelectionElement(formElement, "Reference",
98 null, EntitySelectionElement.ALL, style);
99 }else{
100 selection_reference = formFactory
101 .createSelectionElement(Reference.class,//getConversationHolder(),
102 formElement, "Reference",
103 null, EntitySelectionElement.ALL, style);
104 }
105
106 text_referenceDetail = formFactory.createTextWithLabelElement(
107 formElement, "Reference Detail", null, SWT.NULL);
108
109 combo_origsourcetype = formFactory
110 .createEnumComboElement(OriginalSourceType.class,
111 formElement, new OriginalSourceTypeComparator(getEntity()), style, false);
112
113 if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey())){
114 text_idInSource = formFactory.createTextWithLabelElement(formElement, "ID in Source", null, style);
115 }
116 if (PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey())){
117 text_idNamespace = formFactory.createTextWithLabelElement(formElement, "ID Namespace", null, style);
118 }
119 text_originaleNameString = formFactory.createTextWithLabelElement(
120 formElement, "Original Information", null, SWT.NULL);
121 text_cdmsource = formFactory.createTextWithLabelElement(
122 formElement, "CDM Source", null, SWT.NULL);
123 ((Text) text_cdmsource.getMainControl()).setEditable(false);
124 }
125 }