Project

General

Profile

Download (3.75 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
			    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
}
(6-6/10)