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

smartrcp开源平台使用Java与Flex构建桌面程序 四(smartrcp的运行原理)

阅读更多

smartrcp的程序结构如下:

 

    

图片说明:

 

启动文件:继承自cn.smartinvoke.gui.SplashApp的mxml Application文件编译后
               所得的swf文件。该文件有点儿像eclipse插件中的plugin.xml文件的作用,
              它定义了整个应用程序的基本信息;菜单工具栏;与整体布局。

应用程序文件:继承自cn.smartinvoke.gui.RCPApplication的mxml Application文件编译后
                    所得的swf文件。该文件的主要作用是保存全局运行库,程序全局样式,嵌入资源等等
                   资源。Flex模块都是通过它进行加载的。
模块:可以被独立加载与运行的软件单元,在smartrcp平台中,模块可以为:
      1:继承自RCPModule的mxml Module,它的最终发布形式为编译后的swf文件。
      2:继承自cn.smartinvoke.gui.RCPApplication的mxml Application,它的最终发布形式
         也为编译后的swf文件。
      3:实现cn.smartinvoke.smartrcp.core.ISWTPartUnit接口的Java类。通过它实现的
         public void createPartControl(Composite parent)方法可以定义界面显示。此类型
         的模块为Java语音实现,通过ViewManager类实现与Flex实现模块的互调。它的最终发布
         形式为java的jar文件。通过它可将Java与Flex界面整合到一个程序中。
     
     smartrcp平台为每个运行的模块生成唯一ID号,同时创建一FlashViewer类型对象用于对相应模块的访问。
     smartrcp规定:所有模块定义类的public方法都可以被其他模块访问到。
     smartrcp保证所有运行的模块都有一FlashViewer类型对象与其对应,通过唯一ID号进行区分。
     ViewManager类专门负责对所有FlashViewer类型对象进行管理。不同模块实例之间的调用都是通过调用
     调用ViewManager的对应方法实现的。
  
smartrcp运行原理:

1:  smartrcp在启动时获取-app参数值作为启动文件,该值必须为一有效的
     swf文件绝对路径,该路径可以为本地文件路径,也可以是一完整的http
    地址。smartrcp通过调用该swf文件得到如下信息:
      1.1 应用程序根目录——当前smartrcp程序的运行目录,程序中的所有相对路径都是相对于该路径的。
      1.2 运行文件——启动文件所在类即cn.smartinvoke.gui.SplashApp子类的cn.smartinvoke.rcp.CPerspective
            类的runtimeSwfPath属性所指的swf文件。

2:通过解析启动文件返回的cn.smartinvoke.rcp.CPerspective类型对象定义整个程序的菜单;工具栏;视图布局,窗口大小
  ,标题等应用程序信息。


3:通过第二步解析得到的视图布局信息加载指定的模块以初始化整个应用程序。

开发smartrcp程序就是开发不同的模块,主要是针对模块编程。smartrcp的这种架构特点充分保证了程序的高扩展性与可维护性。
充分保证了模块的复用性,因为可以将一模块编译为独立的flex application或osgi bundle Jar文件。
smartrcp的模块功能与com组件比较类似。

  • 大小: 16.9 KB
分享到:
评论

相关推荐

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

    NULL 博文链接:https://smartinvoke.iteye.com/blog/676044

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

    NULL 博文链接:https://smartinvoke.iteye.com/blog/664992

    c语言开发图书管理系统项目源码+数据+可运行程序

    c语言开发图书管理系统项目源码+数据+可运行程序 主要功能有:1、以管理员或读者不同身份注册账户。2、登录、找回密码、修改密码。3、管理员:图书入库,清除库存,统计书籍数量,统计读者借书情况,在馆书籍排序,读者排序。4、读者:查看个人借阅信息,借书,还书,按书名、作者、出版社检索图书,查询全部在馆图书。

    基于transformer的多模态脑肿瘤分割.zip

    本项目旨在利用Transformer模型实现多模态脑肿瘤分割。多模态脑肿瘤分割对于脑肿瘤的诊断和治疗具有重要意义。 我们采用Transformer模型,通过分析脑部MRI、CT、PET等不同模态的医学影像数据,实现对脑肿瘤区域的自动分割。项目使用的数据集包括公开的脑肿瘤影像数据集,如BRATS、Medical Segmentation Decathlon等,并进行了预处理,包括图像增强、分割和特征提取等。 在运行环境方面,我们使用Python编程语言,基于TensorFlow、PyTorch等深度学习框架进行开发。为了提高计算效率,我们还使用了GPU加速计算。此外,我们还采用了Docker容器技术,确保实验结果的可重复性。 项目完成后,将实现对多模态脑肿瘤的快速、准确分割,为脑肿瘤的诊断和治疗提供有力支持。同时,项目成果也可应用于其他医学影像分析领域。

    马尔文高浓度池说明书 High Concentration Cell (ZEN1010)

    马尔文高浓度池说明书 High Concentration Cell (ZEN1010)

    如何提高APP商业变现能力.docx

    如何提高APP商业变现能力.docx

    node-v12.20.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    R语言绘制SCI科研生存ROC曲线源代码.zip

    把input里面的数据替换成自己的数据,打开R,点Run,可以直接出图!文件适合有R语言基础的同学。

    高电压技术(第三版)课后习题答案

    高电压技术(第三版)课后习题答案

    Linux线程同步:深入理解与实践.pdf

    linux之线程同步一。 本文深入探讨了Linux线程同步的几种常见机制,并提供了代码示例。希望这些信息能够帮助你更好地理解和应用线程同步技术。在编写多线程程序时,请务必谨慎,确保线程安全。

    1999-2022年企业持续绿色创新水平数据.dta

    1999-2022年企业持续绿色创新水平数据.dta

    数据结构实验代码三个方法求最大公约数.rar

    数据结构实验代码

    机械设计无阀滤池-30Tsw16可编辑非常好的设计图纸100%好用.zip

    机械设计无阀滤池-30Tsw16可编辑非常好的设计图纸100%好用.zip

    机械设计RJ45安防线连接器焊锡机sw18可编辑非常好的设计图纸100%好用.zip

    机械设计RJ45安防线连接器焊锡机sw18可编辑非常好的设计图纸100%好用.zip

    SwiftUI嵌入UIKit(SwiftUI顺传值到UIKit)

    SwiftUI嵌入UIKit(SwiftUI顺传值到UIKit)

    node-v12.18.4-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Python代码实现基于朴素贝叶斯算法的垃圾邮件分类(源码+全部数据)

    当处理垃圾邮件分类问题时朴素贝叶斯算法是一种经典且常用的方法。朴素贝叶斯算法基于贝叶斯定理特征条件独立性假设,能够高效地处理文本分类问题。 以下是一个使用Python实现基于朴素贝斯算法的垃圾邮件分类的示例: 1. 数据准备: 首先,需要准备训练数据集和测试数据集。训练数据集包含已标记的垃圾邮件和非垃圾邮件的文样本,通过这些样本进行模型训练。测试数据集用于评估模型的性能。 2. 数据预处理: 将文本样本转换为特征向量是朴素贝叶斯算法的关键步骤。可以使用词袋模型或者TF-IDF等方法将文本样本表示为向量。 3. 特征选择: 根据问题的具体特点,可以选择保留所有特征或者进行特征选择。常见的特征选择方法有卡方检验、互信息等。 4. 模型训练: 使用训练数据集训练朴素贝叶斯分类模型。常见的朴素贝叶斯分类器有多项式朴素贝叶斯、伯努利朴素贝叶斯和高斯朴素贝叶斯等。 5. 模型评估: 使用测试数据集评估模型的性能,常见的评估指标包括准确率、召回率、精确率和F1值等。 下面是一个简单的Python实现示例: ```python import numpy as np from

    httpsyy70958.com29875videoplayvid45958.m3u8..m3u

    httpsyy70958.com29875videoplayvid45958.m3u8..m3u

    Java 三维装箱代码示例

    在Java中,实现一个三维装箱(也称为三维背包问题)的算法通常涉及到组合优化和动态规划。这个问题是一个典型的优化问题,其中目标是在三个维度的限制下最大化价值的总和。下面是一个简单的Java代码示例,它使用动态规划来解决三维装箱问题。 请注意,这个代码只是一个简单的示例,它假设所有物品的第三个维度的大小都是1,并且没有给出如何回溯选择物品的完整逻辑。在实际应用中,三维装箱问题可能更加复杂,需要考虑所有三个维度的限制,并且可能需要更复杂的算法来解决。 此外,这个问题的解决方案可能需要根据具体问题的要求进行调整,例如物品是否可以分割、是否允许超过一个的物品等。如果你有特定的问题描述或者需要进一步的帮助,请提供更多的细节。

    BCSP-X 2024年活动文件,包含活动范围和模拟题

    北京市中小学信息学能力测评活动(BCSP-X)活动范围和模拟题目,包含基础知识题目和测试点题目

Global site tag (gtag.js) - Google Analytics