summaryrefslogtreecommitdiffstats
path: root/rba.tool.editor/src/rba/tool/editor/formatting2/RBAModelFormatter.xtend
blob: 1a79638b49a90a4a16b2c40fb9bf82cbd55b77b5 (plain)
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 * generated by Xtext 2.13.0
 */
package rba.tool.editor.formatting2

import com.google.inject.Inject
import org.eclipse.xtext.formatting2.AbstractFormatter2
import org.eclipse.xtext.formatting2.IFormattableDocument
import rba.core.Content
import rba.core.ContentSet
import rba.core.ContentState
import rba.core.PackagableElement
import rba.core.Package
import rba.core.Scene
import rba.core.State
import rba.tool.editor.rbaEditorModel.TopLevel
import rba.tool.editor.services.RBAModelGrammarAccess
import rba.view.Area
import rba.view.AreaSet
import rba.view.CompositeArea
import rba.view.Display
import rba.view.FixedPositionLayout
import rba.view.HorizontalLayout
import rba.view.PositionContainer
import rba.view.Size
import rba.view.VerticalLayout
import rba.view.ViewContent

class RBAModelFormatter extends AbstractFormatter2 {

	@Inject RBAModelGrammarAccess grammarAccess;

	def dispatch void format(TopLevel topLevel, extension IFormattableDocument document) {
		System.out.println("---------------------------------");
		System.out.println(document.class.simpleName);
		System.out.println("---------------------------------");

		for (Package _package : topLevel.getPackages()) {
			_package.format;
		}
	}

	def dispatch void format(Package _package, extension IFormattableDocument document) {
		for (PackagableElement _packagableElement : _package.packagableelement) {
			_packagableElement.format;
		}
	}

	def dispatch void format(Display _display, extension IFormattableDocument document) {
		if (_display.size !== null) {
			_display.size.format
		}
		if (_display.root !== null) {
			_display.root.format
		}
	}

	def dispatch void format(CompositeArea _compositeArea, extension IFormattableDocument document) {
		if (_compositeArea.layout !== null) {
			_compositeArea.layout.format
		}
	}

	def dispatch void format(FixedPositionLayout _fixedPositionLayout, extension IFormattableDocument document) {
		for (subAreaPosition : _fixedPositionLayout.subAreaPosition) {
			subAreaPosition.format
		}
	}

	def dispatch void format(VerticalLayout _verticalLayout, extension IFormattableDocument document) {
		for (subarea : _verticalLayout.subarea) {
			// TODO -> ('subarea:' '[' (subarea+=[rba::AbstractArea|QualifiedName] ("," subarea+=[rba::AbstractArea|QualifiedName])*)? ']')?
		}
	}

	def dispatch void format(HorizontalLayout _horizontalLayout, extension IFormattableDocument document) {
		for (subarea : _horizontalLayout.subarea) {
			// TODO -> ('subarea:' '[' (subarea+=[rba::AbstractArea|QualifiedName] ("," subarea+=[rba::AbstractArea|QualifiedName])*)? ']')?
		}
	}

	def dispatch void format(PositionContainer _positionContainer, extension IFormattableDocument document) {
		// TODO -> ('areaReference:' area=[rba::AbstractArea|QualifiedName])?
		// TODO -> x & y
	}

	def dispatch void format(ContentSet _contentSet, extension IFormattableDocument document) {
		for (target : _contentSet.target) {
			// TODO -> ('target:' '[' (target+=[rba::AbstractContent|QualifiedName] ("," target+=[rba::AbstractContent|QualifiedName])*)? ']')?
		}
	}

	def dispatch void format(Content _content, extension IFormattableDocument document) {
		for (allocatable : _content.allocatable) {
			// TODO -> ('allocatable:' '[' (allocatable+=[rba::Allocatable|QualifiedName] ("," allocatable+=[rba::Allocatable|QualifiedName])*)? ']')? &
		}
		for (state : _content.states) {
			state.format
		}
		if (_content instanceof ViewContent) {
			for (size : (_content as ViewContent).size) {
				size.format
			}
		}
	}

	def dispatch void format(AreaSet _areaSet, extension IFormattableDocument document) {
		for (target : _areaSet.target) {
			// TODO -> ('target:' '[' (target+=[rba::AbstractArea|QualifiedName] ("," target+=[rba::AbstractArea|QualifiedName])*)? ']')?
		}
	}

	def dispatch void format(Area _area, extension IFormattableDocument document) {
		for (size : _area.size) {
			size.format
		}
	// TODO -> visibility[ref Area]
	// TODO -> zorder[ref Area]
	}

	def dispatch void format(Size _size, extension IFormattableDocument document) {
		// TODO -> width & height
	}

	def dispatch void format(ContentState _contentState, extension IFormattableDocument document) {
		// TODO -> priority[ref ContentState]
	}

	def dispatch void format(Scene _scene, extension IFormattableDocument document) {
	}

}