-// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.model.common.DefinedTerm;
-import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.description.PolytomousKey;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+import eu.etaxonomy.taxeditor.ui.section.key.ScopeRestrictionSection;
/**
* <p>ScopeElement class.</p>
* @version 1.0
*/
public class ScopeElement extends AbstractEntityCollectionElement<DefinedTerm> {
-
+
private TermComboElement<DefinedTerm> combo_scope;
/**
@Override
public void setEntity(DefinedTerm entity) {
this.entity = entity;
- combo_scope.setSelection(entity);
+ if(entity!=null && entity.getId()!=0){
+ combo_scope.setSelection(entity);
+ combo_scope.removeEmptyElement();
+ }
}
/** {@inheritDoc} */
@Override
public void createControls(ICdmFormElement element, int style) {
- combo_scope = formFactory.createTermComboElement(DefinedTerm.class, element, "Scope", null, style);
+ combo_scope = formFactory.createDefinedTermComboElement(TermType.Scope, element, "Scope", null, style);
}
/** {@inheritDoc} */
@Override
public void handleEvent(Object eventSource) {
-
- }
+ DefinedTerm scopeTerm = combo_scope.getSelection();
+ if(eventSource==combo_scope && scopeTerm!=null){
+ if(getParentElement() instanceof ScopeRestrictionSection){
+ PolytomousKey key = ((ScopeRestrictionSection)getParentElement()).getEntity();
+ key.removeScopeRestriction(entity);
+ key.addScopeRestriction(scopeTerm);
+ entity = scopeTerm;
+ }
+ else if(getParentElement() instanceof ScopeSection){
+ TaxonDescription description = ((ScopeSection)getParentElement()).getEntity();
+ description.removeScope(entity);
+ description.addScope(scopeTerm);
+ entity = scopeTerm;
+ }
+ }
+ }
}