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
.featuretree
;
13 import java
.util
.Arrays
;
14 import java
.util
.List
;
17 import org
.eclipse
.jface
.wizard
.Wizard
;
19 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
20 import eu
.etaxonomy
.cdm
.api
.service
.IFeatureTreeService
;
21 import eu
.etaxonomy
.cdm
.model
.description
.FeatureTree
;
22 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySession
;
23 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySessionEnabled
;
24 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
27 * <p>FeatureTreeEditorWizard class.</p>
30 * @created Aug 5, 2010
33 public class FeatureTreeEditorWizard
extends Wizard
implements ICdmEntitySessionEnabled
{
35 private SelectFeatureTreeWizardPage selectFeatureTreePage
;
36 private EditFeatureTreeWizardPage editFeatureTreePage
;
38 private FeatureTree selectedFeatureTree
;
40 private ConversationHolder conversation
;
41 private ICdmEntitySession cdmEntitySession
;
42 private ICdmEntitySession previousCdmEntitySession
;
45 * <p>Constructor for FeatureTreeEditorWizard.</p>
47 public FeatureTreeEditorWizard(){
48 conversation
= CdmStore
.createConversation();
49 previousCdmEntitySession
= CdmStore
.getCurrentSessionManager().getActiveSession();
50 cdmEntitySession
= CdmStore
.getCurrentSessionManager().newSession(this, true);
51 setWindowTitle("Feature Tree Editor");
58 public void addPages() {
59 selectFeatureTreePage
= new SelectFeatureTreeWizardPage("SELECT");
60 addPage(selectFeatureTreePage
);
62 editFeatureTreePage
= new EditFeatureTreeWizardPage("EDIT");
63 addPage(editFeatureTreePage
);
70 public boolean performFinish() {
72 if (selectedFeatureTree
!= null){
73 if(CdmStore
.getCurrentSessionManager().isRemoting()) {
74 CdmStore
.getService(IFeatureTreeService
.class).merge(selectedFeatureTree
, true);
76 CdmStore
.getService(IFeatureTreeService
.class).saveOrUpdate(selectedFeatureTree
);
79 conversation
.commit();
82 cdmEntitySession
.dispose();
83 if(previousCdmEntitySession
!= null) {
84 previousCdmEntitySession
.bind();
93 public boolean performCancel() {
94 cdmEntitySession
.dispose();
95 if(previousCdmEntitySession
!= null) {
96 previousCdmEntitySession
.bind();
102 * <p>Setter for the field <code>selectedFeatureTree</code>.</p>
104 * @param selectedFeatureTree the selectedFeatureTree to set
106 public void setSelectedFeatureTree(FeatureTree selectedFeatureTree
) {
107 this.selectedFeatureTree
= selectedFeatureTree
;
108 editFeatureTreePage
.setSelectedTree(selectedFeatureTree
);
112 * <p>Getter for the field <code>selectedFeatureTree</code>.</p>
114 * @return the selectedFeatureTree
116 public FeatureTree
getSelectedFeatureTree() {
117 return selectedFeatureTree
;
121 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
124 public ICdmEntitySession
getCdmEntitySession() {
125 // TODO Auto-generated method stub
130 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
133 public List
<FeatureTree
> getRootEntities() {
134 return Arrays
.asList(selectedFeatureTree
);
138 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
141 public Map
<Object
, List
<String
>> getPropertyPathsMap() {
142 // TODO Auto-generated method stub