fix #5759 remove all switches for remoting and standalone
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / featuretree / FeatureTreeEditorWizard.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.featuretree;
12
13 import java.util.Arrays;
14 import java.util.List;
15 import java.util.Map;
16
17 import org.eclipse.jface.wizard.Wizard;
18
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;
25
26 /**
27 * <p>FeatureTreeEditorWizard class.</p>
28 *
29 * @author n.hoffmann
30 * @created Aug 5, 2010
31 * @version 1.0
32 */
33 public class FeatureTreeEditorWizard extends Wizard implements ICdmEntitySessionEnabled {
34
35 private SelectFeatureTreeWizardPage selectFeatureTreePage;
36 private EditFeatureTreeWizardPage editFeatureTreePage;
37
38 private FeatureTree selectedFeatureTree;
39
40 private ConversationHolder conversation;
41 private ICdmEntitySession cdmEntitySession;
42 private ICdmEntitySession previousCdmEntitySession;
43
44 /**
45 * <p>Constructor for FeatureTreeEditorWizard.</p>
46 */
47 public FeatureTreeEditorWizard(){
48 conversation = CdmStore.createConversation();
49 previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
50 cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
51 setWindowTitle("Feature Tree Editor");
52 }
53
54 /**
55 * <p>addPages</p>
56 */
57 @Override
58 public void addPages() {
59 selectFeatureTreePage = new SelectFeatureTreeWizardPage("SELECT");
60 addPage(selectFeatureTreePage);
61
62 editFeatureTreePage = new EditFeatureTreeWizardPage("EDIT");
63 addPage(editFeatureTreePage);
64 }
65
66
67
68 /** {@inheritDoc} */
69 @Override
70 public boolean performFinish() {
71 try{
72 if (selectedFeatureTree != null){
73 CdmStore.getService(IFeatureTreeService.class).merge(selectedFeatureTree, true);
74 }
75 conversation.commit();
76 }finally{
77 conversation.close();
78 cdmEntitySession.dispose();
79 if(previousCdmEntitySession != null) {
80 previousCdmEntitySession.bind();
81 }
82 }
83
84 return true;
85 }
86
87 /** {@inheritDoc} */
88 @Override
89 public boolean performCancel() {
90 cdmEntitySession.dispose();
91 if(previousCdmEntitySession != null) {
92 previousCdmEntitySession.bind();
93 }
94 return true;
95 }
96
97 /**
98 * <p>Setter for the field <code>selectedFeatureTree</code>.</p>
99 *
100 * @param selectedFeatureTree the selectedFeatureTree to set
101 */
102 public void setSelectedFeatureTree(FeatureTree selectedFeatureTree) {
103 this.selectedFeatureTree = selectedFeatureTree;
104 editFeatureTreePage.setSelectedTree(selectedFeatureTree);
105 }
106
107 /**
108 * <p>Getter for the field <code>selectedFeatureTree</code>.</p>
109 *
110 * @return the selectedFeatureTree
111 */
112 public FeatureTree getSelectedFeatureTree() {
113 return selectedFeatureTree;
114 }
115
116 /* (non-Javadoc)
117 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
118 */
119 @Override
120 public ICdmEntitySession getCdmEntitySession() {
121 // TODO Auto-generated method stub
122 return null;
123 }
124
125 /* (non-Javadoc)
126 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
127 */
128 @Override
129 public List<FeatureTree> getRootEntities() {
130 return Arrays.asList(selectedFeatureTree);
131 }
132
133 /* (non-Javadoc)
134 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
135 */
136 @Override
137 public Map<Object, List<String>> getPropertyPathsMap() {
138 // TODO Auto-generated method stub
139 return null;
140 }
141
142 }