Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 95dfb1644819f723bbae0d6d5d04a4c96ac4fbdc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*******************************************************************************
 * Copyright (c) 2006, 2020 Borland Software Corporation, CEA LIST, Artal and others
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/ 
 * 
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors: 
 *    Artem Tikhomirov (Borland) - initial API and implementation
 *    Michael Golubev (Montages) - #386838 - migrate to Xtend2
 *    Aurelien Didier (ARTAL) - aurelien.didier51@gmail.com - Bug 569174
 *****************************************************************************/
package gmfgraph.attr

import com.google.inject.Inject
import gmfgraph.MapMode
import org.eclipse.papyrus.gmf.gmfgraph.Point
import org.eclipse.papyrus.gmf.gmfgraph.PolygonDecoration
import org.eclipse.papyrus.gmf.gmfgraph.Polyline
import org.eclipse.papyrus.gmf.gmfgraph.PolylineDecoration

@com.google.inject.Singleton class Decoration {
	@Inject Figure xptFigure;
	@Inject MapMode xptMapMode;
	@Inject Shape xptShape;

	def dispatch polylineAttrs(PolylineDecoration it, String figureVarName) '''
		«xptShape.shapeAttrs(it, figureVarName)»
		«xptFigure.figureAttrs(it, figureVarName)»
		«templatePoints(it, figureVarName)»
		«scale(it, figureVarName)»
	'''

	def dispatch polylineAttrs(PolygonDecoration it, String figureVarName) '''
		«xptShape.shapeAttrs(it, figureVarName)»
		«xptFigure.figureAttrs(it, figureVarName)»
		«templatePoints(it, figureVarName)»
		«scale(it, figureVarName)»
	'''

	def templatePoints(Polyline it, String figureVarName) '''
		«IF !template.empty»
			org.eclipse.draw2d.geometry.PointList pl = new org.eclipse.draw2d.geometry.PointList();
			«FOR p : it.template»
				«templatePoint(p, 'pl')»
			«ENDFOR»
			«figureVarName».setTemplate(pl);
		«ENDIF»
	'''

	def templatePoint(Point it, String pointListVarName) '''
		«pointListVarName».addPoint(«xptMapMode.mapMode(it)»);
	'''

	def dispatch scale(PolylineDecoration it, String figureVarName) '''
		«IF !template.empty»
			«figureVarName».setScale(«xptMapMode.mapMode(7)», «xptMapMode.mapMode(3)»);
		«ENDIF»
	'''

	def dispatch scale(PolygonDecoration it, String figureVarName) '''
		«IF !template.empty»
			«figureVarName».setScale(«xptMapMode.mapMode(7)», «xptMapMode.mapMode(3)»);
		«ENDIF»
	'''

}

Back to the top