diff options
author | cbrun | 2017-03-13 15:08:37 +0000 |
---|---|---|
committer | cbrun | 2017-03-13 15:08:37 +0000 |
commit | d38c3fec88408482de8c95420f23a74e834935a5 (patch) | |
tree | c5511c4eecd5e4cb6aa6822f2eba75b1cc001aeb | |
parent | 130576bbdf60f681ece53609598c8d6c8226d4da (diff) | |
download | org.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
Bug: 428350
Change-Id: I5dfc5b0754512a4ae37100997b69da6368b25e95
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) <> 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="<html>
<head>
</head>
<body>
<p>A tabular editor (spreadsheet-like) of the entities in an Ecore model.</p>
<br>
<img src="/icons/full/wizban/classes.png"/>
</body>
</html>


" 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 Binary files differnew file mode 100644 index 0000000..9d49d4c --- /dev/null +++ b/org.eclipse.emf.ecoretools.design/icons/full/obj16/empty.gif 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; + } + } |