Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbrun2017-03-13 15:08:37 +0000
committercbrun2017-03-13 15:08:37 +0000
commitd38c3fec88408482de8c95420f23a74e834935a5 (patch)
treec5511c4eecd5e4cb6aa6822f2eba75b1cc001aeb
parent130576bbdf60f681ece53609598c8d6c8226d4da (diff)
downloadorg.eclipse.ecoretools-d38c3fec88408482de8c95420f23a74e834935a5.tar.gz
org.eclipse.ecoretools-d38c3fec88408482de8c95420f23a74e834935a5.tar.xz
org.eclipse.ecoretools-d38c3fec88408482de8c95420f23a74e834935a5.zip
[428350] CD: Add a layer changing the EClass icon to the instance icon
-rw-r--r--org.eclipse.emf.ecoretools.design/description/ecore.odesign7
-rw-r--r--org.eclipse.emf.ecoretools.design/icons/full/obj16/empty.gifbin0 -> 55 bytes
-rw-r--r--org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java19
3 files changed, 25 insertions, 1 deletions
diff --git a/org.eclipse.emf.ecoretools.design/description/ecore.odesign b/org.eclipse.emf.ecoretools.design/description/ecore.odesign
index 738bd22..197eb01 100644
--- a/org.eclipse.emf.ecoretools.design/description/ecore.odesign
+++ b/org.eclipse.emf.ecoretools.design/description/ecore.odesign
@@ -1052,6 +1052,13 @@
</conditionnalStyles>
</containerMappings>
</additionalLayers>
+ <additionalLayers name="Icons Preview" icon="/org.eclipse.sirius.ui/icons/full/others/image.gif">
+ <customization>
+ <vsmElementCustomizations xsi:type="description:VSMElementCustomization" predicateExpression="aql:self.oclIsKindOf(ecore::EClass) and self.eInverse(genmodel::GenClass) &lt;> null">
+ <featureCustomizations xsi:type="description:EAttributeCustomization" appliedOn="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.0/@style //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Related%20EClasses']/@containerMappings[name='EC%20External%20EClasses']/@conditionnalStyles.1/@style //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Related%20EClasses']/@containerMappings[name='EC%20External%20EClasses']/@conditionnalStyles.0/@style //@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Related%20EClasses']/@containerMappings[name='EC%20External%20EClasses']/@style" attributeName="iconPath" value="aql:self.eInverse(genmodel::GenClass).getEClassItemIconPath()->first()"/>
+ </vsmElementCustomizations>
+ </customization>
+ </additionalLayers>
</ownedRepresentations>
<ownedRepresentations xsi:type="description_2:EditionTableDescription" documentation="&lt;html>&#xA;&lt;head>&#xA;&lt;/head>&#xA;&lt;body>&#xA;&lt;p>A tabular editor (spreadsheet-like) of the entities in an Ecore model.&lt;/p>&#xA;&lt;br>&#xA;&lt;img src=&quot;/icons/full/wizban/classes.png&quot;/>&#xA;&lt;/body>&#xA;&lt;/html>&#xA;&#xA;&#xA;" endUserDocumentation="A tabular editor (spreadsheet-like) of the entities in an Ecore model." name="Classes" label="Classes in a spreadsheet" titleExpression="aql:self.name + ' class table'" domainClass="ecore.EPackage">
<ownedLineMappings name="Classes lines" reusedInMappings="//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Classes']/@ownedLineMappings[name='Package']" domainClass="ecore.EClass" semanticCandidatesExpression="feature:eContents">
diff --git a/org.eclipse.emf.ecoretools.design/icons/full/obj16/empty.gif b/org.eclipse.emf.ecoretools.design/icons/full/obj16/empty.gif
new file mode 100644
index 0000000..9d49d4c
--- /dev/null
+++ b/org.eclipse.emf.ecoretools.design/icons/full/obj16/empty.gif
Binary files differ
diff --git a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
index c64f29b..821606b 100644
--- a/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
+++ b/org.eclipse.emf.ecoretools.design/src/org/eclipse/emf/ecoretools/design/service/DesignServices.java
@@ -14,7 +14,6 @@ package org.eclipse.emf.ecoretools.design.service;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
-import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -22,9 +21,14 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
import org.eclipse.emf.codegen.ecore.genmodel.GenDelegationKind;
import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
+import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.URI;
@@ -49,6 +53,7 @@ import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.URIConverter;
import org.eclipse.emf.ecore.util.Diagnostician;
import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.EMFEditPlugin;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
@@ -982,4 +987,16 @@ public class DesignServices extends EReferenceServices {
return cur;
}
+ public String getEClassItemIconPath(GenClass cur) throws IOException {
+ String r = "/org.eclipse.emf.ecoretools.design/icons/full/obj16/empty.gif";
+ if (cur != null && EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
+ String icon = cur.getItemIconFileName();
+ IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(icon));
+ if (f.exists() && f.isAccessible()) {
+ r = icon;
+ }
+ }
+ return r;
+ }
+
}

Back to the top