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
.description
;
12 import org
.eclipse
.swt
.events
.SelectionListener
;
14 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTerm
;
15 import eu
.etaxonomy
.cdm
.model
.term
.TermType
;
16 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKey
;
17 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
18 import eu
.etaxonomy
.taxeditor
.ui
.combo
.term
.TermComboElement
;
19 import eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractFormSection
;
20 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractEntityCollectionElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.section
.key
.ScopeRestrictionSection
;
26 * <p>ScopeElement class.</p>
29 * @created Mar 18, 2010
32 public class ScopeElement
extends AbstractEntityCollectionElement
<DefinedTerm
> {
34 private TermComboElement
<DefinedTerm
> combo_scope
;
37 * <p>Constructor for ScopeElement.</p>
39 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
40 * @param section a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection} object.
41 * @param element a {@link eu.etaxonomy.cdm.model.description.Scope} object.
42 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
45 public ScopeElement(CdmFormFactory cdmFormFactory
,
46 AbstractFormSection section
, DefinedTerm element
,
47 SelectionListener removeListener
, int style
) {
48 super(cdmFormFactory
, section
, element
, removeListener
, null, style
);
53 public void setEntity(DefinedTerm entity
) {
55 if(entity
!=null && entity
.getId()!=0){
56 combo_scope
.setSelection(entity
);
57 combo_scope
.removeEmptyElement();
63 public void createControls(ICdmFormElement element
, int style
) {
64 combo_scope
= formFactory
.createDefinedTermComboElement(TermType
.Scope
, element
, "Scope", null, style
);
69 public void handleEvent(Object eventSource
) {
70 DefinedTerm scopeTerm
= combo_scope
.getSelection();
71 if(eventSource
==combo_scope
&& scopeTerm
!=null){
72 if(getParentElement() instanceof ScopeRestrictionSection
){
73 PolytomousKey key
= ((ScopeRestrictionSection
)getParentElement()).getEntity();
74 key
.removeScopeRestriction(entity
);
75 key
.addScopeRestriction(scopeTerm
);
78 else if(getParentElement() instanceof ScopeSection
){
79 TaxonDescription description
= ((ScopeSection
)getParentElement()).getEntity();
80 description
.removeScope(entity
);
81 description
.addScope(scopeTerm
);