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.
10 package eu
.etaxonomy
.taxeditor
.ui
.section
.supplemental
;
12 import java
.util
.Comparator
;
14 import org
.eclipse
.swt
.SWT
;
15 import org
.eclipse
.swt
.events
.SelectionListener
;
17 import eu
.etaxonomy
.cdm
.model
.common
.OriginalSourceBase
;
18 import eu
.etaxonomy
.cdm
.model
.common
.OriginalSourceType
;
19 import eu
.etaxonomy
.taxeditor
.ui
.combo
.EnumComboElement
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractFormSection
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
27 * @created Mar 16, 2010
30 public abstract class AbstractOriginalSourceElement
<T
extends OriginalSourceBase
> extends AbstractReferencedEntityElement
<T
> {
31 protected EnumComboElement
<OriginalSourceType
> combo_origsourcetype
;
32 protected TextWithLabelElement text_idInSource
;
33 protected TextWithLabelElement text_idNamespace
;
34 protected TextWithLabelElement text_originaleNameString
;
36 public AbstractOriginalSourceElement(CdmFormFactory formFactory
,
37 AbstractFormSection section
,
38 T element
, SelectionListener removeListener
,
40 super(formFactory
, section
, element
, removeListener
, style
);
47 public void setEntity(T entity
) {
48 super.setEntity(entity
);
49 text_originaleNameString
.setText(entity
.getOriginalNameString());
54 public void createControls(ICdmFormElement formElement
, int style
) {
55 combo_origsourcetype
= formFactory
56 .createEnumComboElement(OriginalSourceType
.class,
57 formElement
, new OriginalSourceTypeComparator(getEntity()), style
);
58 super.createControls(formElement
, style
);
59 text_idInSource
= formFactory
.createTextWithLabelElement(formElement
, "ID in Source", null, style
);
60 text_idNamespace
= formFactory
.createTextWithLabelElement(formElement
, "ID Namespace", null, style
);
61 text_originaleNameString
= formFactory
.createTextWithLabelElement(
62 formElement
, "Original Name", null, SWT
.NULL
);
66 * Sorts source type combo alphabetically <b>except</b> for PrimaryTaxonomicSource resp.
67 * PrimaryMediaSource which are alway on top depending on the IdentifiableSource;
72 private class OriginalSourceTypeComparator
implements Comparator
<OriginalSourceType
>{
74 private OriginalSourceBase entity
;
76 public OriginalSourceTypeComparator(OriginalSourceBase entity
) {
84 public int compare(OriginalSourceType o1
, OriginalSourceType o2
) {
85 if(o1
!=null && o2
==null){
88 else if(o1
==null && o2
!=null){
91 else if(o1
!=null && o2
!=null){
92 if(entity
.getType().equals(OriginalSourceType
.PrimaryMediaSource
)){
93 if(o1
.equals(OriginalSourceType
.PrimaryMediaSource
)){
96 else if(o2
.equals(OriginalSourceType
.PrimaryMediaSource
)){
101 if(o1
.equals(OriginalSourceType
.PrimaryTaxonomicSource
)){
104 else if(o2
.equals(OriginalSourceType
.PrimaryTaxonomicSource
)){
108 String message1
= o1
.getMessage();
109 String message2
= o2
.getMessage();
110 return message1
.compareTo(message2
);