use of org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource in project xtext-eclipse by eclipse.
the class DirtyStateEditorSupportTest method setUp.
@Override
public void setUp() throws Exception {
super.setUp();
document = this;
resourceSet = new ResourceSetImpl();
resourceURI = URI.createURI("scheme://foo");
resource = new XtextResource(resourceURI);
resource.setLanguageName("FooLanguage");
final DefaultResourceServiceProvider resourceServiceProvider = new DefaultResourceServiceProvider() {
@Override
public org.eclipse.xtext.resource.IResourceDescription.Manager getResourceDescriptionManager() {
return DirtyStateEditorSupportTest.this;
}
@SuppressWarnings("unchecked")
@Override
public <T> T get(Class<T> t) {
if (DirtyStateResourceDescription.Manager.class.isAssignableFrom(t))
return (T) new DirtyStateResourceDescription.Manager(DirtyStateEditorSupportTest.this);
if (LanguageInfo.class.isAssignableFrom(t))
return (T) new LanguageInfo("FooLanguage");
return super.get(t);
}
};
ResourceServiceProviderRegistryImpl registry = new ResourceServiceProviderRegistryImpl() {
@Override
public IResourceServiceProvider getResourceServiceProvider(URI uri) {
return resourceServiceProvider;
}
};
resource.setResourceServiceProvider(resourceServiceProvider);
resourceSet.getResources().add(resource);
dirtyStateSupport = new DirtyStateEditorSupport();
dirtyStateSupport.setConcurrentEditingWarningDialog(this);
dirtyStateSupport.setResourceDescriptions(this);
dirtyStateManager = new DirtyStateManager();
stateChangeEventBroker = new StateChangeEventBroker();
dirtyStateManager.addListener(stateChangeEventBroker);
dirtyStateSupport.setDirtyStateManager(dirtyStateManager);
dirtyStateSupport.setStateChangeEventBroker(stateChangeEventBroker);
dirtyResource = new DocumentBasedDirtyResource();
dirtyStateSupport.setDirtyResource(dirtyResource);
dirtyStateSupport.setResourceServiceProviderRegistry(registry);
ignoreConcurrentEditing = Lists.newLinkedList();
exportedObjects = Collections.emptyList();
}
use of org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource in project xtext-eclipse by eclipse.
the class DocumentBasedDirtyResourceTest method setUp.
@Override
public void setUp() throws Exception {
super.setUp();
with(XtextStandaloneSetup.class);
uri = URI.createURI("scheme:/foobar.xtext");
documentContent = "grammar foo with org.eclipse.xtext.common.Terminals\n" + "generate test 'http://test'\n" + "Model: name=ID;";
resource = getResource(documentContent, uri.toString());
DefaultResourceServiceProvider provider = new DefaultResourceServiceProvider() {
@Override
public org.eclipse.xtext.resource.IResourceDescription.Manager getResourceDescriptionManager() {
return DocumentBasedDirtyResourceTest.this;
}
};
resource.setResourceServiceProvider(provider);
dirtyResource = new DocumentBasedDirtyResource();
description = this;
}
use of org.eclipse.xtext.ui.editor.DocumentBasedDirtyResource in project n4js by eclipse.
the class PrevStateAwareDirtyStateManager method reflectiveGetInnerResource.
private DocumentBasedDirtyResource reflectiveGetInnerResource(final IDirtyResource dirtyResource) {
Field[] declaredFields = dirtyResource.getClass().getDeclaredFields();
DocumentBasedDirtyResource myDirtyResource = null;
try {
Field field = declaredFields[0];
field.setAccessible(true);
Object fieldValue = field.get(dirtyResource);
if (fieldValue instanceof DirtyStateEditorSupport) {
myDirtyResource = ((DirtyStateEditorSupport) fieldValue).getDirtyResource();
}
} catch (IllegalArgumentException | IllegalAccessException e) {
// ignore
}
return myDirtyResource;
}
Aggregations