<?xml version="1.0" encoding="UTF-8"?>
<rules xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Profile>
		<Import name="Import">
			<Statement>org.eclipse.swt.*</Statement>
			<Statement>org.eclipse.swt.widgets.*</Statement>
			<Statement>org.eclipse.swt.layout.*</Statement>
			<Statement>org.eclipse.swt.graphics.*</Statement>
			<Statement>org.eclipse.swt.custom.*</Statement>
		</Import>
		<DisplayMethod>open</DisplayMethod>
		<ToolKit>SWT</ToolKit>
		<Accessor>
			<Method name="getComponent" returnType="Object">
				<Parameter type="String">name</Parameter>
			</Method>
		</Accessor>
	</Profile>
	<Tag>
		<rule>
			<Screen>
				<!-- define the control mapping -->
				<widget create="false">Class</widget>
				<!-- define the attribute mapping -->
				<attribute>
					<Method name="text" type="String">setText</Method>
					<Method name="name" type="String">setName</Method>
				</attribute>
			</Screen>
		</rule>
		<rule>
			<Window>
				<!-- define the control mapping -->
				<Widget>Shell
					<Constructor>
						<Parameter type="Display">$display</Parameter>
					</Constructor>
				</Widget>
				<!-- define the attribute mapping -->
				<attribute>
					<Method name="name" type="String">setText</Method>
					<Method name="addLayout" set="true">setLayout
						<Parameter type="FillLayout">$Fill</Parameter>
					</Method>
				</attribute>
				<define>
					<Method name="Fill" type="FillLayout"/>
					<Method name="display" type="Display"/>
				</define>
				<!-- define the composition mapping -->
				<Composition>
					<Panel>
						<Constructor>
							<Parameter>$Window</Parameter>
							<Parameter>#SWT.FLAT</Parameter>
						</Constructor>
					</Panel>
					<MenuBar>
						<method name="setMenuBar"/>
					</MenuBar>
					<SplitPane>
						<Constructor>
							<Parameter>$Window</Parameter>
							<Parameter>#SWT.HORIZONTAL  | SWT.BORDER </Parameter>
						</Constructor>
					</SplitPane>
				</Composition>
			</Window>
		</rule>
		<rule>
			<Label>
				<!-- define the control mapping -->
				<!-- tell the ruleEngine to DO NOT DEFINE THIS COMPONENT -->
				<widget create="false">Label</widget>
				<!-- define the attribute mapping -->
				<attribute>
					<Method name="text" type="String">setText</Method>
				</attribute>
			</Label>
		</rule>
		<rule>
			<BoxLayout>
				<!-- define the control mapping -->
				<widget>RowLayout
					<Constructor>
						<Parameter>#SWT.VERTICAL</Parameter>
					</Constructor>
				</widget>
				<!-- define the attribute mapping -->
			</BoxLayout>
		</rule>
		<rule>
			<FlowLayout>
				<!-- define the control mapping -->
				<widget>FillLayout</widget>
				<!-- define the attribute mapping -->
			</FlowLayout>
		</rule>
		<rule>
			<GridLayout>
				<widget>GridLayout	</widget>
				<!-- define the attribute mapping -->
				<attribute>
					<Method name="icolumns" type="int" assignment="true">numColumns</Method>
					<Method name="horizontalSpacing" type="int" assignment="true">horizontalSpacing</Method>
				</attribute>
			</GridLayout>
		</rule>
		<rule>
			<Panel>
				<widget create="false">Composite</widget>
				<composition>
					<Label>
						<Constructor>
							<Parameter>$Panel</Parameter>
							<Parameter>#SWT.FLAT</Parameter>
						</Constructor>
					</Label>
					<Panel>
						<Constructor>
							<Parameter>$Parent</Parameter>
							<Parameter>#SWT.FLAT</Parameter>
						</Constructor>
					</Panel>
					<GridLayout>
						<method name="setLayout"/>
					</GridLayout>
					<FlowLayout>
						<method name="setLayout"/>
					</FlowLayout>
					<BoxLayout>
						<method name="setLayout"/>
					</BoxLayout>
					<TextBox type="text">
						<Constructor>
							<Parameter>$Panel</Parameter>
							<Parameter>#SWT.BORDER </Parameter>
						</Constructor>
					</TextBox>
					<Button>
						<Constructor>
							<Parameter>$Panel</Parameter>
							<Parameter>#SWT.PUSH</Parameter>
						</Constructor>
					</Button>
					<Group>
						<Constructor>
							<Parameter>$Panel</Parameter>
							<Parameter>#SWT.BORDER</Parameter>
						</Constructor>
					</Group>
					<CheckBox>
						<Constructor>
							<Parameter>$Panel</Parameter>
							<Parameter>#SWT.CHECK</Parameter>
						</Constructor>
					</CheckBox>
					<List>
						<Constructor>
							<Parameter>$Panel</Parameter>
							<Parameter>#SWT.MULTI | SWT.V_SCROLL | SWT.BORDER</Parameter>
						</Constructor>
					</List>
					<ComboBox>
						<Constructor>
							<parameter>$Parent</parameter>
							<parameter>#SWT.READ_ONLY</parameter>
						</Constructor>
					</ComboBox>
					<Slider>
						<Constructor>
							<parameter>$Panel</parameter>
							<parameter>#SWT.HORIZONTAL</parameter>
						</Constructor>
					</Slider>
					<Scale>
						<Constructor>
							<parameter>$Panel</parameter>
							<parameter>#SWT.HORIZONTAL</parameter>
						</Constructor>
					</Scale>
					<ProgressBar>
						<Constructor>
							<parameter>$Panel</parameter>
							<parameter>#SWT.HORIZONTAL</parameter>
						</Constructor>
					</ProgressBar>
					<Image>
						<Constructor>
							<parameter>$Panel</parameter>
							<parameter>#SWT.FLAT</parameter>
						</Constructor>
					</Image>
					<Separator>
						<Constructor>
							<parameter>$Panel</parameter>
							<parameter>#SWT.SEPARATOR | SWT.HORIZONTAL</parameter>
						</Constructor>
					</Separator>
					<Tree>
						<Constructor>
							<parameter>$Panel</parameter>
							<parameter>#SWT.MULTI | SWT.BORDER</parameter>
						</Constructor>
					</Tree>
				</composition>
			</Panel>
		</rule>
		<rule>
			<MenuBar>
				<widget>Menu
				<Constructor>
						<Parameter>$Parent</Parameter>
						<Parameter>#SWT.BAR</Parameter>
					</Constructor>
				</widget>
				<composition>
					<Menu>
						<Constructor>
							<Parameter>$MenuBar</Parameter>
							<Parameter>#SWT.CASCADE</Parameter>
						</Constructor>
					</Menu>
				</composition>
			</MenuBar>
		</rule>
		<rule>
			<Menu>
				<widget create="false">MenuItem</widget>
				<attribute>
					<Method name="text" type="String">setText</Method>
					<Method name="addMenu" set="true">setMenu
						<Parameter type="Menu">$MenuObject</Parameter>
					</Method>
				</attribute>
				<define>
					<Method name="MenuObject" order="post" type="Menu">
						<Parameter>$TopContainer</Parameter>
						<Parameter>#SWT.DROP_DOWN</Parameter>
					</Method>
				</define>
				<composition>
					<MenuItem>
						<Constructor>
							<Parameter>$Parent</Parameter>
							<Parameter>#SWT.PUSH</Parameter>
						</Constructor>
					</MenuItem>
					<Menu>
						<Constructor>
							<Parameter>$Parent</Parameter>
							<Parameter>#SWT.CASCADE</Parameter>
						</Constructor>
					</Menu>
				</composition>
			</Menu>
		</rule>
		<rule>
			<MenuItem>
				<widget create="false"> MenuItem </widget>
				<!-- define the attribute mapping -->
				<attribute>
					<Method name="text" type="String">setText</Method>
				</attribute>
				<!-- define the composition mapping -->
			</MenuItem>
		</rule>
		<rule>
			<TextBox type="text">
				<widget create="false">Text</widget>
				<attribute>
					<Method name="text" type="String">setText</Method>
					<Method name="bounds">setBounds
						<Parameter type="int">$leftx</Parameter>
						<Parameter type="int">$lefty</Parameter>
						<Parameter type="int">$rightx</Parameter>
						<Parameter type="int">$righty</Parameter>
					</Method>
				</attribute>
			</TextBox>
		</rule>
		<rule>
			<Button>
				<widget create="false">Button</widget>
				<attribute>
					<Method name="text" type="String">setText</Method>
				</attribute>
			</Button>
		</rule>
		<rule>
			<Group>
				<widget create="false">Group</widget>
				<attribute>
					<Method name="addLayout" set="true">setLayout
						<Parameter type="RowLayout">$RowGroupLayout</Parameter>
					</Method>
					<Method name="text" type="String">setText</Method>
				</attribute>
				<define>
					<Method name="RowGroupLayout" type="RowLayout"/>
				</define>
				<composition>
					<checkbox>
						<Constructor>
							<parameter>$Group</parameter>
							<parameter>#SWT.CHECK</parameter>
						</Constructor>
					</checkbox>
					<radiobutton>
						<Constructor>
							<parameter>$Group</parameter>
							<parameter>#SWT.RADIO</parameter>
						</Constructor>
					</radiobutton>
				</composition>
			</Group>
		</rule>
		<rule>
			<CheckBox>
				<widget create="false">Button</widget>
				<attribute>
					<Method name="text" type="String">setText</Method>
				</attribute>
			</CheckBox>
		</rule>
		<rule>
			<RadioButton>
				<widget create="false">Button</widget>
				<attribute>
					<Method name="text" type="String">setText</Method>
				</attribute>
			</RadioButton>
		</rule>
		<rule>
			<List>
				<widget create="false">List</widget>
				<composition>
					<ListItem>
						<method name="add" type="String"/>
					</ListItem>
				</composition>
			</List>
		</rule>
		<rule>
			<ListItem>
				<widget create="false">List</widget>
			</ListItem>
		</rule>
		<rule>
			<ComboBox>
				<widget create="false">Combo</widget>
				<composition>
					<item>
						<Method name="add" type="String"/>
					</item>
				</composition>
			</ComboBox>
		</rule>
		<rule>
			<Item>
				<widget create="false">Combo</widget>
			</Item>
		</rule>
		<rule>
			<TabbedPane>
				<widget>TabFolder
					<Constructor>
						<Parameter>$TopContainer</Parameter>
						<Parameter>#SWT.NONE</Parameter>
					</Constructor>
				</widget>
				<composition>
					<Tabs>
						<Constructor>
							<Parameter>$TabbedPane</Parameter>
							<Parameter>#SWT.NONE</Parameter>
						</Constructor>
					</Tabs>
				</composition>
			</TabbedPane>
		</rule>
		<rule>
			<Tabs>
				<widget create="false">Composite</widget>
				<define>
					<Method name="TabItemName" type="TabItem">
						<Parameter rule="TabbedPane">$Parent</Parameter>
						<Parameter>#SWT.NONE</Parameter>
						<attribute>
							<Method name="ContainerText">setControl
								<Parameter type="Composite">$Tabs</Parameter>
							</Method>
							<Method name="text" type="String">setText</Method>
						</attribute>
					</Method>
				</define>
				<composition>
					<Label>
						<Constructor>
							<Parameter>$Tabs</Parameter>
							<Parameter>#SWT.FLAT</Parameter>
						</Constructor>
					</Label>
					<Panel>
						<Constructor>
							<Parameter>$TabbedPane</Parameter>
							<Parameter>#SWT.FLAT</Parameter>
						</Constructor>
					</Panel>
					<GridLayout>
						<method name="setLayout"/>
					</GridLayout>
					<FlowLayout>
						<method name="setLayout"/>
					</FlowLayout>
					<BoxLayout>
						<method name="setLayout"/>
					</BoxLayout>
					<TextBox type="text">
						<Constructor>
							<Parameter>$Tabs</Parameter>
							<Parameter>#SWT.BORDER </Parameter>
						</Constructor>
					</TextBox>
					<Button>
						<Constructor>
							<Parameter>$Tabs</Parameter>
							<Parameter>#SWT.PUSH</Parameter>
						</Constructor>
					</Button>
					<Group>
						<Constructor>
							<Parameter>$Tabs</Parameter>
							<Parameter>#SWT.BORDER</Parameter>
						</Constructor>
					</Group>
					<CheckBox>
						<Constructor>
							<Parameter>$Tabs</Parameter>
							<Parameter>#SWT.CHECK</Parameter>
						</Constructor>
					</CheckBox>
					<List>
						<Constructor>
							<Parameter>$Tabs</Parameter>
							<Parameter>#SWT.MULTI | SWT.V_SCROLL | SWT.BORDER</Parameter>
						</Constructor>
					</List>
					<ComboBox>
						<Constructor>
							<parameter>$Tabs</parameter>
							<parameter>#SWT.READ_ONLY</parameter>
						</Constructor>
					</ComboBox>
					<Slider>
						<Constructor>
							<parameter>$Tabs</parameter>
							<parameter>#SWT.HORIZONTAL</parameter>
						</Constructor>
					</Slider>
					<Scale>
						<Constructor>
							<parameter>$Tabs</parameter>
							<parameter>#SWT.HORIZONTAL</parameter>
						</Constructor>
					</Scale>
					<ProgressBar>
						<Constructor>
							<parameter>$Tabs</parameter>
							<parameter>#SWT.HORIZONTAL</parameter>
						</Constructor>
					</ProgressBar>
				</composition>
			</Tabs>
		</rule>
		<rule>
			<Slider>
				<widget create="false">Scale</widget>
				<attribute>
					<Method name="maximum" type="int">setMaximum</Method>
					<Method name="minimum" type="int">setMinimum</Method>
					<Method name="value" type="int">setSelection</Method>
				</attribute>
			</Slider>
		</rule>
		<rule>
			<Scale>
				<widget create="false">Slider</widget>
				<attribute>
					<Method name="maximum" type="int">setMaximum</Method>
					<Method name="minimum" type="int">setMinimum</Method>
					<Method name="value" type="int">setSelection</Method>
				</attribute>
			</Scale>
		</rule>
		<rule>
			<ProgressBar>
				<widget create="false">ProgressBar</widget>
				<attribute>
					<Method name="maximum" type="int">setMaximum</Method>
					<Method name="minimum" type="int">setMinimum</Method>
					<Method name="value" type="int">setSelection</Method>
				</attribute>
			</ProgressBar>
		</rule>
		<rule>
			<Image>
				<widget create="false">Button</widget>
				<define>
					<Method name="imageIcon" type="Image">
						<Parameter rule="Window">$display</Parameter>
						<Parameter type="String">$imagesrc</Parameter>
					</Method>
				</define>
				<attribute>
					<Method name="myimage" type="Button" set="true">setImage
						<Parameter>$imageIcon</Parameter>
					</Method>
				</attribute>
			</Image>
		</rule>
		<rule>
			<Separator>
				<widget create="false">Label</widget>
			</Separator>
		</rule>
		<rule>
			<Tree>
				<widget create="false">Tree</widget>
				<attribute>
					<Method name="text" type="String">setText</Method>
				</attribute>
				<composition>
					<Node>
						<Constructor>
							<Parameter>$Parent</Parameter>
							<Parameter>#SWT.NONE</Parameter>
						</Constructor>
					</Node>
				</composition>
			</Tree>
		</rule>
		<rule>
			<Node>
				<widget create="false">TreeItem</widget>
				<attribute>
					<Method name="text" type="String">setText</Method>
				</attribute>
				<composition>
					<Node>
						<Constructor>
							<Parameter>$Node</Parameter>
							<Parameter>#SWT.NONE</Parameter>
						</Constructor>
					</Node>
				</composition>
			</Node>
		</rule>
		<rule>
			<SplitPane>
				<widget create="false">SashForm</widget>
				<define>
					<Method name="fillPanelLayout" type="FillLayout"/>
				</define>
				<attribute>
					<Method name="addLayout" set="true">setLayout
						<Parameter type="FillLayout">$fillPanelLayout</Parameter>
					</Method>
				</attribute>
				<Composition>
					<Panel name="left">
						<Constructor>
							<Parameter>$Parent</Parameter>
							<Parameter>#SWT.FLAT</Parameter>
						</Constructor>
					</Panel>
					<Panel name="right">
						<Constructor>
							<Parameter>$Parent</Parameter>
							<Parameter>#SWT.FLAT</Parameter>
						</Constructor>
					</Panel>
				</Composition>
			</SplitPane>
		</rule>
	</Tag>
</rules>
