2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.featuretree
;
12 import java
.util
.Arrays
;
13 import java
.util
.List
;
16 import org
.eclipse
.jface
.wizard
.Wizard
;
18 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
19 import eu
.etaxonomy
.cdm
.api
.service
.IFeatureTreeService
;
20 import eu
.etaxonomy
.cdm
.model
.description
.FeatureTree
;
21 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySession
;
22 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySessionEnabled
;
23 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
26 * <p>FeatureTreeEditorWizard class.</p>
29 * @created Aug 5, 2010
32 public class FeatureTreeEditorWizard
extends Wizard
implements ICdmEntitySessionEnabled
{
34 private SelectFeatureTreeWizardPage selectFeatureTreePage
;
35 private EditFeatureTreeWizardPage editFeatureTreePage
;
37 private FeatureTree selectedFeatureTree
;
39 private ConversationHolder conversation
;
40 private ICdmEntitySession cdmEntitySession
;
41 private ICdmEntitySession previousCdmEntitySession
;
44 * <p>Constructor for FeatureTreeEditorWizard.</p>
46 public FeatureTreeEditorWizard(){
47 conversation
= CdmStore
.createConversation();
48 previousCdmEntitySession
= CdmStore
.getCurrentSessionManager().getActiveSession();
49 cdmEntitySession
= CdmStore
.getCurrentSessionManager().newSession(this, true);
50 setWindowTitle("Feature Tree Editor");
57 public void addPages() {
58 selectFeatureTreePage
= new SelectFeatureTreeWizardPage("SELECT");
59 addPage(selectFeatureTreePage
);
61 editFeatureTreePage
= new EditFeatureTreeWizardPage("EDIT");
62 addPage(editFeatureTreePage
);
69 public boolean performFinish() {
71 if (selectedFeatureTree
!= null){
72 CdmStore
.getService(IFeatureTreeService
.class).merge(selectedFeatureTree
, true);
74 conversation
.commit();
77 cdmEntitySession
.dispose();
78 if(previousCdmEntitySession
!= null) {
79 previousCdmEntitySession
.bind();
88 public boolean performCancel() {
89 cdmEntitySession
.dispose();
90 if(previousCdmEntitySession
!= null) {
91 previousCdmEntitySession
.bind();
97 * <p>Setter for the field <code>selectedFeatureTree</code>.</p>
99 * @param selectedFeatureTree the selectedFeatureTree to set
101 public void setSelectedFeatureTree(FeatureTree selectedFeatureTree
) {
102 this.selectedFeatureTree
= selectedFeatureTree
;
103 editFeatureTreePage
.setSelectedTree(selectedFeatureTree
);
107 * <p>Getter for the field <code>selectedFeatureTree</code>.</p>
109 * @return the selectedFeatureTree
111 public FeatureTree
getSelectedFeatureTree() {
112 return selectedFeatureTree
;
116 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
119 public ICdmEntitySession
getCdmEntitySession() {
120 // TODO Auto-generated method stub
125 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
128 public List
<FeatureTree
> getRootEntities() {
129 return Arrays
.asList(selectedFeatureTree
);
133 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
136 public Map
<Object
, List
<String
>> getPropertyPathsMap() {
137 // TODO Auto-generated method stub