Selaa lähdekoodia

removed obsolete context element provider (#2157)

Andreas Mülder 7 vuotta sitten
vanhempi
commit
c3b0417165

+ 11 - 15
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/util/ContextElementAdapter.java

@@ -11,6 +11,7 @@
  */
 package org.yakindu.sct.model.sgraph.util;
 
+import org.eclipse.core.runtime.Assert;
 import org.eclipse.emf.common.notify.impl.AdapterImpl;
 import org.eclipse.emf.ecore.EObject;
 
@@ -24,23 +25,14 @@ import org.eclipse.emf.ecore.EObject;
 
 public class ContextElementAdapter extends AdapterImpl {
 
-	public interface IContextElementProvider {
-		public EObject getContextObject();
-	}
-
-	private final IContextElementProvider provider;
+	private EObject eObject;
 
-	public ContextElementAdapter(IContextElementProvider provider) {
-		this.provider = provider;
+	public ContextElementAdapter() {
 	}
-
+	
 	public ContextElementAdapter(EObject eObject) {
-		this.provider = new IContextElementProvider() {
-			@Override
-			public EObject getContextObject() {
-				return eObject;
-			}
-		};
+		Assert.isNotNull(eObject);
+		this.eObject = eObject;
 	}
 
 	@Override
@@ -49,6 +41,10 @@ public class ContextElementAdapter extends AdapterImpl {
 	}
 
 	public EObject getElement() {
-		return provider.getContextObject();
+		return eObject;
+	}
+
+	public void setElement(EObject object) {
+		this.eObject = object;
 	}
 }

+ 10 - 6
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/expressions/STextExpressionParser.java

@@ -45,14 +45,17 @@ import com.google.inject.name.Named;
 
 public class STextExpressionParser implements IExpressionParser {
 
-	public static class LinkingException extends RuntimeException{
+	public static class LinkingException extends RuntimeException {
 		private static final long serialVersionUID = 1L;
+
 		public LinkingException(String msg) {
 			super(msg);
 		}
 	}
-	public static class SyntaxException extends RuntimeException{
+
+	public static class SyntaxException extends RuntimeException {
 		private static final long serialVersionUID = 1L;
+
 		public SyntaxException(String msg) {
 			super(msg);
 		}
@@ -64,7 +67,7 @@ public class STextExpressionParser implements IExpressionParser {
 	private ILinker linker;
 	@Inject
 	private Injector injector;
-	
+
 	@Inject
 	@Named(DomainRegistry.DOMAIN_ID)
 	private String domainId;
@@ -72,11 +75,12 @@ public class STextExpressionParser implements IExpressionParser {
 	public StextResource getResource() {
 		final StextResource resource = new StextResource();
 		injector.injectMembers(resource);
-		resource.eAdapters().add(new ContextElementAdapter(new ContextElementAdapter.IContextElementProvider() {
-			public EObject getContextObject() {
+		resource.eAdapters().add(new ContextElementAdapter() {
+			@Override
+			public EObject getElement() {
 				return (EObject) EcoreUtil.getObjectByType(resource.getContents(), SGraphPackage.Literals.STATECHART);
 			}
-		}));
+		});
 		ResourceSet set = new ResourceSetImpl();
 		set.getResources().add(resource);
 		return resource;

+ 1 - 1
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/extensions/STextExtensions.java

@@ -38,7 +38,7 @@ public class STextExtensions {
 	public Statechart getStatechart(EObject context) {
 		final ContextElementAdapter provider = getContextElementAdapter(context.eResource());
 
-		if (provider == null) {
+		if (provider == null || provider.getElement() == null || provider.getElement().eResource() == null) {
 			return EcoreUtil2.getContainerOfType(context, Statechart.class);
 		} else {
 			return (Statechart) EcoreUtil.getObjectByType(provider.getElement().eResource().getContents(),

+ 4 - 7
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/definitionsection/StatechartDefinitionSection.java

@@ -88,7 +88,6 @@ import org.yakindu.sct.domain.extension.IDomain;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.util.ContextElementAdapter;
-import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.sct.ui.editor.StatechartImages;
 import org.yakindu.sct.ui.editor.partitioning.DiagramPartitioningEditor;
 import org.yakindu.sct.ui.editor.partitioning.DiagramPartitioningUtil;
@@ -102,8 +101,7 @@ import com.google.inject.Injector;
  *
  */
 @SuppressWarnings("restriction")
-public class StatechartDefinitionSection extends Composite
-		implements IPersistableEditor, IPersistableElement, IContextElementProvider {
+public class StatechartDefinitionSection extends Composite implements IPersistableEditor, IPersistableElement {
 
 	protected static final String SHOW_SECTION_TOOLTIP = "Show definition section";
 	protected static final String HIDE_SECTION_TOOLTIP = "Hide definition section";
@@ -263,7 +261,7 @@ public class StatechartDefinitionSection extends Composite
 			public XtextResource createResource() {
 				XtextFakeResourceContext resource = new XtextFakeResourceContext(injector);
 				xtextResource = resource.getFakeResource();
-				xtextResource.eAdapters().add(new ContextElementAdapter(StatechartDefinitionSection.this));
+				xtextResource.eAdapters().add(new ContextElementAdapter(getContextObject()));
 				return xtextResource;
 			}
 		};
@@ -297,7 +295,7 @@ public class StatechartDefinitionSection extends Composite
 				SGraphPackage.Literals.SPECIFICATION_ELEMENT__SPECIFICATION);
 		ISWTObservableValue uiProperty = WidgetProperties.text(new int[] { SWT.FocusOut }).observe(text);
 		IObservableValue modelPropertyObservable = modelProperty.observe(getContextObject());
-		context = new ValidatingEMFDatabindingContext((IContextElementProvider) editorPart,
+		context = new ValidatingEMFDatabindingContext((EObject)editorPart.getAdapter(EObject.class),
 				editorPart.getSite().getShell());
 		context.bindValue(uiProperty, modelPropertyObservable, null, null);
 	}
@@ -322,7 +320,6 @@ public class StatechartDefinitionSection extends Composite
 		return (TransactionalEditingDomain) editorPart.getAdapter(TransactionalEditingDomain.class);
 	}
 
-	@Override
 	public EObject getContextObject() {
 		return (EObject) editorPart.getAdapter(EObject.class);
 	}
@@ -601,7 +598,7 @@ public class StatechartDefinitionSection extends Composite
 			resizeFinishedJob.cancel();
 			resizeFinishedJob.schedule(DELAY);
 		}
-		
+
 	}
 
 	/**

+ 1 - 2
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editor/StatechartDiagramEditor.java

@@ -59,7 +59,6 @@ import org.yakindu.sct.domain.extension.DomainStatus.Severity;
 import org.yakindu.sct.domain.extension.IDomain;
 import org.yakindu.sct.model.sgraph.SpecificationElement;
 import org.yakindu.sct.model.sgraph.Statechart;
-import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.sct.ui.editor.DiagramActivator;
 import org.yakindu.sct.ui.editor.definitionsection.StatechartDefinitionSection;
 import org.yakindu.sct.ui.editor.partitioning.DiagramPartitioningEditor;
@@ -80,7 +79,7 @@ import com.google.inject.Key;
  * @author robert rudi
  */
 @SuppressWarnings("restriction")
-public class StatechartDiagramEditor extends DiagramPartitioningEditor implements IGotoMarker, IContextElementProvider {
+public class StatechartDiagramEditor extends DiagramPartitioningEditor implements IGotoMarker {
 
 	public static final String ID = "org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor";
 

+ 2 - 3
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/PlugableExternalXtextLabelEditPart.java

@@ -38,7 +38,6 @@ import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomain;
 import org.yakindu.sct.model.sgraph.SpecificationElement;
 import org.yakindu.sct.model.sgraph.util.ContextElementAdapter;
-import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.sct.ui.editor.DiagramActivator;
 import org.yakindu.sct.ui.editor.policies.EAttributeDirectEditPolicy;
 import org.yakindu.sct.ui.editor.preferences.StatechartPreferenceConstants;
@@ -52,7 +51,7 @@ import com.google.inject.Injector;
  * 
  */
 public abstract class PlugableExternalXtextLabelEditPart extends ExternalXtextLabelEditPart
-		implements ITextAwareEditPart, IContextElementProvider, IEAttributeProvider, IPropertyChangeListener {
+		implements ITextAwareEditPart, IEAttributeProvider, IPropertyChangeListener {
 
 	private static final String PRIMARY_VIEW_LISTENER = "primaryViewListener";
 
@@ -180,7 +179,7 @@ public abstract class PlugableExternalXtextLabelEditPart extends ExternalXtextLa
 
 	@Override
 	protected void setContext(Resource resource) {
-		resource.eAdapters().add(new ContextElementAdapter(this));
+		resource.eAdapters().add(new ContextElementAdapter(resolveSemanticElement()));
 	}
 
 	@Override

+ 2 - 8
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/editparts/PlugableXtextLabelEditPart.java

@@ -13,7 +13,6 @@ package org.yakindu.sct.ui.editor.editparts;
 import java.util.List;
 
 import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.gef.EditPolicy;
 import org.eclipse.gef.tools.DirectEditManager;
@@ -38,7 +37,6 @@ import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomain;
 import org.yakindu.sct.model.sgraph.SpecificationElement;
 import org.yakindu.sct.model.sgraph.util.ContextElementAdapter;
-import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.sct.ui.editor.DiagramActivator;
 import org.yakindu.sct.ui.editor.policies.EAttributeDirectEditPolicy;
 import org.yakindu.sct.ui.editor.preferences.StatechartPreferenceConstants;
@@ -52,7 +50,7 @@ import com.google.inject.Injector;
  * 
  */
 public abstract class PlugableXtextLabelEditPart extends XtextLabelEditPart
-		implements ITextAwareEditPart, IContextElementProvider, IEAttributeProvider, IPropertyChangeListener {
+		implements ITextAwareEditPart, IEAttributeProvider, IPropertyChangeListener {
 
 	private static final String PRIMARY_VIEW_LISTENER = "primaryViewListener";
 
@@ -126,10 +124,6 @@ public abstract class PlugableXtextLabelEditPart extends XtextLabelEditPart
 		return (SpecificationElement) super.resolveSemanticElement();
 	}
 
-	public EObject getContextObject() {
-		return resolveSemanticElement();
-	}
-
 	public Injector getInjector() {
 		return injector;
 	}
@@ -180,7 +174,7 @@ public abstract class PlugableXtextLabelEditPart extends XtextLabelEditPart
 
 	@Override
 	protected void setContext(Resource resource) {
-		resource.eAdapters().add(new ContextElementAdapter(this));
+		resource.eAdapters().add(new ContextElementAdapter(resolveSemanticElement()));
 
 	}
 

+ 2 - 4
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/AbstractEditorPropertySection.java

@@ -45,7 +45,6 @@ import org.yakindu.base.xtext.utils.jface.viewers.util.ActiveEditorTracker;
 import org.yakindu.sct.domain.extension.DomainRegistry;
 import org.yakindu.sct.domain.extension.IDomain;
 import org.yakindu.sct.model.sgraph.util.ContextElementAdapter;
-import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.sct.ui.editor.editor.StatechartDiagramEditor;
 
 import com.google.inject.Injector;
@@ -55,8 +54,7 @@ import com.google.inject.Injector;
  * @author andreas muelder - Initial contribution and API
  * 
  */
-public abstract class AbstractEditorPropertySection extends AbstractModelerPropertySection
-		implements IContextElementProvider {
+public abstract class AbstractEditorPropertySection extends AbstractModelerPropertySection {
 
 	public abstract void createControls(Composite parent);
 
@@ -98,7 +96,7 @@ public abstract class AbstractEditorPropertySection extends AbstractModelerPrope
 	protected void inputChanged() {
 		if (bindingContext != null)
 			bindingContext.dispose();
-		bindingContext = new ValidatingEMFDatabindingContext(this, form.getShell());
+		bindingContext = new ValidatingEMFDatabindingContext(getEObject(), form.getShell());
 		bindModel(bindingContext);
 	}
 

+ 5 - 5
plugins/org.yakindu.sct.ui.editor/src/org/yakindu/sct/ui/editor/propertysheets/ValidatingEMFDatabindingContext.java

@@ -16,10 +16,10 @@ import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.emf.databinding.EMFDataBindingContext;
 import org.eclipse.emf.databinding.EMFUpdateValueStrategy;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.workspace.util.WorkspaceSynchronizer;
 import org.eclipse.gmf.runtime.common.ui.resources.FileModificationValidator;
 import org.eclipse.swt.widgets.Shell;
-import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementProvider;
 
 /**
  * Checks the file modification flag before updating the model.
@@ -29,16 +29,16 @@ import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementPr
  */
 public class ValidatingEMFDatabindingContext extends EMFDataBindingContext {
 
-	private IContextElementProvider elementProvider;
 	private Shell shell;
+	private EObject context;
 
-	public ValidatingEMFDatabindingContext(IContextElementProvider elementProvider, Shell shell) {
-		this.elementProvider = elementProvider;
+	public ValidatingEMFDatabindingContext(EObject context, Shell shell) {
+		this.context = context;
 		this.shell = shell;
 	}
 
 	protected IStatus isWriteable() {
-		IFile file = WorkspaceSynchronizer.getFile(elementProvider.getContextObject().eResource());
+		IFile file = WorkspaceSynchronizer.getFile(context.eResource());
 		return FileModificationValidator.getInstance().validateEdit(new IFile[] { file }, shell);
 
 	}

+ 4 - 4
test-plugins/org.yakindu.sct.model.stext.resource.test/src/org/yakindu/sct/model/stext/resource/test/SCTResourceTest.java

@@ -45,7 +45,6 @@ import org.yakindu.sct.model.sgraph.State;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.util.ContextElementAdapter;
-import org.yakindu.sct.model.sgraph.util.ContextElementAdapter.IContextElementProvider;
 import org.yakindu.sct.model.stext.resource.StextResource;
 import org.yakindu.sct.model.stext.stext.EventDefinition;
 import org.yakindu.sct.model.stext.stext.ExitEvent;
@@ -79,11 +78,12 @@ public class SCTResourceTest {
 		Injector injector = STextActivator.getInstance().getInjector(STextActivator.ORG_YAKINDU_SCT_MODEL_STEXT_STEXT);
 		ResourceSet resourceSet = new ResourceSetImpl();
 		res = new StextResource(URI.createURI("test.test"));
-		res.eAdapters().add(new ContextElementAdapter(new IContextElementProvider() {
-			public EObject getContextObject() {
+		res.eAdapters().add(new ContextElementAdapter() {
+			@Override
+			public EObject getElement() {
 				return res.getContents().get(0);
 			}
-		}));
+		});
 		resourceSet.getResources().add(res);
 		injector.injectMembers(res);
 	}