红帽JBoss BRMS和BPMS富客户端框架展示了与GWT / Errai / UberFire和AngularJS的多语言集成...

上周,我发布了一个博客,重点介绍了我的演示文稿,该演示文稿展示了我们在BRMS和BPMS平台内完成的工作,Drools和jBPM项目的产品化版本所产生的丰富客户端平台。 该演示文稿是所有屏幕截图和视频,您可以在此处找到博客和幻灯片共享的链接: “ Red Hat JBoss BRMS和BPMS Workbench和Rich Client Technology”。

演讲强调了我们UI工作的广泛范围; 展示了我们在BRMS和BPMS平台内所做的工作以及UI技术提供的灵活性和适应性。 它为GWT , Errai和UberFire的强大动力提供了很好的证明,这三种技术推动了所有这些。 我们等不及GWT 2.7的升级了 !

如上一个博客所述,UberFire网站只是一个占位符,还没有发布。 该计划是第一个发布我们的0.5版本的计划,但是对于我们的BRMS和BPMS平台而言,则更多。 然后,我们将其移至GWT 2.7并朝着适用于更广泛消费的UF 1.0努力。 在1.0中,我们将添加示例和文档,并致力于使最终用户更容易理解和使用它们。 当然,没有什么可以阻止冒险尝试0.5的,它的代码很健壮,并且已经在BRMS和BPMS中生成了产品– Freenode #uberfire我们一直在提供帮助。

该演示文稿本身建立在早期视频的基础上,该视频展示了我们的新Apps框架: Drools和jBPM KIE A​​pps Framework

上面的视频已经演示了我们的多语言功能,构建AngularJS组件并在UF环境中使用它们。 它还显示了我们受JSFiddle启发的全新RAD环境。

我现在想与大家分享我们在多语言开发另一端所做的工作-这次是从AngularJS中使用GWT和UF。 重要的是,我们允许采用AngularJS优先方法,该方法应与AngularJS人们熟悉的工具链配合使用。 首先是AngularJS,我的意思是AngularJS是最外面的容器。 上面的视频中UF已经在运行,并且是外部容器,可以在其中使用各个AngularJS组件。

在详细说明我们完成的工作之前,首先要涵盖屏幕和透视图的概念,这是我们提供多语言互操作性的两个主要组件-还有其他组件,但这足以理解接下来的视频和示例。 屏幕是我们最简单的组件,它是DIV加上可选的生命周期回调。 透视图也是DIV,但它包含1..n屏幕,具有不同的可能布局管理器和布局持久性。

屏幕

  • CDI发现或以编程方式注册。
  • 页面上的DIV。
  • 生命周期回调。
    • OnStart,OnClose,OnFocus,OnLostFocus,OnMayClose,OnReveal。
  • 通过Errai总线解耦。
    • 组件不会相互调用,所有通信都由总线处理。
  • 编辑器扩展屏幕,与资源类型相关联,并提供其他生命周期
    • onSave,isDirty。

透视

  • CDI发现或以编程方式注册。
  • 1..n屏幕的组成,但它本身是DIV。
  • 支持屏幕的可插入窗口管理。
    • 北,东,西南(NESW)。
      • 拖放对接功能。
    • 引导网格视图。
      • 分开的设计时间和运行时间。
    • 模板(ErraiUI或AngularJS)。
      • 透视图内容和布局的绝对控制。
  • 如果用户重新设计,则支持透视图布局的持久性。
    • 仅适用于NESW和Bootstrap Grid视图。

一幅图片价值一千个单词,因此这是一个透视图生成器的屏幕截图。 在这里,它使用Bootstrap Grid View布局管理器。 每个网格单元中都有一个屏幕。 保存透视图,然后从应用程序中使用它。 如果使用NESW布局管理器,则没有单独的设计时间,并且所有拖动都就地完成,并且每次更改后,持久性都会在后台发生。 尽管下面的屏幕快照中未显示它,但我们也支持屏幕的列表(下拉列表)和选项卡堆栈。

毛毛

现在回到AngularJS第一种方法的含义。 确定了6个不同点以证明这是可能的。

  1. UF屏幕和透视图应作为AngularJS指令无缝提供。
  2. 预编译UFJS的Bower包装。 UFJS是UF的预编译客户端专用版本。
  3. UFJS可以独立运行,例如file://。 UFJS可以选择与UF战争后端一起使用,从而允许UFJS保存状态所需的观点和其他可选位置的持久性,并可以访问我们提供的所有服务,例如身份管理。
  4. 在开发过程中支持实时刷新。
  5. 嵌套控制器。
  6. 持久性和路由。
  7. 使用诸如Yeoman , Grunt和Karma之类的工具 。

Eder产生了许多示例,您可以自己运行。 这些证明所有问题都已解决。 您可以在这里找到代码,以及自述文件以开始使用。 我们没有提供第7点的视频,因为我认为第1点到第6点的视频表明这不是问题。

Eder还针对每个用例创建了几个运行示例的简短视频,并将它们放入YouTube播放列表。 他添加了文本和标注以使发生的事情更清楚: AngularJS + UF PlayList

  1. 概述,解释每个视频的演示内容(33秒)。
  2. AngularJS App + UFJS,仅客户端,使用Bower分发。 (2分30秒)。
    • 通过Bower安装并使用UFJS
    • 创建一个本机AngularJS应用
    • 将此应用程序与UFJS集成
      • 显示超滤屏幕指令
      • 显示用友观点指令
  3. AngularJS应用程序+ UFJS客户端和UF服务器。
    • 1之2(3分58秒)。
      • 下载UF战争
      • 在EAP上安装并运行
      • 在Apache上下载并运行我们的Angular演示
      • 显示AngularJS路线+ UF集成
    • 2之2(4分06秒)。
      • 使用UF创建动态屏幕和透视图
      • 将AngularJS模板封装在UF屏幕中
      • 显示嵌套在父控制器中的AngularJS应用(在UF屏幕内)。
        • 展示了多层控制器嵌套。
  4. 带有AngularJS组件的KIE UF Workbench RAD环境。
  5. Uberfire编辑器可以无缝地用作Eclipse编辑器。

为了完整起见,原始视频显示了JSFiddle启发的RAD环境,该环境演示了UF首个多语言环境。 参见上面的第4点。

最后,为了展示并且因为我们可以,我们添加了一个奖励视频,演示了在Eclipse中无缝运行的UF编辑器组件。 这证明了我们的组件模型的强大功能-旨在使我们的组件在任何环境下都可以独立工作。 我们使用Errai拦截所有RPC调用并将它们桥接到Eclipse。 因为我们的编辑者使用的虚拟文件系统像其他服务一样被解耦和抽象了,所以我们可以使其适应Eclipse File io。 对于最终用户,结果是一个无缝的编辑器,显示为本地。 这允许开发可以在Web上和Eclipse甚至IntelliJ中运行的组件。 我们将稍后再公开此示例。

以下是从视频中截取的一些屏幕截图:

OQh5eY6

Y7NRIw0

krbL27k

E75wwoq

NU1uGlk

Hv2pmAh

Q0CP5cu

W9r05En
最后,对所有那些说不可能完成的人!

w8YXP7O

翻译自: https://www.javacodegeeks.com/2014/11/red-hat-jboss-brms-and-bpms-rich-client-framework-demonstrating-polyglot-integration-with-gwterraiuberfire-and-angularjs.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AJAX的内容

第 1 章:原生 AJAX 1.1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML。 通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。 AJAX 不是新的编程语言,而是…

洛谷P1099 树网的核

传送门 80分 $ Floyd $ 树的直径可以通过枚举求出。直径的两个端点$ maxi,maxj $ ,由此可知对于一个点 $ k $ ,如果满足 $ d[maxi][k]d[k][maxj]d[maxi][maxj] $ 那么 $ k $ 点一定在直径上。分别枚举位于直径上的起点 $ s $ 与终点 $ t $ 。 $ ecg $ 定…

HTML中直接写js 函数

1.在HTML中直接写JS函数: <body οnlοad"javascript:{window.location.hrefhttp://www.baidu.com/}">2.写在script标签里的话就是&#xff1a; <script>function tiao(){window.location.href"http://www.baidu.com/"}</script><!--…

选择通过更改内容类型返回的详细程度,第二部分

在上一篇文章中 &#xff0c;我们研究了使用MOXy的功能来控制特定实体的数据输出级别。 这篇文章着眼于Jersey 2.x提供的抽象&#xff0c;它允许您定义一组自定义的批注以具有相同的效果。 与之前一样&#xff0c;我们几乎没有什么琐碎的资源可以返回Jersey将为我们转换为JSON…

jQuery.ajax success 与 complete 区别

作者QQ&#xff1a;1095737364 QQ群&#xff1a;123300273 欢迎加入&#xff01; 天天用,不知所以然: $.ajax({type: "post",url: url,dataType:html,success: function(data) { },complete: function(XMLHttpRequest, textStatus) { },error: function(){}}…

vscode如何设置回车自动换行缩进?

要解决这个问题&#xff0c;首先打开设置&#xff0c;查找tabsize&#xff0c;进入settings.json。 把"editor.autoIndent"的属性值改为false&#xff0c;即"editor.autoIndent": "false"&#xff0c;就可以了。

vue 过滤器使用的传参说明

在table中&#xff0c;需要对obj的数据类型进行文字转换&#xff0c;例如后台接口返回的姓别值&#xff1a;1&#xff0c;2。其中需要页面根据字典需要把1》男&#xff0c;2》女进行转换。 以前的习惯是每一个过滤方法都写一个方法进行转换&#xff0c;例如&#xff1a; 页面代…

leetcode 970. 强整数(Powerful Integers)

目录 题目描述&#xff1a;示例 1&#xff1a;示例 2&#xff1a;解法&#xff1a;题目描述&#xff1a; 给定两个正整数 x 和 y&#xff0c;如果某一整数等于 x^i y^j&#xff0c;其中整数 i > 0 且 j > 0&#xff0c;那么我们认为该整数是一个强整数。 返回值小于或等…

ruby sinatra mysql_一分钟开始持续集成之旅系列之:Ruby + Sinatra 应用

前言现代软件工程越来越复杂&#xff0c;而开发效率随着软件复杂度增加呈指数型下降。为在提高开发效率的同时也能保证质量&#xff0c;越来越多团队开始践行敏捷开发方法。持续集成是敏捷开发的重要实践之一。它倡导团队通过自动化构建工具频繁地验证软件可用性&#xff0c;从…

Java 8:在新的Nashorn JS引擎中编译Lambda表达式

在最近的一篇文章中&#xff0c;我了解了Java 8和Scala如何实现Lambda表达式。 众所周知&#xff0c;Java 8不仅引入了对Javac编译器的改进&#xff0c;而且还引入了全新的解决方案-Nashorn。 这个新引擎旨在替代Java现有JavaScript解释器Rhino。 这为我们带来了JVM的前列&…

vue 组件开发

作者QQ&#xff1a;1095737364 QQ群&#xff1a;123300273 欢迎加入&#xff01;1.新建路由:router-->index.js,修改成下面的代码 import Vue from vueimport Router from vue-routerimport index from /components/index/indexVue.use(Router)export default new Ro…

sql中有一些保留字,当你的字段名是它的保留字时,这个时候sql语句的字段不加``就会报错...

sql中有一些保留字&#xff0c;当你的字段名是它的保留字时&#xff0c;这个时候sql语句的字段不加就会报错转载于:https://www.cnblogs.com/w123w/p/10673692.html

C++语言实现-邻接表

图的邻接表实现 邻接表是图的一种链式存储结构。主要是应对于邻接矩阵在顶点多边少的时候&#xff0c;浪费空间的问题。它的方法就是声明两个结构。如下图所示&#xff1a; 先来看看伪代码&#xff1a; typedef char Vertextype; //表结点结构 struct ArcNode { int adjvex; …

为了适应云数据库mySQL产品_为了适应不同的应用场景,云数据库mysql版提供的产品系列包括哪些...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

TestNG:在一个测试类中使用@DataProvider依次运行测试

许多Java开发人员和自动化测试工程师在他们的工作中都使用TestNG作为测试框架。 我也不例外。 这是一个显而易见的选择&#xff0c;因为TestNG提供了非常强大的工具集&#xff0c;使处理各种测试变得更加容易。 为了证明这一点&#xff0c;我将在本文中向您展示如何解决一项不平…

mysql 数据库读取_教你如何从 MySQL 数据库读取数据

PHP MySQL 读取数据从 MySQL 数据库读取数据SELECT 语句用于从数据表中读取数据:SELECT column_name(s) FROM table_name我们可以使用 * 号来读取所有数据表中的字段&#xff1a;SELECT * FROM table_name如需学习更多关于 SQL 的知识&#xff0c;请访问我们的 SQL 教程。使用 …

GXC 钱包部署

参考: [ 官方 wiki ] 基于 Ubuntu 的 GXC 部署 基础环境 OS: Ubuntugxc: 官方 [ release 最新版本 ]下载 release 包(ubuntu) cd /usr/src wget https://github.com/gxchain/gxb-core/releases/download/v1.0.181106b/gxb_ubuntu_1.0.1801106.tar.gz 拷贝可执行命令到系统 /usr…

js-js的全局变量和局部变量

*** 全局变量&#xff1a;在script标签里面定义一个变量&#xff0c;这个变量在页面中js部分都可以使用   - 在方法外部使用&#xff0c;在方法内部使用&#xff0c;在另外一个script标签中使用 *** 局部变量&#xff1a;在方法内部定义一个变量&#xff0c;只能在方法内部调…

使用Lucene的新FreeTextSuggester查找长尾建议

Lucene的“ 建议”模块提供了许多有趣的自动建议实现&#xff0c;以便在用户将每个字符输入搜索框时为他们提供实时搜索建议。 例如&#xff0c; WFSTCompletionLookup将所有建议及其权重编译到一个紧凑的有限状态传感器中 &#xff0c;从而可以对基本建议进行快速前缀查找。 …

Java属性中指定Json的属性名称(序列化和反序列化)

序列化对象&#xff0c;只需要使用注解"JsonProperty(value "pwd")" import com.fasterxml.jackson.annotation.JsonProperty;public class User{JsonProperty(value "pwd")private String password; } 比如上面例子&#xff0c;在作为请求接…