|
SWT事物
在XWorker中SWT事物定义在ui:local:swt下,SWT事物基本定义了SWT下所有控件,可以在XWorker中通过编辑事物的方法来编写SWT的应用程序。
WEB浏览器的示例
在XWorker系统中SWT的例子很多,因为XWorker平台本身(事物管理器)就是通过SWT事物编写的。
这里就不详细说明如何编辑WEB浏览器了,下面列出一些编辑过程中的截图,以及程序运行的效果等。

Control的编辑表单

Composite的编辑表单

这个是GridData的编辑表单

这个是TabFolder的编辑表单

事件编辑的表单
编辑完毕后,Web浏览器事物使用XML表示大致如下:
<Display name="WebBrowser">
<Shell name="shell" text=""Web Browser"" RESIZE="true">
<FillLayout name="shellFillLayout"/>
<Composite name="mainComposite">
<GridLayout name="shellGridLayout"/>
<Composite name="addressComposite">
<GridData style="FILL_HORIZONTAL" name="addressCompositeGridData"/>
<GridLayout name="addressCompositeGridLayout" numColumns="2"/>
<ToolBar name="buttonToolBar" FLAT="true">
<ToolItem text=""返回"" name="backButton">
<listeners>
<Listener name="commonButtonSelection">
<GroovyAction name="script" throwException="false" code="..."/>
</Listener>
</listeners>
</ToolItem>
<ToolItem text=""前进"" name="forwardButton">
<listeners>
<Listener ref="commonButtonSelection" name="forwardButtonSelection"/>
</listeners>
</ToolItem>
<ToolItem text=""停止"" name="stopButton">
<listeners>
<Listener ref="commonButtonSelection" name="stopButtonSelection"/>
</listeners>
</ToolItem>
<ToolItem text=""刷新"" name="refreshButton">
<listeners>
<Listener ref="commonButtonSelection" name="refreshButtonSelection"/>
</listeners>
</ToolItem>
<ToolItem text=""Go"" name="goButton">
<listeners>
<Listener ref="commonButtonSelection" name="goButtonSelection"/>
</listeners>
</ToolItem>
</ToolBar>
<Text name="addressText" BORDER="true">
<GridData style="FILL_HORIZONTAL" name="addressTextGridData"/>
<listeners>
<Listener name="addressTextDefaultSelection" type="DefaultSelection">
<GroovyAction name="script" throwException="false" code="..."/>
</Listener>
</listeners>
</Text>
</Composite>
<CTabFolder name="mainTabFolder" FLAT="true" BORDER="true">
<GridData style="FILL_BOTH" name="mainTabFolderGridData"/>
<CTabItem text=""blank"" name="firstBrowser" CLOSE="true">
<Browser name="browser">
<GridData style="FILL_BOTH" name="browseGridData"/>
</Browser>
</CTabItem>
<CTabItem text="" "" name="addNewTabItem"/>
<listeners>
<Listener name="mainTabFolderSelection">
<GroovyAction name="script" code="..."/>
</Listener>
</listeners>
</CTabFolder>
<Composite name="statusComposite">
<GridLayout marginHeight="0" name="statusCompositeGridLayout" numColumns="2"/>
<GridData style="FILL_HORIZONTAL" name="statusCompositeGridData"/>
<Label text="" "" name="statusLabel">
<GridData style="FILL_HORIZONTAL" name="statusLabelGridData"/>
</Label>
<ProgressBar SMOOTH="false" name="progressBar" INDETERMINATE="false" BORDER="false"/>
</Composite>
<Code name="Init" throwException="false" code="..."/>
<actions name="scripts">
<GroovyAction name="openUrl" throwException="false" code="..."/>
</actions>
</Composite>
</Shell>
</Display>
以上XML中省略了那些事件的处理代码,Web浏览器运行后截图如下:

通过SWT菜单运行程序

实际运行效果图
|