`
smartinvoke
  • 浏览: 106699 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

smartrcp开源平台使用Java与Flex构建桌面程序 三(使用eclipse插件扩展smartrcp平台)

阅读更多

1:背景:
  Adobe AIR平台最大的劣势就是很难在该平台的基础上进行扩展,程序的功能受限于
该平台的标准API,而smartrcp使用eclipse插件体系很好的解决了平台的扩展问题。
 
  从此可以使用Java解决复杂的业务逻辑,Flex负责界面展示,Java与Flex互相配合,
充分发挥各自的优势。

2:基本开发步骤如下:
  
   2.1 保证您的eclipse 具有插件开发的功能,File -> New -> Other 看看有没
 Plug-in Development 节点如果有则具有插件开发功能。转到smartrcp的解压目录,
 将plugins目录下的cn.smartinvoke.smartrcp.core_1.0.0.jar文件拷贝到您eclipse
 开发工具的根目录下的plugins目录下。
  
   2.2  创建一名为org.smartrcp.test的plug-in Project,将Target Platform
 选中为Equinox。一路next直到完成。打开项目下的MANIFEST.MF文件,打开Dependencies
 选项,将cn.smartinvoke.smartrcp.core添加进Required Plug-ins集合,这样该插件才
 可以引用到smartrcp的基础类。在org.smartrcp.test包下创建CFileWriter类,内容如下:

 

 package org.smartrcp.test;

import java.io.*;

import cn.smartinvoke.IServerObject;

public class CFileWriter implements IServerObject {

	public CFileWriter() {
		
	}
	/**
	 * 将字符串content保存到path文件中
	 * @param path
	 * @param content
	 * @throws IOException
	 */
	public void saveFile(String path,String content) throws IOException{
		Writer writer=new FileWriter(path);
		writer.write(content);
		writer.flush();
		writer.close();
	}
	
	public void dispose() {
		
	}

}

 2.3 右击org.smartrcp.test项目选择Export -> Plug-in Development ->
    Deployable plug-ins and fragments  将该项目导出为一个eclipse 插件。
    最后将导出的插件jar文件拷贝到smartrcp安装目录的ext目录中,如果没有该目录则手工
    创建之。

2.4 到现在Java部分开发并配置好了,接下来就是Flex部分了,打开先前创建的smartrcpDemo
    项目,修改Module_Content.mxml文件内容如下:

 

 

<?xml version="1.0" encoding="utf-8"?>
<rcp:RCPModule xmlns:mx="http://www.adobe.com/2006/mxml"
	xmlns:rcp="http://www.smartrcp.org"
	 layout="vertical" verticalAlign="middle" horizontalAlign="center"
	  creationComplete="init()"
	 >
	 <mx:Script>
	 	<![CDATA[
	 		import cn.smartinvoke.smartrcp.gui.module.CommonDialogs;
	 		import mx.controls.Alert;
	 		import cn.smartinvoke.smartrcp.gui.control.CActionManager;
	 		import cn.smartinvoke.smartrcp.gui.module.CActionEvent;
	 		import mx.collections.ArrayCollection;
	 		import cn.smartinvoke.rcp.CToolBar;
	 		import cn.smartinvoke.smartrcp.gui.FlashViewPart;
	 		import cn.smartinvoke.RemoteObject;
	 		import cn.smartinvoke.smartrcp.gui.ViewPartActionBar;
	 	    var actionBar:ViewPartActionBar=null;
	 	    //初始化方法,在该方法中为当前视图添加一刷新按钮
	 	    function init():void{
	 	    	/**在容器上添加刷新按钮*/
	 	    	var parent:RemoteObject=this.flashViewer.getParent();
				//如果存载当前flash的容器时viewPart,才具有此功能
				if(parent is FlashViewPart){
				   var viewPart:FlashViewPart=parent as FlashViewPart;
				   //获得当前视图容器的工具栏容器对象
				   this.actionBar=viewPart.getPartActionBar();
				   //注册freshAction到工具栏容器对象actionBar
				   this.actionBar.addAction(this.freshAction);
				   //定义工具栏对象
				   var toolBar:CToolBar=new CToolBar();
				   //将freshAction 添加到该工具栏对象
				   toolBar.actionIds=new ArrayCollection([this.freshAction.actionId]);
				   //将工具栏对象添加到工具栏容器
				   this.actionBar.fillToolBar(toolBar);
				   //给freshAction 添加事件监听器
				   this.actionBar.addListener(this.freshAction.actionId,function (ret:CActionEvent):void{
				   	   this.setInfo("刷新当前的所有操作..............");
				   },this);
				}
				/**添加对Splash.mxml启动文件中定义的id为test的全局action的事件监听*/
				CActionManager.Instance.addListener("test",function (evt:CActionEvent):void{
					Alert.show("id为test的全局action被用户点击触发了");
				},this);
	 	    }
	 	    //公共方法,该方法可以被其他模块调用
	 		public function setInfo(info:String):void{
	 			this.labelInfo.text=info;
	 		}
	 		function onSaveClick():void{
	 			/**打开文件保存对话框,并将TextArea中的内容保存到用户选择的路径下*/
	 		    
	 			var fileWriter:RemoteObject=new RemoteObject();
	 			fileWriter.create("org.smartrcp.test.CFileWriter");
	 			fileWriter.call("saveFile",["D:/testSave.text",this.saveText.text]);
	 		}
	 	]]>
	 </mx:Script>
	 <!--定义一action -->
	 <rcp:CAction id="freshAction" actionId="actionfresh" 
	 	 imageUrl="icons/update.gif"
	 	text="刷新" toolTip="刷新当前视图"/>
	 <mx:Label id="labelInfo" text="欢迎使用......"/>
	 <mx:TextArea  id="saveText" width="292" height="144"/>
	 <mx:Button label="保存" click="onSaveClick()"/>
</rcp:RCPModule>

 

保存并编译之。

2.5 接下来就是运行啦^_^
   
    打开控制台,切换到smartrcp安装目录,运行
    smartrcp.exe -app E:\flexWork\SmartRCPDemo\bin-debug\Splash.swf 命令
   
    -app 参数定义运行时加载的smartrcp程序的启动文件的路径,这里为smartrcpDemo
    程序中的Splash.mxml文件编译后得到的Splash.swf文件路径。
    当然为了偷懒你也可也在smartrcp安装目录下创建一run.bat批处理文件,将该命令
    拷贝到其中,这样只需双击运行该批处理文件就可以了。

    运行效果如下图:
            

 
    在文本框中输入内容,点击保存后你就会发现D:/testSave.text文件中保存了该字符串,
    证明我们调用Java是成功了的。

 

  • 大小: 36.9 KB
分享到:
评论
1 楼 timshaw9791 2010-11-05  
看起来相当不错!

相关推荐

    smartrcp入门视频系列三(快速构建程序界面)

    总的来说,通过学习这个“smartrcp入门视频系列三”,开发者可以了解如何使用smartrcp快速构建程序界面,掌握如何结合Flex技术提升用户界面的动态性,同时利用smartrcp的扩展库增强应用的功能。此外,通过阅读相关的...

    smartrcp入门视频系列五(flex调用IE浏览器)

    SmartRCP可能是一个增强的RCP(Rich Client Platform)平台,为开发人员提供了一种更方便的方式来构建桌面应用程序,而不仅仅是Web应用程序。在这一系列的第五部分,它将展示如何在Flex界面中嵌入或者调用IE浏览器,...

    uniapp实战商城类app和小程序源码​​​​​​.rar

    uniapp实战商城类app和小程序源码,包含后端API源码和交互完整源码。

    PHP进阶系列之Swoole入门精讲(课程视频)

    本课程是 PHP 进阶系列之 Swoole 入门精讲,系统讲解 Swoole 在 PHP 高性能开发中的应用,涵盖 协程、异步编程、WebSocket、TCP/UDP 通信、任务投递、定时器等核心功能。通过理论解析和实战案例相结合,帮助开发者掌握 Swoole 的基本使用方法及其在高并发场景下的应用。 适用人群: 适合 有一定 PHP 基础的开发者、希望提升后端性能优化能力的工程师,以及 对高并发、异步编程感兴趣的学习者。 能学到什么: 掌握 Swoole 基础——理解 Swoole 的核心概念,如协程、异步编程、事件驱动等。 高并发处理——学习如何使用 Swoole 构建高并发的 Web 服务器、TCP/UDP 服务器。 实战项目经验——通过案例实践,掌握 Swoole 在 WebSocket、消息队列、微服务等场景的应用。 阅读建议: 建议先掌握 PHP 基础,了解 HTTP 服务器和并发处理相关概念。学习过程中,结合 官方文档和实际项目 进行实践,加深理解,逐步提升 Swoole 开发能力。

    matlab齿轮-轴-轴承系统含间隙非线性动力学 基于matlab的齿轮-轴-轴承系统的含间隙非线性动力学模型,根据牛顿第二定律,建立齿轮系统啮合的非线性动力学方程,同时也主要应用修正Capone模

    matlab齿轮-轴-轴承系统含间隙非线性动力学 基于matlab的齿轮-轴-轴承系统的含间隙非线性动力学模型,根据牛顿第二定律,建立齿轮系统啮合的非线性动力学方程,同时也主要应用修正Capone模型的滑动轴承无量纲化雷诺方程,利用这些方程推到公式建模;用MATLAB求解画出位移-速度图像,从而得到系统在不同转速下的混沌特性,分析齿轮-滑动轴承系统的动态特性 程序已调通,可直接运行 ,关键词:Matlab;齿轮-轴-轴承系统;含间隙非线性动力学;牛顿第二定律;动力学方程;修正Capone模型;无量纲化雷诺方程;位移-速度图像;混沌特性;动态特性。,基于Matlab的齿轮-轴-轴承系统非线性动力学建模与混沌特性分析

    2024年移动应用隐私安全观测报告.pdf

    2024年移动应用隐私安全观测报告.pdf

    基于Springboot框架的电影评论网站系统设计与实现(Java项目编程实战+完整源码+毕设文档+sql文件+学习练手好项目).zip

    本电影评论网站管理员和用户。管理员功能有个人中心,用户管理,电影类别管理,电影信息管理,留言板管理,论坛交流,系统管理等。用户可以对电影进行评论。因而具有一定的实用性。本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得电影评论网站管理工作系统化、规范化。 本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高电影评论网站管理效率。 关键词:电影评论网站;SSM框架;MYSQL数据库 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.1 MYSQL数据库 2 2.2 B/S结构 3 2.3 Spring Boot框架简介 4 3系统分析 4 3.1可行性分析 4 3.1.1技术可行性 4 3.1.2经济可行性 5 3.1.3操作可行性 5 3.2系统性能分析 5 3.2.1 系统安全性 5 3.2.2 数据完整性 6 3.3系统界面分析 6 3.4系统流程和逻辑 7 4系统概要设计 8 4.1概述 8 4.2系统结构 9 4.

    2023-04-06-项目笔记 - 第四百三十六阶段 - 4.4.2.434全局变量的作用域-434 -2025.03.13

    2023-04-06-项目笔记-第四百三十六阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.434局变量的作用域_434- 2025-03-13

    基于STM32的流量计智能流速流量监测、水泵报警系统(泵启动 1100027-基于STM32的流量计智能流速流量监测、水泵报警系统(泵启动、阈值设置、LCD1602、超阈值报警、proteus) 功

    基于STM32的流量计智能流速流量监测、水泵报警系统(泵启动 1100027-基于STM32的流量计智能流速流量监测、水泵报警系统(泵启动、阈值设置、LCD1602、超阈值报警、proteus) 功能描述: 基于STM32F103C8单片机实现的智能流速、流量,流量计设计 实现的功能是通过信号发生器模拟齿轮传感器,检测流量的大小,同时计算流过液体的总容量 可以设置最大流过的总容量,当超过设定值后通过蜂鸣器与LED灯指示 当没有超过则启动水泵控制电路带动液体流动 1、流速检测 2、流量统计 3、阈值显示与设置(通过按键实现阈值的调节或清零) 4、水泵启动 5、超阈值报警 有哪些资料: 1、仿真工程文件 2、PCB工程文件 3、原理图工程文件 4、源代码 ,核心关键词: 基于STM32的流量计; 智能流速流量监测; 水泵报警系统; 阈值设置; LCD1602; 超阈值报警; Proteus仿真; STM32F103C8单片机; 齿轮传感器; 信号发生器; 流量统计; 蜂鸣器与LED灯指示; 水泵控制电路。,基于STM32的智能流量监测与报警系统(阈值可调、流速与流量监

    (灰度场景下的平面、海底、船、受害者)图像分类数据集【已标注,约1100张数据】

    (灰度场景下的平面、海底、船、受害者)图像分类数据集【已标注,约1100张数据】 数据经过预处理,可以直接作为分类网络输入使用 分类个数【4】:平面、海底、船、受害者【具体查看json文件】 划分了训练集、测试集。存放各自的同一类数据图片。如果想可视化数据集,可以运行资源中的show脚本。 图像分类、分割网络改进:https://blog.csdn.net/qq_44886601/category_12858320.html 计算机视觉完整项目:https://blog.csdn.net/qq_44886601/category_12816068.html

    arkime无geo下的oui文件

    arkime无geo下的oui文件

    图像处理_人脸识别_数据库连接_教学与部署_1741771164.zip

    人脸识别项目实战

    机器人视觉导航_OrbSlam2_语义地图_智能交互与探索_1741771547.zip

    人脸识别项目实战

    CAD 2025 二次开发dll

    CAD 2025 二次开发dll

    人脸识别_Facenet_人脸向量数据库存储_用户识别与匹配_1741777703.zip

    人脸识别项目源码实战

    数据结构_C语言_代码实现_学习复习用途_1741859029.zip

    c语言学习

    基于扩张状态观测器eso扰动补偿和权重因子调节的电流预测控制,相比传统方法,增加了参数鲁棒性 降低电流脉动,和误差 基于扩张状态观测器eso补偿的三矢量模型预测控制 ,基于扩张状态观测器; 扰动补

    基于扩张状态观测器eso扰动补偿和权重因子调节的电流预测控制,相比传统方法,增加了参数鲁棒性 降低电流脉动,和误差 基于扩张状态观测器eso补偿的三矢量模型预测控制 ,基于扩张状态观测器; 扰动补偿; 权重因子调节; 电流预测控制; 参数鲁棒性; 电流脉动降低; 误差降低; 三矢量模型预测控制,基于鲁棒性增强和扰动补偿的电流预测控制方法

    计算机科学_C语言_数据结构_航班信息管理系统_1741863572.zip

    c语言学习

    UE开发教程与学习方法记录.zip

    UE开发教程与学习方法记录.zip

    智慧农批园区综合整体建设方案PPT(63页).pptx

    在智慧园区建设的浪潮中,一个集高效、安全、便捷于一体的综合解决方案正逐步成为现代园区管理的标配。这一方案旨在解决传统园区面临的智能化水平低、信息孤岛、管理手段落后等痛点,通过信息化平台与智能硬件的深度融合,为园区带来前所未有的变革。 首先,智慧园区综合解决方案以提升园区整体智能化水平为核心,打破了信息孤岛现象。通过构建统一的智能运营中心(IOC),采用1+N模式,即一个智能运营中心集成多个应用系统,实现了园区内各系统的互联互通与数据共享。IOC运营中心如同园区的“智慧大脑”,利用大数据可视化技术,将园区安防、机电设备运行、车辆通行、人员流动、能源能耗等关键信息实时呈现在拼接巨屏上,管理者可直观掌握园区运行状态,实现科学决策。这种“万物互联”的能力不仅消除了系统间的壁垒,还大幅提升了管理效率,让园区管理更加精细化、智能化。 更令人兴奋的是,该方案融入了诸多前沿科技,让智慧园区充满了未来感。例如,利用AI视频分析技术,智慧园区实现了对人脸、车辆、行为的智能识别与追踪,不仅极大提升了安防水平,还能为园区提供精准的人流分析、车辆管理等增值服务。同时,无人机巡查、巡逻机器人等智能设备的加入,让园区安全无死角,管理更轻松。特别是巡逻机器人,不仅能进行360度地面全天候巡检,还能自主绕障、充电,甚至具备火灾预警、空气质量检测等环境感知能力,成为了园区管理的得力助手。此外,通过构建高精度数字孪生系统,将园区现实场景与数字世界完美融合,管理者可借助VR/AR技术进行远程巡检、设备维护等操作,仿佛置身于一个虚拟与现实交织的智慧世界。 最值得关注的是,智慧园区综合解决方案还带来了显著的经济与社会效益。通过优化园区管理流程,实现降本增效。例如,智能库存管理、及时响应采购需求等举措,大幅减少了库存积压与浪费;而设备自动化与远程监控则降低了维修与人力成本。同时,借助大数据分析技术,园区可精准把握产业趋势,优化招商策略,提高入驻企业满意度与营收水平。此外,智慧园区的低碳节能设计,通过能源分析与精细化管理,实现了能耗的显著降低,为园区可持续发展奠定了坚实基础。总之,这一综合解决方案不仅让园区管理变得更加智慧、高效,更为入驻企业与员工带来了更加舒适、便捷的工作与生活环境,是未来园区建设的必然趋势。

Global site tag (gtag.js) - Google Analytics