Project

General

Profile

Download (3.24 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2007 EDIT
4
 * European Distributed Institute of Taxonomy 
5
 * http://www.e-taxonomy.eu
6
 * 
7
 * The contents of this file are subject to the Mozilla Public License Version 1.1
8
 * See LICENSE.TXT at the top of this package for the full license terms.
9
 */
10

    
11
package eu.etaxonomy.taxeditor.ui.section.agent;
12

    
13
import org.eclipse.swt.events.SelectionListener;
14

    
15
import eu.etaxonomy.cdm.model.agent.Person;
16
import eu.etaxonomy.cdm.model.agent.Team;
17
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
18
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
19
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
20
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
21
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
22
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
23

    
24
/**
25
 * <p>
26
 * TeamMemberElement class.
27
 * </p>
28
 * 
29
 * @author n.hoffmann
30
 * @created Apr 30, 2010
31
 * @version 1.0
32
 */
33
public class TeamMemberElement extends AbstractEntityCollectionElement<Person> {
34

    
35
	private EntitySelectionElement<Person> selection_person;
36

    
37
	/**
38
	 * <p>
39
	 * Constructor for TeamMemberElement.
40
	 * </p>
41
	 * 
42
	 * @param cdmFormFactory
43
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
44
	 *            object.
45
	 * @param section
46
	 *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
47
	 *            object.
48
	 * @param entity
49
	 *            a {@link eu.etaxonomy.cdm.model.agent.Person} object.
50
	 * @param removeListener
51
	 *            a {@link org.eclipse.swt.events.SelectionListener} object.
52
	 * @param style
53
	 *            a int.
54
	 */
55
	public TeamMemberElement(CdmFormFactory cdmFormFactory,
56
			AbstractFormSection section, Person entity,
57
			SelectionListener removeListener, int style) {
58
		super(cdmFormFactory, section, entity, removeListener, null, style);
59
	}
60

    
61
	/*
62
	 * (non-Javadoc)
63
	 * 
64
	 * @see
65
	 * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls
66
	 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
67
	 */
68
	/** {@inheritDoc} */
69
	@Override
70
	public void createControls(ICdmFormElement element, int style) {
71
		selection_person = formFactory
72
				.createSelectionElement(Person.class,
73
						getConversationHolder(), this, "Person", null,
74
						EntitySelectionElement.EDITABLE | EntitySelectionElement.SELECTABLE, 
75
						style);
76
	}
77

    
78
	/*
79
	 * (non-Javadoc)
80
	 * 
81
	 * @see
82
	 * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity
83
	 * (eu.etaxonomy.cdm.model.common.VersionableEntity)
84
	 */
85
	/** {@inheritDoc} */
86
	@Override
87
	public void setEntity(Person entity) {
88
		this.entity = entity;
89
		selection_person.setEntity(entity);
90
	}
91

    
92
	/** {@inheritDoc} */
93
	@Override
94
	public void handleEvent(Object eventSource) {
95
		if (eventSource == selection_person) {
96
			if (getParentElement() instanceof TeamMemberSection) {
97
				TeamMemberSection teamMemberSection = (TeamMemberSection) getParentElement();
98
				Team team = teamMemberSection.getEntity();
99

    
100
				int index = team.getTeamMembers().indexOf(getEntity());
101

    
102
				team.removeTeamMember(getEntity());
103
				team.addTeamMember(selection_person.getEntity(), index);
104
				firePropertyChangeEvent(new CdmPropertyChangeEvent(
105
						teamMemberSection, eventSource));
106
			}
107
			entity = selection_person.getEntity();
108

    
109
		}
110
	}
111
}
(9-9/12)