Project

General

Profile

« Previous | Next » 

Revision e9c96f29

Added by Cherian Mathew almost 9 years ago

#5010, #5046 Integrate remoting in polytomous key editor

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java
10 10

  
11 11
package eu.etaxonomy.taxeditor.editor.key;
12 12

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

  
13 16
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.ui.IEditorInput;
14 18
import org.eclipse.ui.IEditorPart;
19
import org.eclipse.ui.IEditorSite;
15 20
import org.eclipse.ui.PartInitException;
16 21
import org.eclipse.ui.forms.editor.FormEditor;
17 22

  
23
import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
18 24
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
19 25
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
20 26
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
......
27 33
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
28 34
import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
29 35
import eu.etaxonomy.taxeditor.model.MessagingUtils;
36
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
37
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
30 38
import eu.etaxonomy.taxeditor.store.CdmStore;
31 39

  
32 40
/**
......
35 43
 * @version 1.0
36 44
 */
37 45
public class KeyEditor extends FormEditor implements IConversationEnabled,
38
		IDirtyMarkable, IPartContentHasDetails {
46
		IDirtyMarkable, IPartContentHasDetails, ICdmEntitySessionEnabled {
39 47

  
40 48
	public static final String ID = "eu.etaxonomy.taxeditor.editor.key";
41 49

  
......
44 52
	private boolean dirty;
45 53

  
46 54
	private KeyEditorDataChangeBehaviour dataChangeBehavior;
55
	private ICdmEntitySession cdmEntitySession;
56
	private PolytomousKeyEditorInput polytomousKeyEditorInput;
57

  
58
	/*
59
     * (non-Javadoc)
60
     *
61
     * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
62
     * org.eclipse.ui.IEditorInput)
63
     */
64
    @Override
65
    public void init(IEditorSite site, IEditorInput input)
66
            throws PartInitException {
67
        cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
68
        polytomousKeyEditorInput = (PolytomousKeyEditorInput)input;
69
        if(CdmStore.getCurrentSessionManager().isRemoting()) {
70
            polytomousKeyEditorInput.init();
71
        }
72
        super.init(site, input);
73
    }
47 74

  
48 75
	/*
49 76
	 * (non-Javadoc)
......
88 115
	@Override
89 116
	public void setFocus() {
90 117
		getConversationHolder().bind();
118
		cdmEntitySession.bind();
91 119
		super.setFocus();
92 120
	}
93 121
	/*
......
184 212
	public void dispose() {
185 213
		conversation.unregisterForDataStoreChanges(this);
186 214
		conversation.close();
187
		((PolytomousKeyEditorInput)getEditorInput()).dispose();
215
		cdmEntitySession.dispose();
188 216
		super.dispose();
189 217
	}
190 218

  
......
195 223
	 */
196 224
	@Override
197 225
	protected void addPages() {
198
		AbstractIdentificationEditorInput input = (AbstractIdentificationEditorInput) getEditorInput();
199
		conversation = input.getConversationHolder();
226
		conversation = polytomousKeyEditorInput.getConversationHolder();
200 227
		conversation.registerForDataStoreChanges(this);
201 228

  
202 229
		try {
203
			addPage(0, new PolytomousKeyListEditor(this), input);
230
			addPage(0, new PolytomousKeyListEditor(this), polytomousKeyEditorInput);
204 231
			setPageText(0, "List");
205
			addPage(1, new PolytomousKeyGraphEditor(this), input);
232
			addPage(1, new PolytomousKeyGraphEditor(this), polytomousKeyEditorInput);
206 233
			setPageText(1, "Graph");
207 234
		} catch (PartInitException e) {
208 235
			MessagingUtils.error(getClass(), e);
......
218 245
	 *
219 246
	 */
220 247
	public void setPartName() {
221
		AbstractIdentificationEditorInput input = (AbstractIdentificationEditorInput) getEditorInput();
222
		PolytomousKey key = (PolytomousKey) input.getKey();
248
		PolytomousKey key = polytomousKeyEditorInput.getKey();
223 249
		setPartName(key.getTitleCache());
224 250
	}
225
	
226
	
251

  
252
    /* (non-Javadoc)
253
     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
254
     */
255
    @Override
256
    public void onChange(CdmChangeEvent event) {
257
        // TODO Auto-generated method stub
258

  
259
    }
260

  
261
    /* (non-Javadoc)
262
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
263
     */
264
    @Override
265
    public ICdmEntitySession getCdmEntitySession() {
266
        return cdmEntitySession;
267
    }
268

  
269
    /* (non-Javadoc)
270
     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
271
     */
272
    @Override
273
    public List<PolytomousKey> getRootEntities() {
274
        return Arrays.asList(polytomousKeyEditorInput.getKey());
275
    }
276

  
277

  
227 278

  
228 279
}

Also available in: Unified diff