Skip to main content
summaryrefslogtreecommitdiffstats
blob: f3cc4b9139b6b506276ec153f6564c8757e66a24 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package org.eclipse.e4.tools.emf.editor;

import org.eclipse.e4.core.contexts.ContextFunction;
import org.eclipse.e4.core.contexts.IEclipseContext;
import org.eclipse.e4.tools.emf.ui.common.IModelResource.ModelListener;
import org.eclipse.e4.tools.emf.ui.common.XMIModelResource;
import org.eclipse.e4.ui.model.application.ui.basic.MInputPart;
import org.eclipse.emf.common.util.URI;

public class XMIResourceFunction extends ContextFunction {

	@Override
	public Object compute(IEclipseContext context) {
		final MInputPart part = context.get(MInputPart.class);
		if( part != null ) {
			final XMIModelResource resource = new XMIModelResource(URI.createURI(part.getInputURI()));
			resource.addModelListener(new ModelListener() {
				
				public void dirtyChanged() {
					part.setDirty(resource.isDirty());
				}

				public void commandStackChanged() {
					
				}
			});
			return resource;			
		}
		
		return null;
	}
}

Back to the top