`
lwz7512
  • 浏览: 331718 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

上手篇-在eclipse中开发第一个openlaslzo的RIA

阅读更多

这一部分将以一个用户登录认证的laszlo应用为例,介绍基本的eclipse环境下的开发过程。

第一步 建立一个laszlo工程

  1.搭建好eclipse4laslzo开发环境后,就可以开发laslzo应用了,首先打开eclipse3.1

  2.File/New/Project...打开New Project对话框,在Laszlo中选择Laszlo Project

  3.Project name: 填入一个名字,比如:firstLaslzoProject,在project contents中使用你想放置laszlo应用的路径,最好是放在OpenLaszlo Server 3.2\Server\lps-3.2下面,可以通过修改workplace来设置默认路径;

  4.LPS Options 中指定lps服务器的路径,比如:C:\Program Files\OpenLaszlo Server 3.2\Server\lps-3.2
    Finish的时候,会弹出Open Associated Perspective对话框,选择Remember my decision,yes。

第二步 建立一个测试的lzx文件
  
  1.在script Explorer面板中,打开firstLaslzoProject,在scr上右击,New/Laslzo File,File Name改为hello.lzx,finish
    在hello.lzx的编辑器里,就可以看到已经写好的canvas标签了,然后就可以在他里面写其他的标签了

  2.打开右边Paletee面板中的compoents面板,找到text组件,拖动他到canvas标签中间放手(看黑色光标指示位置),
    在<text>和</text>之间写上hello lazlo,点击hello编辑器的design选项卡,稍等几秒便可看到预览效果

  3.再点击source选项卡,切换到源码模式,将text标签中原来的hello,改为“你好”,再点击design选项卡,你会发现不能正确预览了,提示No preview available.
    这个是由于中文字符的编码eclpse当作非法代码了

  4.保存hello.lzx文件,启动openlaszlo的服务器(双击C:\Program Files\OpenLaszlo Server 3.2下的Start OpenLaszlo Server),
    在浏览器中输入http://localhost:8080/lps-3.2/LaslzoProject/lwz_laszlo_pro/src/hello.lzx?lzt=html
    回车,等待片刻,看看是不是能正确显示中文了?
 
  5.eclipse的预览功能我向来是不用的,效率低,还不如直接将源文件放到服务器目录下在浏览器中看结果呢

第三步 开始编写laszlo登录认证界面

  1.编写主界面及交互脚本

   源码如下:
  ----------------------------------------------
  login.lzx(developed by lwz7512)
  ----------------------------------------------
  <?xml version="1.0" encoding="UTF-8" ?>
<canvas fontsize="12" debug="true">
  <debug x="0" y="400" width="300" height="200"/>   
  <splash>
     <view name="loader" resource="resources/progressbar.swf" x="400" y="200"/>
  </splash>
  <dataset name="validusers" src="resources/usersdata.xml" type="http" request="false"></dataset>
  <datapointer name="userspt" xpath="validusers:/*">
    <method event="ondata"><![CDATA[
       Debug.write("userdata loaded!");      
    ]]></method>
  </datapointer>
  <method event="oninit"><![CDATA[
    validusers.doRequest();
  ]]></method>
  <window name="mainface" title="欢迎用户" x="300" y="50" width="500" height="300" visible="false">
    <text name="userloggedin" resize="true" text="Guest" align="center" valign="middle"></text>
  </window>
  <window name="login" title="请输入用户名和密码" x="400" y="200" width="250" height="50"  closeable="true" >
   
    <text name="usernametag" x="30" y="20" text="用户名:"/>
    <edittext name="usernamevalue" x="80" y="20" width="100" height="22"></edittext>
    <text name="passwordtag" x="30" y="44" text="密码:"/>
    <edittext name="passwordvalue" x="80" y="44" width="100" height="22" password="true"></edittext>
    <text name="loginwarning" x="10" y="78" text="对不起,您输入的用户名和密码不正确" visible="false"></text>
    <button name="send" text="登录" x="80" y="100" height="22" width="80" isdefault="true">
      <method event="onclick"><![CDATA[
        var isvaliduser = checkuser();
        if(isvaliduser){
           canvas.mainface.userloggedin.setText(parent.usernamevalue.getText());
           canvas.mainface.setVisible(true);
           parent.close();
                   
        }else{
           parent.loginwarning.setVisible(true);
        }
      ]]></method>
      <method name="checkuser"><![CDATA[
        var checkresult = false;
        var usename = parent.usernamevalue.getText();
        var password = parent.passwordvalue.getText();
        var valideusers = validusers.childNodes[0].childNodes;
        for(var i=0;i<valideusers.length;i++){
           var eachusername = valideusers[i].getAttr('name');
           var eachuserpswd = valideusers[i].getAttr('pswd');
           if(eachusername == usename && eachuserpswd == password){
               checkresult = true;
           } 
        }
        return checkresult;
      ]]></method>
    </button>
    <button name="cancel" text="取消" x="80" y="126" height="22" width="80" focusable="true">
       <method event="onclick"><![CDATA[
           parent.close();
       ]]></method>
    </button>
  </window>
</canvas>
---------------------------------------------
this the end of login.lzx
--------------------------------------------

 2.编写用户信息列表

----------------------------------
usersdata.xml
---------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user name="lwz7512" pswd="12345"/>
    <user name="rabbit" pswd="54321"/>
    <user name="openria" pswd="root"/>
</users>
--------------------------------
this the end of usersdata.xml
---------------------------------------

 3.让程序RIA起来 

   富客户应用的魅力就在于给客户全新的体验,现在就给我们这个应用修饰一下:
  
   *** 用样式修饰界面
   
   首先要在canvas里面定义要使用的样式,然后就可以在窗口中使用了
   比如:<greenstyle name="greencolors" bgcolor="white"/>
  <goldstyle name="goldcolors" bgcolor="white"/>
  <silverstyle name="silvercolors"/>
  <bluestyle name="bluecolors" bgcolor="white"/>
   在窗口中这样使用:style="greencolors" 加个属性就可以了。
  
   *** 增加动画效果

   使用animate函数,来让窗口有动感

   登录窗口初始化时,让它以高度和垂直位置活动:
   <method event="oninit"><![CDATA[
       this.animate('height',200,500,false);
       this.animate('y',100,500,false);
    ]]></method>
   
   登录认证通过,让主窗口淡出(需要修改主窗口初始不透明度为0,而不是不显示)
  
   canvas.mainface.animate('opacity',1,500,false);

这样就做完了,来体验一下吧,在浏览器中输入:

http://localhost:8080/lps-3.2/LaslzoProject/lwz_laszlo_pro/src/login.lzx?lzt=html

我们的登陆场面看起来是不是很酷,输入用户名,TAB键,然后输入密码,如果输入的是用户列表中的用户,就可以看到主界面淡出,如果不是,就会提示“对不起,您输入的用户名和密码不正确”,都不用去后台验证,多爽!

总结:

这部分,我们已经学习了laszlo应用的布局、组件使用、交互脚本的编写
这里还隐含着我的编程习惯:

  *** 都使用局部变量name来标示实例
  *** 路径最短原则来引用实例
  *** dataset配合datapointer使用

好了,这一篇就写到这里了,下次再续。

这是做好的截图:

需要全部源码的给我发email:rabbit69@126.com



分享到:
评论

相关推荐

    Eclipse RAP Deploy - 针对Eclipse 3.5 + Tomcat

    1. 创建一个WAR(Web Application Archive)文件:在Eclipse中,选择你的RAP项目,右键点击,然后选择“Export” -&gt; “WAR File”。指定一个保存位置并完成导出。 2. 配置`web.xml`:这个文件是Web应用的部署描述符...

    flex整合j2ee-在eclipse wtp环境下使用blazeds

    标题中的“flex整合j2ee-在eclipse wtp环境下使用blazeds”是指将Adobe Flex前端技术与Java EE(J2EE)后端服务进行集成,在Eclipse WTP(Web Tools Platform)环境下利用BlazeDS作为通信中间件的过程。这个主题涉及...

    ICEfaces-1.8-Eclipse-3.5.0-plugins-v3.6.2 插件

    在实际开发过程中,使用ICEfaces-1.8-Eclipse-3.5.0-plugins-v3.6.2插件,开发者可以享受到以下好处: 1. **快速开发**:通过插件的代码提示和模板,开发者可以更快地编写ICEfaces代码。 2. **错误检测**:实时的...

    Dorado7/9开发环境 (解压即用Eclipse+dorado插件)支持dorado7和dorado9

    标题中的"Dorado7/9开发环境 (解压即用Eclipse+dorado插件)支持dorado7和dorado9"表明这是一个专为Dorado7和Dorado9开发设计的集成开发环境(IDE)。这个环境基于Eclipse,一个广泛使用的开源Java IDE,它已经被扩展...

    flex (eclipse)开发配置手册

    《Flex(Eclipse)开发配置手册》是一份详细介绍如何在Eclipse环境中进行Flex应用程序开发的指导文档。Flex是一种用于创建富互联网应用(RIA)的技术,它基于ActionScript和MXML,由Adobe公司提供。这份手册将帮助...

    Flex + LCDS + Java 利用Eclipse Plugin开发Flex入门教程

    1. 在Eclipse中,选择“File”&gt;“New”&gt;“Flex Project”。 2. 在向导界面中,指定Java源代码文件夹的位置。选择“Combined”选项,可以将Java和Flex代码放在同一个项目中,简化项目管理。 3. 设置其他项目属性,如...

    eclipse的一些cd-key

    MyEclipse是基于Eclipse平台的一个增强版IDE,它在Eclipse的基础上增加了许多高级功能,例如企业级Java开发工具、Web开发工具、数据库工具等,使得开发者能够更高效地进行各种类型的应用程序开发。MyEclipse提供了...

    flex(eclipse)开发配置手册及教程

    通过这个Flex(eclipse)开发配置手册及教程,你可以逐步掌握Flex开发的基本技能,并在此基础上不断深化,成为一名熟练的Flex开发者。教程中的详细步骤和示例将帮助你在实践中更好地理解和运用这些知识点。

    银光志--Silverlight 3.0开发详解与最佳实践-第3章光盘源码

    因为这是RIA开发,RIA中不但是简单的控件堆砌,还有创意、程序算法等,它们是一个优秀Silverlight应用程序的灵魂。笔者尽可能的在《银光志--Silverlight 3.0开发详解与最佳实践》里的范例中提供让读者深入了解开发...

    DWZ富客户端框架dwz-ria-1.4.6

    DWZ富客户端框架dwz-ria-1.4.6是一款专为开发高效、美观的Web应用程序而设计的后台框架。这款框架集成了多种技术,旨在简化开发过程,让开发者无需深入理解AJAX和jQuery等复杂技术,也能快速构建出与专业级应用相...

    dwz-ria-1.4.5源码及开发文档

    DWZ富客户端框架,全称为"Dynamic Web Zone Rich Internet Application Framework",是由中国的开发者团队精心设计和实现的一个基于jQuery的Ajax RIA(Rich Internet Application)开源框架。该框架旨在简化Web应用...

    Silverlight 4 RIA开发全程解析(完整版)

    使用《SilverLight 4 RIA开发全程解析》所阐述的在线业务的新特性,您可以创建一个与传统的基于ASP.NET的网站相比响应速度大为提高的Web应用程序。为了了解这些新特性以及改进的Silverlight工具包,我们在每一章中都...

    flex(eclipse)开发配置手册

    在本文中,我们将深入探讨如何配置Flex开发环境,特别是在Eclipse中进行集成。Flex是一种用于创建富互联网应用程序(RIA)的开源框架,而Eclipse是一款广泛使用的开源集成开发环境(IDE)。当我们谈论Flex(Eclipse...

    eclipse与myeclipse和flex的集成

    标题中的“eclipse与myeclipse和flex的集成”指的是在Eclipse开发环境中整合MyEclipse和Adobe Flex SDK,以创建和支持Flex项目的开发流程。Eclipse是一款开源的、跨平台的Java集成开发环境(IDE),而MyEclipse是...

    spket-1.6.22-plugin-for-eclipse-crack破解

    spket最新版本1.6.22破解过的。没破解版本个人也可以免费使用,只是不能修改设置。 参考了网上的破解方法,把成功的版本...ria开发必备,可以配置Extjs, YUI, jQuery, dojo等等常用javascript库的自动提示和完成功能。

    RIA应用开发课程简介

    ria应用开发是现代Web开发中一个重要的领域,旨在提供更加丰富、交互性更强的用户体验。本课程专为对RIA技术感兴趣的开发者设计,通过12个精心策划的课时,将引领你深入探索这一技术的精髓。 **jQuery学习课程** ...

    银光志--Silverlight 3.0开发详解与最佳实践

    《银光志--Silverlight 3.0开发详解与最佳实践》是一本专注于微软Silverlight 3.0技术的专业书籍,旨在为读者提供全面而深入的开发指导。Silverlight是微软推出的一种基于浏览器的插件技术,用于创建丰富的、交互式...

Global site tag (gtag.js) - Google Analytics