“XML应用程序”的演示程序

 

基于之前讨论的帖子,做了一个演示。大家看看如何?

 

本程序是个安装程序,里面包含了OSGi运行环境、SWT相关Bundles和一个演示文件 test.xmla,安装之后它会自动创建到桌面上,不过有个问题就是,在某些中文环境下,如果路径包含中文可能会找不到文件,例如:

理想情况 
C:\Documents and Settings\Administrator\桌面\test.xmla
实际情况 
C:\Documents and Settings\Administrator\×???\test.xmla


 


 

尝试转换了字符编码也不好用,目前尚不清楚如何解决。折中的解决办法就是把 test.xmla 文件放到不包含中文路径的目录下此演示程序需要Java运行环境1.6及以上版本。

 

演示文件中包含了:

 

1. SWT部件生成,演示namespace和bundles关联。

2. SWT布局处理,演示不同的bundles之间通过namespace可以互相处理对方的对象。

3. SWT事件处理,演示可以通过fragment bundle来注入事件,并在XML中使用(TestEvent)。

4. 脚本事件处理,演示直接在XML中编写脚本以处理SWT部件所产生的事件。

<?xml version="1.0" encoding="utf-8"?>
<Shell 
  xmlns="com.cmspad.xmla.swt"
  xmlns:t="com.cmspad.osgi"
  xmlns:l="com.cmspad.xmla.swt.layout" 
  xmlns:e="com.cmspad.xmla.swt.event" 
  t:id="hello" text="XML Application" style="DIALOG_TRIM,MAX,MIN" size="300,200" l:layout="grid" l:numColumns="3" defaultButton="aButton">
<!-- 载入 com.cmspad.xmla.swt.events.TestEvent 事件 -->
<e:event e:class="TestEvent"/>
<button text="Button 1"/>
<!-- 触发 TestEvent.buttonSelection 方法 -->
<button text="Button 2" e:selection="buttonSelection"/>
<button t:id="aButton" text="Button 3" l:horizontalAlignment="FILL" l:grabExcessHorizontalSpace="yes"/>
<button text="Button 4" e:selection="hello.text='Button 4 clicked';"/>
<!-- 调用下方脚本中的 f 函数 -->
<button e:Selection="f">Button 5</button>
<button text="Button 6" l:horizontalAlignment="FILL" l:grabExcessHorizontalSpace="yes"/>
<t:script>
function f(e){
 var kakakaka = 'HOHO';
 hello.text = "Function invoked:" + kakakaka;
}
</t:script>
</Shell>

 

20090927: 默认的 main(String[] args) 参数是通过ISO-8859-1编码的,所以在传递中文名称时会出现乱码,经过改进,删除线部分的问题已经解决,附件已重新上传

你可能感兴趣的:(java,xml,应用服务器,swing,osgi)