Project

General

Profile

Download (3.74 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
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.
8
*/
9

    
10
package eu.etaxonomy.taxeditor.featuretree;
11

    
12
import java.util.Arrays;
13
import java.util.List;
14
import java.util.Map;
15

    
16
import org.eclipse.jface.wizard.Wizard;
17

    
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;
24

    
25
/**
26
 * <p>FeatureTreeEditorWizard class.</p>
27
 *
28
 * @author n.hoffmann
29
 * @created Aug 5, 2010
30
 * @version 1.0
31
 */
32
public class FeatureTreeEditorWizard extends Wizard implements ICdmEntitySessionEnabled {
33

    
34
	private SelectFeatureTreeWizardPage selectFeatureTreePage;
35
	private EditFeatureTreeWizardPage editFeatureTreePage;
36

    
37
	private FeatureTree selectedFeatureTree;
38

    
39
	private ConversationHolder conversation;
40
	private ICdmEntitySession cdmEntitySession;
41
	private ICdmEntitySession previousCdmEntitySession;
42

    
43
	/**
44
	 * <p>Constructor for FeatureTreeEditorWizard.</p>
45
	 */
46
	public FeatureTreeEditorWizard(){
47
		conversation = CdmStore.createConversation();
48
		previousCdmEntitySession = CdmStore.getCurrentSessionManager().getActiveSession();
49
		cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
50
		setWindowTitle("Feature Tree Editor");
51
	}
52

    
53
	/**
54
	 * <p>addPages</p>
55
	 */
56
	@Override
57
    public void addPages() {
58
		selectFeatureTreePage = new SelectFeatureTreeWizardPage("SELECT");
59
		addPage(selectFeatureTreePage);
60

    
61
		editFeatureTreePage = new EditFeatureTreeWizardPage("EDIT");
62
		addPage(editFeatureTreePage);
63
	}
64

    
65

    
66

    
67
	/** {@inheritDoc} */
68
	@Override
69
	public boolean performFinish() {
70
		try{
71
			if (selectedFeatureTree != null){
72
			    CdmStore.getService(IFeatureTreeService.class).merge(selectedFeatureTree, true);
73
			}
74
			conversation.commit();
75
		}finally{
76
			conversation.close();
77
			cdmEntitySession.dispose();
78
			if(previousCdmEntitySession != null) {
79
			    previousCdmEntitySession.bind();
80
			}
81
		}
82

    
83
		return true;
84
	}
85

    
86
	/** {@inheritDoc} */
87
    @Override
88
    public boolean performCancel() {
89
        cdmEntitySession.dispose();
90
        if(previousCdmEntitySession != null) {
91
            previousCdmEntitySession.bind();
92
        }
93
        return true;
94
    }
95

    
96
	/**
97
	 * <p>Setter for the field <code>selectedFeatureTree</code>.</p>
98
	 *
99
	 * @param selectedFeatureTree the selectedFeatureTree to set
100
	 */
101
	public void setSelectedFeatureTree(FeatureTree selectedFeatureTree) {
102
		this.selectedFeatureTree = selectedFeatureTree;
103
		editFeatureTreePage.setSelectedTree(selectedFeatureTree);
104
	}
105

    
106
	/**
107
	 * <p>Getter for the field <code>selectedFeatureTree</code>.</p>
108
	 *
109
	 * @return the selectedFeatureTree
110
	 */
111
	public FeatureTree getSelectedFeatureTree() {
112
		return selectedFeatureTree;
113
	}
114

    
115
    /* (non-Javadoc)
116
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
117
     */
118
    @Override
119
    public ICdmEntitySession getCdmEntitySession() {
120
        // TODO Auto-generated method stub
121
        return null;
122
    }
123

    
124
    /* (non-Javadoc)
125
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
126
     */
127
    @Override
128
    public List<FeatureTree> getRootEntities() {
129
        return Arrays.asList(selectedFeatureTree);
130
    }
131

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

    
141
}
(6-6/10)