2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
;
11 import org
.eclipse
.swt
.SWT
;
12 import org
.eclipse
.swt
.events
.SelectionListener
;
13 import org
.eclipse
.swt
.widgets
.Text
;
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
;
37 * @created Mar 16, 2010
39 public abstract class AbstractOriginalSourceElement
<T
extends OriginalSourceBase
> extends AbstractEntityCollectionElement
<T
> {
41 private SelectionArbitrator selectionArbitrator
;
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
;
52 protected ExternalLinksSection externalLinks
;
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);
62 this.isCommonNameReference
= isCommonNameReference
;
65 public AbstractOriginalSourceElement(CdmFormFactory formFactory
,
66 AbstractFormSection section
,
67 T element
, SelectionListener removeListener
,
69 this(formFactory
, section
, element
, removeListener
, style
, false);
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();
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();
87 text_cdmsource
.setText(source
);
88 externalLinks
.setEntity(entity
);
92 * @wbp.parser.entryPoint*/
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
);
100 selection_reference
= formFactory
101 .createSelectionElement(Reference
.class,//getConversationHolder(),
102 formElement
, "Reference",
103 null, EntitySelectionElement
.ALL
, style
);
106 text_referenceDetail
= formFactory
.createTextWithLabelElement(
107 formElement
, "Reference Detail", null, SWT
.NULL
);
109 combo_origsourcetype
= formFactory
110 .createEnumComboElement(OriginalSourceType
.class,
111 formElement
, new OriginalSourceTypeComparator(getEntity()), style
, false);
113 if (PreferencesUtil
.getBooleanValue(PreferencePredicate
.ShowIdInSource
.getKey())){
114 text_idInSource
= formFactory
.createTextWithLabelElement(formElement
, "ID in Source", null, style
);
116 if (PreferencesUtil
.getBooleanValue(PreferencePredicate
.ShowNamespaceInSource
.getKey())){
117 text_idNamespace
= formFactory
.createTextWithLabelElement(formElement
, "ID Namespace", null, style
);
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);