3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
11 package eu
.etaxonomy
.taxeditor
.ui
.selection
;
13 import org
.eclipse
.core
.runtime
.IStatus
;
14 import org
.eclipse
.jface
.wizard
.Wizard
;
15 import org
.eclipse
.jface
.wizard
.WizardDialog
;
16 import org
.eclipse
.swt
.events
.SelectionEvent
;
17 import org
.eclipse
.swt
.events
.SelectionListener
;
19 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacade
;
20 import eu
.etaxonomy
.cdm
.api
.facade
.DerivedUnitFacadeNotSupportedException
;
21 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
22 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
23 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
24 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
25 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableEntity
;
26 import eu
.etaxonomy
.cdm
.model
.name
.NonViralName
;
27 import eu
.etaxonomy
.cdm
.model
.occurrence
.Collection
;
28 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnitBase
;
29 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
30 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
31 import eu
.etaxonomy
.taxeditor
.store
.StoreUtil
;
32 import eu
.etaxonomy
.taxeditor
.ui
.forms
.CdmFormFactory
;
33 import eu
.etaxonomy
.taxeditor
.ui
.section
.agent
.InstitutionWizardPage
;
34 import eu
.etaxonomy
.taxeditor
.ui
.section
.agent
.PersonWizardPage
;
35 import eu
.etaxonomy
.taxeditor
.ui
.section
.agent
.TeamWizardPage
;
36 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.NonViralNameWizardPage
;
37 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.CollectionWizardPage
;
38 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.DerivedUnitBaseWizardPage
;
39 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.FieldObservationWizardPage
;
40 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.GatheringEventWizardPage
;
41 import eu
.etaxonomy
.taxeditor
.ui
.section
.occurrence
.GeneralWizardPage
;
42 import eu
.etaxonomy
.taxeditor
.ui
.section
.reference
.ReferenceWizardPage
;
46 * EditFromSelectionWizard class.
50 * @created Jun 1, 2010
53 public class EditFromSelectionWizard
extends Wizard
implements
56 private final AbstractSelectionElement selectionElement
;
60 * Constructor for EditFromSelectionWizard.
63 * @param selectionElement
65 * {@link eu.etaxonomy.taxeditor.ui.selection.AbstractSelectionElement}
68 public EditFromSelectionWizard(AbstractSelectionElement selectionElement
) {
69 this.selectionElement
= selectionElement
;
70 this.setWindowTitle("Edit Entity");
75 public void addPages() {
77 CdmFormFactory formFactory
= selectionElement
.getFormFactory();
78 IdentifiableEntity entity
= (IdentifiableEntity
) HibernateProxyHelper
79 .deproxy(selectionElement
.getEntity());
81 if (entity
instanceof Reference
) {
82 addPage(new ReferenceWizardPage(formFactory
,
83 selectionElement
.getConversationHolder(),
85 } else if (entity
instanceof Team
) {
86 addPage(new TeamWizardPage(formFactory
,
87 selectionElement
.getConversationHolder(), (Team
) entity
));
88 } else if (entity
instanceof Person
) {
89 addPage(new PersonWizardPage(formFactory
,
90 selectionElement
.getConversationHolder(), (Person
) entity
));
91 } else if (entity
instanceof NonViralName
) {
92 addPage(new NonViralNameWizardPage(formFactory
,
93 selectionElement
.getConversationHolder(),
94 (NonViralName
) entity
));
95 } else if (entity
instanceof DerivedUnitBase
) {
97 DerivedUnitFacade facade
;
99 facade
= DerivedUnitFacade
.NewInstance(
100 (DerivedUnitBase
) entity
,
101 PreferencesUtil
.getDerivedUnitConfigurator());
102 } catch (DerivedUnitFacadeNotSupportedException e
) {
103 // we should never get here
104 throw new IllegalStateException();
107 addPage(new GeneralWizardPage(formFactory
,
108 selectionElement
.getConversationHolder(), facade
));
109 addPage(new GatheringEventWizardPage(formFactory
,
110 selectionElement
.getConversationHolder(), facade
));
111 addPage(new FieldObservationWizardPage(formFactory
,
112 selectionElement
.getConversationHolder(), facade
));
113 addPage(new DerivedUnitBaseWizardPage(formFactory
,
114 selectionElement
.getConversationHolder(), facade
));
115 } else if (entity
instanceof Collection
) {
116 addPage(new CollectionWizardPage(formFactory
,
117 selectionElement
.getConversationHolder(),
118 (Collection
) entity
));
119 } else if (entity
instanceof Institution
) {
120 addPage(new InstitutionWizardPage(formFactory
,
121 selectionElement
.getConversationHolder(),
122 (Institution
) entity
));
124 StoreUtil
.warningDialog("Missing interface", this,
125 "No detail element for current selection");
133 * @see org.eclipse.jface.wizard.Wizard#performFinish()
137 public boolean performFinish() {
143 public void widgetSelected(SelectionEvent e
) {
144 WizardDialog dialog
= new WizardDialog(selectionElement
.getShell(),
146 if (dialog
.open() == IStatus
.OK
) {
147 selectionElement
.updateFromWizard();
153 public void widgetDefaultSelected(SelectionEvent e
) {