<?xml version="1.0" encoding="UTF-8"?> | |
<gmfmap:Mapping xmi:version="2.0" | |
xmlns:xmi="http://www.omg.org/XMI" | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" | |
xmlns:gmfgraph="http://www.eclipse.org/gmf/2006/GraphicalDefinition" | |
xmlns:gmfmap="http://www.eclipse.org/gmf/2008/mappings" | |
xmlns:gmftool="http://www.eclipse.org/gmf/2005/ToolDefinition"> | |
<nodes> | |
<containmentFeature | |
href="toe.ecore#//AllHolder/all"/> | |
<ownedChild> | |
<domainMetaElement | |
href="toe.ecore#//Employee"/> | |
<domainSpecialization | |
body="not self.oclIsKindOf(toe::Manager)"/> | |
<labelMappings | |
xsi:type="gmfmap:FeatureLabelMapping"> | |
<diagramLabel | |
href="toe.gmfgraph#Employee_name"/> | |
<features | |
href="toe.ecore#//Employee/name"/> | |
<editableFeatures | |
href="toe.ecore#//Employee/name"/> | |
</labelMappings> | |
<visualEffects | |
oclExpression="self.projects->size()"> | |
<diagramPin | |
xsi:type="gmfgraph:CustomPin" | |
href="toe.gmfgraph#EmployeePinCounter"/> | |
</visualEffects> | |
<visualEffects | |
oclExpression="self.projects->size() <> 0"> | |
<diagramPin | |
xsi:type="gmfgraph:VisiblePin" | |
href="toe.gmfgraph#EmployeePinVisible"/> | |
</visualEffects> | |
<tool | |
xsi:type="gmftool:CreationTool" | |
href="toe.gmftool#//@palette/@tools.0"/> | |
<diagramNode | |
href="toe.gmfgraph#Employee"/> | |
</ownedChild> | |
</nodes> | |
<nodes> | |
<containmentFeature | |
href="toe.ecore#//AllHolder/all"/> | |
<ownedChild> | |
<domainMetaElement | |
href="toe.ecore#//Department"/> | |
<labelMappings | |
xsi:type="gmfmap:FeatureLabelMapping"> | |
<diagramLabel | |
href="toe.gmfgraph#Department_name"/> | |
<features | |
href="toe.ecore#//Department/name"/> | |
<editableFeatures | |
href="toe.ecore#//Department/name"/> | |
</labelMappings> | |
<labelMappings | |
xsi:type="gmfmap:ExpressionLabelMapping" | |
readOnly="true"> | |
<diagramLabel | |
href="toe.gmfgraph#Department_ocl_gmf"/> | |
<viewExpression | |
body="self.employees->iterate(
	e: Employee; sum : Integer = 0 | 
	sum + e.salary
)"/> | |
</labelMappings> | |
<labelMappings | |
xsi:type="gmfmap:ExpressionLabelMapping" | |
readOnly="true"> | |
<diagramLabel | |
href="toe.gmfgraph#Department_ocl_ia"/> | |
<viewExpression | |
body="--IA
self.employees->iterate(
	e: Employee; sum : Integer = 0 | 
	sum + e.salary
)"/> | |
</labelMappings> | |
<visualEffects | |
oclExpression="--IA
let totalSalary : Integer = self.employees->iterate(
e: Employee; sum : Integer = 0 | 
sum + e.salary
) in 
if totalSalary > 10000 
then Tuple {red: Integer = 255, green: Integer = 0, blue: Integer = 0} 
else Tuple {red: Integer = 0, green: Integer = 255, blue: Integer = 0} 
endif"> | |
<diagramPin | |
xsi:type="gmfgraph:ColorPin" | |
href="toe.gmfgraph#DepartmentPinForeground"/> | |
</visualEffects> | |
<tool | |
xsi:type="gmftool:CreationTool" | |
href="toe.gmftool#//@palette/@tools.1"/> | |
<diagramNode | |
href="toe.gmfgraph#Department"/> | |
<children | |
compartment="//@nodes.1/@ownedChild/@compartments.0" | |
referencedChild="//@nodes.0/@ownedChild"> | |
<containmentFeature | |
href="toe.ecore#//Department/employees"/> | |
</children> | |
<children | |
compartment="//@nodes.1/@ownedChild/@compartments.0" | |
referencedChild="//@nodes.1/@ownedChild"> | |
<containmentFeature | |
href="toe.ecore#//Department/subDepartments"/> | |
</children> | |
<compartments | |
children="//@nodes.1/@ownedChild/@children.0 //@nodes.1/@ownedChild/@children.1"> | |
<compartment | |
href="toe.gmfgraph#Department_staff"/> | |
</compartments> | |
</ownedChild> | |
</nodes> | |
<nodes> | |
<containmentFeature | |
href="toe.ecore#//AllHolder/all"/> | |
<ownedChild> | |
<domainMetaElement | |
href="toe.ecore#//Project"/> | |
<labelMappings | |
xsi:type="gmfmap:FeatureLabelMapping"> | |
<diagramLabel | |
href="toe.gmfgraph#Project_name"/> | |
<features | |
href="toe.ecore#//Project/name"/> | |
<editableFeatures | |
href="toe.ecore#//Project/name"/> | |
</labelMappings> | |
<labelMappings | |
xsi:type="gmfmap:ExpressionLabelMapping" | |
readOnly="true"> | |
<diagramLabel | |
href="toe.gmfgraph#Project_ocl_gmf"/> | |
<viewExpression | |
body="if self.departmentWide 
then 
	self.lead.managedDepartment.employees.name
else 
	self.projectTeam.name
endif"/> | |
</labelMappings> | |
<labelMappings | |
xsi:type="gmfmap:ExpressionLabelMapping" | |
readOnly="true"> | |
<diagramLabel | |
href="toe.gmfgraph#Project_ocl_ia"/> | |
<viewExpression | |
body="--IA
if self.departmentWide 
then 
	self.lead.managedDepartment.employees.name
else 
	self.projectTeam.name
endif"/> | |
</labelMappings> | |
<tool | |
xsi:type="gmftool:CreationTool" | |
href="toe.gmftool#//@palette/@tools.2"/> | |
<diagramNode | |
href="toe.gmfgraph#Project"/> | |
</ownedChild> | |
</nodes> | |
<nodes> | |
<containmentFeature | |
href="toe.ecore#//AllHolder/all"/> | |
<ownedChild> | |
<domainMetaElement | |
href="toe.ecore#//Manager"/> | |
<labelMappings | |
xsi:type="gmfmap:FeatureLabelMapping"> | |
<diagramLabel | |
href="toe.gmfgraph#Manager_name"/> | |
<features | |
href="toe.ecore#//Employee/name"/> | |
<editableFeatures | |
href="toe.ecore#//Employee/name"/> | |
</labelMappings> | |
<visualEffects | |
oclExpression="if self.leads->size() = 0 
then Tuple {red: Integer = 0, green: Integer = 0, blue: Integer = 255} 
else Tuple {red: Integer = 255, green: Integer = 255, blue: Integer = 0} 
endif"> | |
<diagramPin | |
xsi:type="gmfgraph:CustomPin" | |
href="toe.gmfgraph#ManagerPinBackgroundRGB"/> | |
</visualEffects> | |
<tool | |
xsi:type="gmftool:CreationTool" | |
href="toe.gmftool#//@palette/@tools.3"/> | |
<diagramNode | |
href="toe.gmfgraph#Manager"/> | |
</ownedChild> | |
</nodes> | |
<links> | |
<tool | |
xsi:type="gmftool:CreationTool" | |
href="toe.gmftool#//@palette/@tools.4"/> | |
<diagramLink | |
href="toe.gmfgraph#ManagesDepartment"/> | |
<linkMetaFeature | |
xsi:type="ecore:EReference" | |
href="toe.ecore#//Manager/managedDepartment"/> | |
</links> | |
<links> | |
<visualEffects | |
oclExpression="if _src.leads->size() > 2
then Tuple {red: Integer = 255, green: Integer = 128, blue: Integer = 0} 
else Tuple {red: Integer = 255, green: Integer =0, blue: Integer = 0} 
endif"> | |
<diagramPin | |
xsi:type="gmfgraph:ColorPin" | |
href="toe.gmfgraph#LeadsProjectConnectionPinForeground"/> | |
</visualEffects> | |
<visualEffects | |
oclExpression="--IA
if _src.leads->size() > 2
then 3
else 1
endif"> | |
<diagramPin | |
xsi:type="gmfgraph:CustomPin" | |
href="toe.gmfgraph#LeadsProjectConnectionPinLineWidth"/> | |
</visualEffects> | |
<tool | |
xsi:type="gmftool:CreationTool" | |
href="toe.gmftool#//@palette/@tools.4"/> | |
<diagramLink | |
href="toe.gmfgraph#LeadsProject"/> | |
<linkMetaFeature | |
xsi:type="ecore:EReference" | |
href="toe.ecore#//Manager/leads"/> | |
</links> | |
<links> | |
<domainMetaElement | |
href="toe.ecore#//Contribution"/> | |
<visualEffects | |
oclExpression="if _src.contributions->size() > _dst.contributions->size()
then Tuple {red: Integer = 0, green: Integer = 255, blue: Integer = 0} 
else Tuple {red: Integer = 0, green: Integer =0, blue: Integer = 255} 
endif"> | |
<diagramPin | |
xsi:type="gmfgraph:ColorPin" | |
href="toe.gmfgraph#ContributionConnectionPinForeground"/> | |
</visualEffects> | |
<containmentFeature | |
href="toe.ecore#//AllHolder/all"/> | |
<tool | |
xsi:type="gmftool:CreationTool" | |
href="toe.gmftool#//@palette/@tools.5"/> | |
<diagramLink | |
href="toe.gmfgraph#Contribution"/> | |
<sourceMetaFeature | |
xsi:type="ecore:EReference" | |
href="toe.ecore#//Contribution/employee"/> | |
<linkMetaFeature | |
xsi:type="ecore:EReference" | |
href="toe.ecore#//Contribution/project"/> | |
</links> | |
<diagram> | |
<diagramCanvas | |
href="toe.gmfgraph#ocl-labels"/> | |
<domainModel | |
href="toe.ecore#/"/> | |
<domainMetaElement | |
href="toe.ecore#//AllHolder"/> | |
<palette | |
href="toe.gmftool#//@palette"/> | |
</diagram> | |
</gmfmap:Mapping> |