New wizards are not finishable when no data was entered
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / agent / TeamDetailElement.java
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 java.util.Arrays;
14
15 import org.eclipse.ui.forms.widgets.Section;
16
17 import eu.etaxonomy.cdm.model.agent.Team;
18 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
19 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory.EntityDetailType;
20 import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
21 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
22 import eu.etaxonomy.taxeditor.ui.forms.ToggleableTextElement;
23 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
24
25 /**
26 * <p>
27 * TeamDetailElement class.
28 * </p>
29 *
30 * @author n.hoffmann
31 * @created Apr 26, 2010
32 * @version 1.0
33 */
34 public class TeamDetailElement extends AbstractCdmDetailElement<Team> {
35
36 private ToggleableTextElement toggleable_cache;
37
38 private ToggleableTextElement toggleable_nomenclaturalTitleCache;
39
40 private TeamMemberSection section_teamMembers;
41
42 /**
43 * <p>
44 * Constructor for TeamDetailElement.
45 * </p>
46 *
47 * @param cdmFormFactory
48 * a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory}
49 * object.
50 * @param formElement
51 * a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement}
52 * object.
53 * @param style
54 * a int.
55 */
56 public TeamDetailElement(CdmFormFactory cdmFormFactory,
57 ICdmFormElement formElement, int style) {
58 super(cdmFormFactory, formElement);
59 }
60
61 /** {@inheritDoc} */
62 @Override
63 protected void createControls(ICdmFormElement formElement, Team entity,
64 int style) {
65
66 toggleable_cache = formFactory.createToggleableTextField(formElement,
67 "Title Cache", entity.getTitleCache(),
68 entity.isProtectedTitleCache(), style);
69 toggleable_nomenclaturalTitleCache = formFactory
70 .createToggleableTextField(formElement, "Nom. Title",
71 entity.getNomenclaturalTitle(),
72 entity.isProtectedNomenclaturalTitleCache(), style);
73 section_teamMembers = (TeamMemberSection) formFactory
74 .createEntityDetailSection(EntityDetailType.TEAMMEMBER,
75 getConversationHolder(), formElement, Section.EXPANDED);
76 section_teamMembers.setLayoutData(CdmFormFactory
77 .FILL_HORIZONTALLY(2, 1));
78 }
79
80 /** {@inheritDoc} */
81 @Override
82 protected void updateContent() {
83 super.updateContent();
84
85 toggleable_cache.setEnabled(getEntity().isProtectedTitleCache());
86 toggleable_nomenclaturalTitleCache.setEnabled(getEntity()
87 .isProtectedNomenclaturalTitleCache());
88 setIrrelevant(
89 toggleable_cache.getState(),
90 Arrays.asList(new Object[] { toggleable_cache,
91 toggleable_nomenclaturalTitleCache }));
92
93 section_teamMembers.setEntity(getEntity());
94
95 }
96
97 /** {@inheritDoc} */
98 @Override
99 public void handleEvent(Object eventSource) {
100 if (eventSource == toggleable_cache) {
101 getEntity().setTitleCache(toggleable_cache.getText(),
102 toggleable_cache.getState());
103 // setEnabled(! toggleable_cache.getState(), Arrays.asList(new
104 // Object[]{toggleable_cache}));
105 setIrrelevant(toggleable_cache.getState(),
106 Arrays.asList(new Object[] { toggleable_cache }));
107 } else if (eventSource == toggleable_nomenclaturalTitleCache) {
108 getEntity().setNomenclaturalTitle(
109 toggleable_nomenclaturalTitleCache.getText(),
110 toggleable_nomenclaturalTitleCache.getState());
111 // setEnabled(! toggleable_nomenclaturalTitleCache.getState(),
112 // Arrays.asList(new Object[]{toggleable_nomenclaturalTitleCache}));
113 setIrrelevant(
114 toggleable_nomenclaturalTitleCache.getState(),
115 Arrays.asList(new Object[] { toggleable_nomenclaturalTitleCache }));
116 } else if (eventSource == section_teamMembers) {
117 toggleable_cache.setText(getEntity().getTitleCache());
118 toggleable_nomenclaturalTitleCache.setText(getEntity()
119 .getNomenclaturalTitle());
120 }
121
122 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
123 }
124 }