`
yipsilon
  • 浏览: 244686 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

“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编码的,所以在传递中文名称时会出现乱码,经过改进,删除线部分的问题已经解决,附件已重新上传

分享到:
评论
11 楼 yipsilon 2009-09-29  
pufan 写道
需求,有求则有应,市场决定一切。

html(flex,javaFX)的市场定位很明确,满足互联网浏览的用户需要。

java(Swing,swt)的定位也很明确,满足使用桌面程序的用户需要。

你的想法的用户群是那些人呢?又有多少?目前来看,在以上两个领域挑战竞争对手难度不是一般的大,个人对此项目的前景亦不看好,除非你能找到其他蓝海领域。

其实反过来看,为什么非要是挑战,而不能是增强呢?

想要看的高,不需要长得高,踩在他人的肩膀上多好。


侠义上来讲,问题就出在没有中间市场,例如会html的人想处理一些数据然后保存到文件中,在浏览器上做显然是不可能的。

广义上来讲,脚本语言能做什么此程序就能干什么,不是么?既然JVM现在非常支持将其他脚本嵌入到java中,兄台怎么能说出是挑战而非增强的话呢(引用的粗体文字)?难道是我说的?呵呵。

市场是由应用决定的,而不是平台决定的,平台再好而没有在上面的应用,那也是没市场的。现在研究会有多少人用没有意义,如果有一些非常棒的Bundles应用,那相信会有很多人会去用的。
10 楼 pufan 2009-09-29  
yipsilon 写道
pufan 写道
yipsilon 写道
pufan 写道
代码全在XML里?那Java的强类型OOP优势岂不完全丧失,IDE的编译检查、重构、调试等等岂不也荡然无存了?

既然是平台环境,那能带给程序员的好处是什么?比java(eclipse)的平台环境又有什么优势?

找个跟本想法类似的技术,那非HTML莫属,Java端只是解释器和插件实现,或许以后其他语言中也有OSGi技术了,也可以用其他语言来实现,所以这跟Java没有关系的。

调试问题之前也说过了,只要解释器做得比较完美,那调试跟踪是不成问题的。

这个想法目前我所认为直接带来的好处就是降低了学习门槛和实现快速开发能力,最起码可以快速构建简单的应用程序,或者程序界面原型。


姑且认为解释器、开发环境都已成熟,可以与eclipse相媲美了。

那么我们再看:

学习门槛有降低吗?底层用java(swing)的话是不是还得学习java(swing),另外还得学习XML的相关配置。

复用是快速开发的不二法则,配置放到哪里和快速开发关系不大,最终的代码复用岂不还是Java类。至于配置简单,我同样可以基于java class写一个脚手架,配置一样简单,同时还有ide的天生支持。

简单应用程序没有说服力,毕竟我们要做的绝不是example。那么这个开发环境驾驭复杂应用的能力又如何?

还是拿html来说明问题吧。

你应该这么比,如果实现一个Java和HTML都能做出来的界面(例如一个界面里只有一个按钮,点击后弹出对话框),用HTML快还是用Java快呢?

快速开发有两个实际过程:

第一个是构建过程,也就是说从头写代码,如果html和java都用设计器来说,效率是不差上下的,但如果是写代码,网页设计人员只需要懂得html的知识即可,而java开发人员则不仅仅需要懂得java语法,还要学会UI库,例如swing或者swt,学习门槛高了。

第二个是调整过程,也就是在原来的基础上对界面细节进行修改,这样的话,HTML与Java的开发效率就明显了,HTML只需要在文本文件里修改几项就可以搞定,而java源代码改完后,还需要重新编译,打包运行,如果想半自动化搞,还需要打开IDE。

这两个过程中,可以看出HTML和Java的开发效率差别了。这其实也是众多脚本的优势所在,只是XML语法相比其他脚本语言的学习门槛比较低,更何况也已经被大部分人接受了(在web上的html、xhtml都是其近亲)。

我认为做一个东西,要从简单的开始,哪怕最开始只是一个空白的界面,只要能运行起来,就会有动力去继续开发。当前兄台的说法,就好比拿Java 1.0版跟1.6版相比一样,从1.0到1.6演变势必要有个过程。更何况,我一直都在强调目前只是一个想法,连内部开发版都不是,不要这么较真嘛,呵呵。


需求,有求则有应,市场决定一切。

html(flex,javaFX)的市场定位很明确,满足互联网浏览的用户需要。

java(Swing,swt)的定位也很明确,满足使用桌面程序的用户需要。

你的想法的用户群是那些人呢?又有多少?目前来看,在以上两个领域挑战竞争对手难度不是一般的大,个人对此项目的前景亦不看好,除非你能找到其他蓝海领域。

其实反过来看,为什么非要是挑战,而不能是增强呢?

想要看的高,不需要长得高,踩在他人的肩膀上多好。

9 楼 yipsilon 2009-09-29  
pufan 写道
yipsilon 写道
pufan 写道
代码全在XML里?那Java的强类型OOP优势岂不完全丧失,IDE的编译检查、重构、调试等等岂不也荡然无存了?

既然是平台环境,那能带给程序员的好处是什么?比java(eclipse)的平台环境又有什么优势?

找个跟本想法类似的技术,那非HTML莫属,Java端只是解释器和插件实现,或许以后其他语言中也有OSGi技术了,也可以用其他语言来实现,所以这跟Java没有关系的。

调试问题之前也说过了,只要解释器做得比较完美,那调试跟踪是不成问题的。

这个想法目前我所认为直接带来的好处就是降低了学习门槛和实现快速开发能力,最起码可以快速构建简单的应用程序,或者程序界面原型。


姑且认为解释器、开发环境都已成熟,可以与eclipse相媲美了。

那么我们再看:

学习门槛有降低吗?底层用java(swing)的话是不是还得学习java(swing),另外还得学习XML的相关配置。

复用是快速开发的不二法则,配置放到哪里和快速开发关系不大,最终的代码复用岂不还是Java类。至于配置简单,我同样可以基于java class写一个脚手架,配置一样简单,同时还有ide的天生支持。

简单应用程序没有说服力,毕竟我们要做的绝不是example。那么这个开发环境驾驭复杂应用的能力又如何?

还是拿html来说明问题吧。

你应该这么比,如果实现一个Java和HTML都能做出来的界面(例如一个界面里只有一个按钮,点击后弹出对话框),用HTML快还是用Java快呢?

快速开发有两个实际过程:

第一个是构建过程,也就是说从头写代码,如果html和java都用设计器来说,效率是不差上下的,但如果是写代码,网页设计人员只需要懂得html的知识即可,而java开发人员则不仅仅需要懂得java语法,还要学会UI库,例如swing或者swt,学习门槛高了。

第二个是调整过程,也就是在原来的基础上对界面细节进行修改,这样的话,HTML与Java的开发效率就明显了,HTML只需要在文本文件里修改几项就可以搞定,而java源代码改完后,还需要重新编译,打包运行,如果想半自动化搞,还需要打开IDE。

这两个过程中,可以看出HTML和Java的开发效率差别了。这其实也是众多脚本的优势所在,只是XML语法相比其他脚本语言的学习门槛比较低,更何况也已经被大部分人接受了(在web上的html、xhtml都是其近亲)。

我认为做一个东西,要从简单的开始,哪怕最开始只是一个空白的界面,只要能运行起来,就会有动力去继续开发。当前兄台的说法,就好比拿Java 1.0版跟1.6版相比一样,从1.0到1.6演变势必要有个过程。更何况,我一直都在强调目前只是一个想法,连内部开发版都不是,不要这么较真嘛,呵呵。
8 楼 pufan 2009-09-29  
yipsilon 写道
pufan 写道
代码全在XML里?那Java的强类型OOP优势岂不完全丧失,IDE的编译检查、重构、调试等等岂不也荡然无存了?

既然是平台环境,那能带给程序员的好处是什么?比java(eclipse)的平台环境又有什么优势?

找个跟本想法类似的技术,那非HTML莫属,Java端只是解释器和插件实现,或许以后其他语言中也有OSGi技术了,也可以用其他语言来实现,所以这跟Java没有关系的。

调试问题之前也说过了,只要解释器做得比较完美,那调试跟踪是不成问题的。

这个想法目前我所认为直接带来的好处就是降低了学习门槛和实现快速开发能力,最起码可以快速构建简单的应用程序,或者程序界面原型。


姑且认为解释器、开发环境都已成熟,可以与eclipse相媲美了。

那么我们再看:

学习门槛有降低吗?底层用java(swing)的话是不是还得学习java(swing),另外还得学习XML的相关配置。

复用是快速开发的不二法则,配置放到哪里和快速开发关系不大,最终的代码复用岂不还是Java类。至于配置简单,我同样可以基于java class写一个脚手架,配置一样简单,同时还有ide的天生支持。

简单应用程序没有说服力,毕竟我们要做的绝不是example。那么这个开发环境驾驭复杂应用的能力又如何?
7 楼 yipsilon 2009-09-29  
pufan 写道
代码全在XML里?那Java的强类型OOP优势岂不完全丧失,IDE的编译检查、重构、调试等等岂不也荡然无存了?

既然是平台环境,那能带给程序员的好处是什么?比java(eclipse)的平台环境又有什么优势?

找个跟本想法类似的技术,那非HTML莫属,Java端只是解释器和插件实现,或许以后其他语言中也有OSGi技术了,也可以用其他语言来实现,所以这跟Java没有关系的。

调试问题之前也说过了,只要解释器做得比较完美,那调试跟踪是不成问题的。

这个想法目前我所认为直接带来的好处就是降低了学习门槛和实现快速开发能力,最起码可以快速构建简单的应用程序,或者程序界面原型。
6 楼 pufan 2009-09-29  
代码全在XML里?那Java的强类型OOP优势岂不完全丧失,IDE的编译检查、重构、调试等等岂不也荡然无存了?

既然是平台环境,那能带给程序员的好处是什么?比java(eclipse)的平台环境又有什么优势?
5 楼 yipsilon 2009-09-28  
solonote 写道
这么一说就完全明白了,确实拿UI举例有一些误导,在加上取名XML应用程序作为噱头(玩笑:)
OSGI,遇到使用OSGI的场合不太多,曾经做过一个C#项目,我们模仿OSGI,做了多个Bundle,这些Bundle是进程隔离的,中间有一个功能非常简单的核心Bundle负责检查其他Bundle的健康状况。这个系统生命力强悍,一个Bundle挂了马上由核心的Bundle重启,而核心足够简单,不容易挂掉。
如果用OSGI做产品的话,确实你的想法很不错。
OSGI,不知道下次用到你会是什么时候......

其实取名为“XML应用程序”不是噱头,就像之前的标题说的那样“OSGi + XML = XML应用程序”,它包含了OSGi,这个OSGi的含义也有两种,一种是内置的XML解释器,就是运行环境,另一种是各种应用类Bundles,就是类库,而XML则是程序代码。这么类比的话用“运行环境 + 类库 + 代码 = 应用程序”来解释,是很正常不过的事情吧。

就像之前的 SWT-XUI 的例子,难道用XML写出来的 Windows 记事本程序不是应用程序么?为什么就不能叫“XML应用程序”呢?呵呵....
4 楼 solonote 2009-09-28  
这么一说就完全明白了,确实拿UI举例有一些误导,在加上取名XML应用程序作为噱头(玩笑:)
OSGI,遇到使用OSGI的场合不太多,曾经做过一个C#项目,我们模仿OSGI,做了多个Bundle,这些Bundle是进程隔离的,中间有一个功能非常简单的核心Bundle负责检查其他Bundle的健康状况。这个系统生命力强悍,一个Bundle挂了马上由核心的Bundle重启,而核心足够简单,不容易挂掉。
如果用OSGI做产品的话,确实你的想法很不错。
OSGI,不知道下次用到你会是什么时候......
3 楼 yipsilon 2009-09-28  
solonote 写道
运行了Demo,看了代码,东西是不错的.
嘿嘿,楼主还是打着"XML应用程序"的旗号.
用XML来组织UI的模式很早之前就有了,Java方面有eFace,楼主是否是参与者之一?
对比eFace,楼主的程序:
1.加入了脚本支持
2.在XML描述UI组件触发OSGI Bundle的方法
3.双击xmla后缀就能运行程序(这个只能算一个小技巧吧)

楼主的目标是想做一个更好的eFace?我确实没有看到那种从无到有的创新点.
我现在关心的是,你到底想要做一个什么东西.另外,能放出源码吗?

XML应用程序,应该是可以涵盖所有的应用程序,而不仅仅是UI,拿UI做演示主要是可以更直观地体现出程序代码的用法和好处,要是我写个看不见界面的服务器演示,那还有意思么?说不定人家还以为我这是某个主流服务器软件的配置文件呢,呵呵。

eFace的确是社区跟Soyatec联合开发出来的,而且是一个成熟稳定的XAML应用产品,而XML应用程序运行环境是一个提供OSGi底层支持的通用XML解释器,而不是应用,只要有人愿意去做,在Bundle上做任何基于XML的应用都可以,例如 MXML、HTML等等,一个是应用产品而另一个是平台环境,个人认为此想法并不跟eFace冲突呀。你说呢?

至于源代码,初级阶段连路都找不到就放出来那丢人啊,如果想法成熟了自然会放出来的,主要看我们有没有时间和能力开发出来,毕竟都是用业余的时间搞的,哎哎。
2 楼 solonote 2009-09-28  
运行了Demo,看了代码,东西是不错的.
嘿嘿,楼主还是打着"XML应用程序"的旗号.
用XML来组织UI的模式很早之前就有了,Java方面有eFace,楼主是否是参与者之一?
对比eFace,楼主的程序:
1.加入了脚本支持
2.在XML描述UI组件触发OSGI Bundle的方法
3.双击xmla后缀就能运行程序(这个只能算一个小技巧吧)

楼主的目标是想做一个更好的eFace?我确实没有看到那种从无到有的创新点.
我现在关心的是,你到底想要做一个什么东西.另外,能放出源码吗?
1 楼 yipsilon 2009-09-27  
内容已更新,这次测试程序比较完美啦~

相关推荐

    QT演示程序(插件,数据库,xml)

    QT演示程序是一个基于QT框架开发的应用程序,它涵盖了多个关键领域的知识,包括插件系统、XML处理和数据库操作。QT是一个流行的开源C++图形用户界面工具包,它提供了丰富的功能和组件,使得开发者能够创建出跨平台的...

    xml + ajax 演示

    总的来说,这个“xml + ajax 演示”项目是一个实践案例,展示了如何利用XML作为数据载体,结合AJAX的异步特性,构建一个高效、互动的Web应用程序。通过学习和分析这个项目,开发者可以深入理解XML和AJAX在实际开发中...

    vs.net xml ppt 演示稿

    "XML Powerpnt"可能是PPT演示文稿的名称,里面可能包含多个幻灯片,详细介绍了XML的各个方面,如XML的语法、XML文档的结构、XML命名空间、XPath查询、XSLT转换、XML与数据库的交互,以及如何在VS.NET中创建和调试XML...

    C#应用程序示例

    这些示例可能是简单的控制台应用程序,演示基础语法和流程控制;或者是复杂的Windows Forms或WPF项目,展示如何设计和实现GUI;也可能是ASP.NET Web应用,展示如何处理HTTP请求和响应;或者UWP应用,展示跨平台开发...

    MFC框架下tinyxml的测试程序

    在IT领域,XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,尤其在跨平台和跨应用程序间的数据交换中广泛使用。TinyXML是C++库中的一个小型、轻量级的工具,它允许开发者方便地读取、写入...

    net\XML示例程序导学第二版.rar

    通过《NET XML 示例程序导学第二版》,开发者不仅可以学习到XML的基本理论,还能掌握.NET环境下XML的实际操作技巧,从而提升在项目开发中的XML应用能力。这份教程对初学者和有经验的.NET开发者来说都是一份宝贵的...

    DELPHI 解析XML的小程序

    DELPHI解析XML小程序是一种基于DELPHI 7开发的应用,用于处理XML(eXtensible Markup Language)数据。XML是一种结构化数据语言,广泛应用于数据交换、配置存储以及网络通信等领域。在DELPHI中,我们可以利用其强大...

    C++中xml的载入和xml的小程序

    本资源包含两个程序,一个用于创建和存储XML数据,另一个则演示了在C++环境中如何解析和使用这些数据。 在C++中处理XML,通常需要使用库来帮助我们完成任务。有多种开源库可供选择,如TinyXML、pugixml、Xerces-C++...

    OPC应用程序入门

    - 演示程序通常包括服务器端和客户端两个部分,服务器端负责提供数据服务,客户端则用于展示如何访问这些数据。 2. **开发指南**: - 书中包含了OPC数据访问标准的技术说明书和开发指南。 - 技术讲座、对接实验...

    XML原理及应用.袁俊.PDF 文字版

    在XML配置文件中,可以清晰地组织和存储应用程序的设置;在国际化和本地化中,XML文件用于存储各种语言的资源。 本书可能还涉及了XPath、XSLT和XML Schema等XML相关技术。XPath是一种在XML文档中查找信息的语言,...

    智能在线升级程序演示

    【标题】"智能在线升级程序演示"涉及到的IT知识点主要包括以下几个方面: 1. **DELPHI编程语言**:Delphi是基于Object Pascal的一种集成开发环境(IDE),它以其高效的编译器和强大的可视化组件库而闻名。在智能...

    Lwuit一些简单测试小应用程序Demo

    这个"**Lwuit一些简单测试小应用程序Demo**"是基于LWUIT库编写的示例代码,用于展示LWUIT的功能和用法。 LWUIT的核心特点包括: 1. **跨平台兼容性**:LWUIT支持多种Java ME设备,包括不同的手机和平板电脑,使得...

    VclSkin皮肤演示程序

    总之,VclSkin皮肤演示程序是学习和实践界面美化的一个理想起点,它提供了一个直观的平台,让开发者能够快速掌握皮肤应用技术,提升他们的应用程序在视觉效果上的竞争力。通过深入研究这个程序,开发者不仅可以掌握...

    jQuery+josn+xml小程序源码

    这个程序可能用于演示如何在网页应用中获取、处理和展示XML数据,同时利用jQuery库来增强用户体验。接下来,我们将深入探讨jQuery、JSON和XML的相关知识点。 **jQuery** 是一个广泛使用的JavaScript库,它简化了...

    osworkflow配置及演示程序.rar

    "osworkflow配置及演示程序.rar" 是一个包含有关OSWorkflow配置和示例应用程序的压缩文件。OSWorkflow(Open Source Workflow)是一个开源的工作流管理系统,它允许开发者在Java应用程序中实现复杂的业务流程。以下...

    C#语言解析XML的示例程序(可运行)

    通过运行这个示例程序,你可以直观地看到代码如何与XML文件交互,并从中学习到如何在实际项目中应用这些技术。 总之,XML解析是C#开发中的一项基本技能,掌握它能帮助开发者有效地处理结构化数据。通过学习和实践这...

    mfc 操作 xml演示文件

    而XML(Extensible Markup Language)则是一种用于存储和传输数据的标准格式,尤其适合于跨平台和跨应用程序的数据交换。本教程将详细介绍如何在MFC项目中操作XML文件,利用MSXML4库提供的接口类进行读写操作。 ...

    DREAMWEAVER与XML综合应用

    6. 应用案例:提供实际项目示例,演示XML和Dreamweaver在电子商务、内容管理系统和其他Web应用程序中的应用。 通过学习这本书,读者不仅可以掌握Dreamweaver的基本操作,还能理解XML在网页设计中的作用,进一步提升...

    ASP.Net演示程序

    ASP.NET演示程序是一个用于教学目的的应用程序,它深入展示了如何在C#编程环境中利用ASP.NET技术处理XML数据和XSLT转换,同时结合了图形开发技术。这个程序旨在帮助学习者理解和掌握C#语言在.NET Framework 1.1平台...

    springfox-demos:Springfox演示应用程序

    Java-Swagger 在非启动应用程序上演示手动Java配置api 3.0.3支持Springxml swagger 在非启动应用程序上演示手动xml配置api 3.0.3支持弹簧整合webflux 演示对webflux项目的Spring集成支持弹簧集成webmvc 演示对webmvc...

Global site tag (gtag.js) - Google Analytics