+// $Id$
+/**
+* Copyright (C) 2016 EDIT
+* 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.
+*/
+package eu.etaxonomy.taxeditor.ui.section.classification;
+
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Color;
+
+import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
+import eu.etaxonomy.cdm.model.common.DefinedTerm;
+import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
+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.element.LabelElement;
+import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
+import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+
+/**
+ * @author k.luther
+ * @date 22.03.2016
+ *
+ */
+public class TaxonNodeAgentRelationCollectionElement extends AbstractEntityCollectionElement<TaxonNodeAgentRelation> {
+
+
+
+
+ /**
+ * @param formFactory
+ * @param section
+ * @param entity
+ * @param removeListener
+ * @param backgroundColor
+ * @param style
+ */
+ public TaxonNodeAgentRelationCollectionElement(CdmFormFactory formFactory, AbstractFormSection section,
+ TaxonNodeAgentRelation entity, SelectionListener removeListener, Color backgroundColor, int style) {
+ super(formFactory, section, entity, removeListener, backgroundColor, style);
+
+ // TODO Auto-generated constructor stub
+ }
+
+
+
+
+ private EntitySelectionElement<TeamOrPersonBase> selection_toPerson;
+ private TermComboElement<DefinedTerm> combo_relationshipType;
+ private LabelElement label;
+
+
+
+
+
+
+
+ @Override
+ public void setEntity(TaxonNodeAgentRelation entity) {
+
+ if(entity.getId()!=0){
+ combo_relationshipType.setSelection(entity.getType());
+ selection_toPerson.setEntity(entity.getAgent());
+ }
+ this.entity = entity;
+ }
+
+ @Override
+ public void handleEvent(Object eventSource) {
+ if(eventSource==combo_relationshipType){
+
+ entity.setType(combo_relationshipType.getSelection());
+
+ }else if (eventSource == selection_toPerson){
+ entity.setAgent(selection_toPerson.getEntity());
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#createControls(eu.etaxonomy.taxeditor.ui.element.ICdmFormElement, int)
+ */
+ @Override
+ public void createControls(ICdmFormElement element, int style) {
+ combo_relationshipType = formFactory.createDefinedTermComboElement(TermType.TaxonNodeAgentRelationType, element, "Taxonnode Agent Relationtype", null, style);
+ if (entity != null){
+ selection_toPerson = formFactory
+ .createSelectionElement(TeamOrPersonBase.class,
+ getConversationHolder(), element, "Agent", entity.getAgent(),
+ EntitySelectionElement.ALL, style);
+ } else{
+ selection_toPerson = formFactory
+ .createSelectionElement(TeamOrPersonBase.class,
+ getConversationHolder(), element, "Agent", null,
+ EntitySelectionElement.ALL, style);
+ }
+ label = formFactory.createLabel(element, null);
+
+ }
+
+ public boolean isComplete(){
+ if (selection_toPerson.getSelection()!= null && combo_relationshipType.getSelection() != null){
+ return true;
+ }
+ return false;
+
+ }
+
+
+}