Project

General

Profile

Download (3.93 KB) Statistics
| Branch: | Tag: | Revision:
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
			    if(CdmStore.getCurrentSessionManager().isRemoting()) {
74
			        CdmStore.getService(IFeatureTreeService.class).merge(selectedFeatureTree, true);
75
			    } else {
76
			        CdmStore.getService(IFeatureTreeService.class).saveOrUpdate(selectedFeatureTree);
77
			    }
78
			}
79
			conversation.commit();
80
		}finally{
81
			conversation.close();
82
			cdmEntitySession.dispose();
83
			if(previousCdmEntitySession != null) {
84
			    previousCdmEntitySession.bind();
85
			}
86
		}
87

    
88
		return true;
89
	}
90

    
91
	/** {@inheritDoc} */
92
    @Override
93
    public boolean performCancel() {
94
        cdmEntitySession.dispose();
95
        if(previousCdmEntitySession != null) {
96
            previousCdmEntitySession.bind();
97
        }
98
        return true;
99
    }
100

    
101
	/**
102
	 * <p>Setter for the field <code>selectedFeatureTree</code>.</p>
103
	 *
104
	 * @param selectedFeatureTree the selectedFeatureTree to set
105
	 */
106
	public void setSelectedFeatureTree(FeatureTree selectedFeatureTree) {
107
		this.selectedFeatureTree = selectedFeatureTree;
108
		editFeatureTreePage.setSelectedTree(selectedFeatureTree);
109
	}
110

    
111
	/**
112
	 * <p>Getter for the field <code>selectedFeatureTree</code>.</p>
113
	 *
114
	 * @return the selectedFeatureTree
115
	 */
116
	public FeatureTree getSelectedFeatureTree() {
117
		return selectedFeatureTree;
118
	}
119

    
120
    /* (non-Javadoc)
121
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
122
     */
123
    @Override
124
    public ICdmEntitySession getCdmEntitySession() {
125
        // TODO Auto-generated method stub
126
        return null;
127
    }
128

    
129
    /* (non-Javadoc)
130
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
131
     */
132
    @Override
133
    public List<FeatureTree> getRootEntities() {
134
        return Arrays.asList(selectedFeatureTree);
135
    }
136

    
137
    /* (non-Javadoc)
138
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getPropertyPathsMap()
139
     */
140
    @Override
141
    public Map<Object, List<String>> getPropertyPathsMap() {
142
        // TODO Auto-generated method stub
143
        return null;
144
    }
145

    
146
}
(6-6/10)