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
.forms
.selection
;
13 import org
.apache
.log4j
.Logger
;
14 import org
.eclipse
.core
.runtime
.IStatus
;
15 import org
.eclipse
.jface
.wizard
.Wizard
;
16 import org
.eclipse
.jface
.wizard
.WizardDialog
;
17 import org
.eclipse
.swt
.events
.SelectionEvent
;
18 import org
.eclipse
.swt
.events
.SelectionListener
;
20 import eu
.etaxonomy
.cdm
.hibernate
.HibernateProxyHelper
;
21 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
22 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
23 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableEntity
;
24 import eu
.etaxonomy
.cdm
.model
.name
.NonViralName
;
25 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnitBase
;
26 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
27 import eu
.etaxonomy
.taxeditor
.editor
.EditorUtil
;
28 import eu
.etaxonomy
.taxeditor
.forms
.AbstractCdmEntityWizardPage
;
29 import eu
.etaxonomy
.taxeditor
.forms
.CdmFormFactory
;
30 import eu
.etaxonomy
.taxeditor
.section
.agent
.PersonWizardPage
;
31 import eu
.etaxonomy
.taxeditor
.section
.agent
.TeamWizardPage
;
32 import eu
.etaxonomy
.taxeditor
.section
.name
.NonViralNameWizardPage
;
33 import eu
.etaxonomy
.taxeditor
.section
.occurrence
.DerivedUnitFacadeWizardPage
;
34 import eu
.etaxonomy
.taxeditor
.section
.reference
.ReferenceBaseWizardPage
;
37 * <p>EditFromSelectionWizard class.</p>
40 * @created Jun 1, 2010
43 public class EditFromSelectionWizard
extends Wizard
implements SelectionListener
{
45 private AbstractSelectionElement selectionElement
;
48 AbstractCdmEntityWizardPage page
;
51 * <p>Constructor for EditFromSelectionWizard.</p>
53 * @param selectionElement a {@link eu.etaxonomy.taxeditor.forms.selection.AbstractSelectionElement} object.
55 public EditFromSelectionWizard(AbstractSelectionElement selectionElement
){
56 this.selectionElement
= selectionElement
;
57 this.setWindowTitle("Edit Entity");
62 public void addPages() {
64 CdmFormFactory formFactory
= selectionElement
.getFormFactory();
65 IdentifiableEntity entity
= (IdentifiableEntity
) HibernateProxyHelper
.deproxy(selectionElement
.getEntity());
67 if(entity
instanceof ReferenceBase
){
68 page
= new ReferenceBaseWizardPage(formFactory
, selectionElement
.getConversationHolder(), (ReferenceBase
) entity
);
70 else if(entity
instanceof Team
){
71 page
= new TeamWizardPage(formFactory
, selectionElement
.getConversationHolder(), (Team
) entity
);
73 else if(entity
instanceof Person
){
74 page
= new PersonWizardPage(formFactory
, selectionElement
.getConversationHolder(), (Person
) entity
);
76 else if(entity
instanceof NonViralName
){
77 page
= new NonViralNameWizardPage(formFactory
, selectionElement
.getConversationHolder(), (NonViralName
) entity
);
79 else if (entity
instanceof DerivedUnitBase
){
80 page
= new DerivedUnitFacadeWizardPage(formFactory
, selectionElement
.getConversationHolder(), (DerivedUnitBase
) entity
);
83 EditorUtil
.warningDialog("Missing interface", this, "No detail element for current selection");
90 * @see org.eclipse.jface.wizard.Wizard#performFinish()
94 public boolean performFinish() {
100 public void widgetSelected(SelectionEvent e
) {
101 WizardDialog dialog
= new WizardDialog(selectionElement
.getShell(), this);
102 if(dialog
.open() == IStatus
.OK
){
103 selectionElement
.updateFromWizard();
108 public void widgetDefaultSelected(SelectionEvent e
) {}