Bug 478063 - Add further customization possibilities to TMD
* allow to influence resource set creation
* Add after method in CreateElementCallback
Change-Id: I93e9272028847f88757862b03bb9f3b66a016f67
Signed-off-by: Johannes Faltermeier <jfaltermeier@eclipsesource.com>
diff --git a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
index e05d59a..41e35a2 100644
--- a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
+++ b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/GenericEditor.java
@@ -256,7 +256,7 @@
@Override
public void createPartControl(Composite parent) {
// Load the resource from the provided input and display the editor
- loadResource();
+ resourceSet = loadResource(getEditorInput());
parent.setBackground(new Color(Display.getCurrent(), 255, 255, 255));
parent.setBackgroundMode(SWT.INHERIT_FORCE);
@@ -328,16 +328,16 @@
}
/**
- * Loads the Resource from the EditorInput and sets the EcoreEditor.resource
- * field.
+ * Creates a resource set and loads all required resources for the editor input.
+ *
+ * @param editorInput the editor input
+ * @return the resource set
*/
- private void loadResource() {
- final FileEditorInput fei = (FileEditorInput) getEditorInput();
-
- resourceSet = ResourceSetHelpers.loadResourceSetWithProxies(
+ protected ResourceSet loadResource(IEditorInput editorInput) {
+ final FileEditorInput fei = (FileEditorInput) editorInput;
+ return ResourceSetHelpers.loadResourceSetWithProxies(
URI.createPlatformResourceURI(fei.getFile().getFullPath().toOSString(), false),
commandStack);
-
}
/*
diff --git a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/InitializeChildCallback.java b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/InitializeChildCallback.java
index 62111fd..b329331 100644
--- a/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/InitializeChildCallback.java
+++ b/bundles/org.eclipse.emfforms.editor/src/org/eclipse/emfforms/spi/editor/InitializeChildCallback.java
@@ -57,4 +57,9 @@
return result == Window.OK;
}
+ @Override
+ public void afterCreateElement(Object newElement) {
+ /* no op */
+ }
+
}
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters
index 2762c2b..e03463c 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/.settings/.api_filters
@@ -7,6 +7,12 @@
<message_argument value="1.7.0"/>
</message_arguments>
</filter>
+ <filter comment="SPI" id="923795461">
+ <message_arguments>
+ <message_argument value="1.9.0"/>
+ <message_argument value="1.8.0"/>
+ </message_arguments>
+ </filter>
</resource>
<resource path="META-INF/MANIFEST.MF" type="org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateChildActionWithAccelerator">
<filter comment="SPI change 1.8.0" id="305324134">
@@ -82,6 +88,12 @@
</filter>
</resource>
<resource path="src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateElementCallback.java" type="org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback">
+ <filter comment="SPI" id="403804204">
+ <message_arguments>
+ <message_argument value="org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback"/>
+ <message_argument value="afterCreateElement(Object)"/>
+ </message_arguments>
+ </filter>
<filter comment="SPI Change 1.9.0" id="403804204">
<message_arguments>
<message_argument value="org.eclipse.emfforms.spi.swt.treemasterdetail.util.CreateElementCallback"/>
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/defaultprovider/DefaultMenuProvider.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/defaultprovider/DefaultMenuProvider.java
index 6be8133..21e9286 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/defaultprovider/DefaultMenuProvider.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/internal/swt/treemasterdetail/defaultprovider/DefaultMenuProvider.java
@@ -56,6 +56,11 @@
public void initElement(EObject parent, EReference reference, EObject newObject) {
/* no op */
}
+
+ @Override
+ public void afterCreateElement(Object newElement) {
+ /* no op */
+ }
};
deleteActionBuilder = new DefaultDeleteActionBuilder();
}
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateChildAction.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateChildAction.java
index 44e68b7..b51537d 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateChildAction.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateChildAction.java
@@ -103,6 +103,9 @@
((Viewer) selectionProvider).refresh();
}
selectionProvider.setSelection(new StructuredSelection(newObject));
+ if (createElementCallback != null) {
+ createElementCallback.afterCreateElement(newObject);
+ }
} else {
// If the callback says "cancel" undo the addCommand.
addCommand.undo();
diff --git a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateElementCallback.java b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateElementCallback.java
index 6e4b81b..c0bf2ad 100644
--- a/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateElementCallback.java
+++ b/bundles/org.eclipse.emfforms.swt.treemasterdetail/src/org/eclipse/emfforms/spi/swt/treemasterdetail/util/CreateElementCallback.java
@@ -42,4 +42,12 @@
* be removed again
*/
boolean beforeCreateElement(Object newElement);
+
+ /**
+ * Gets called after a new element was added to the domain model.
+ *
+ * @param newElement the new Element.
+ * @since 1.9
+ */
+ void afterCreateElement(Object newElement);
}