Vaadin提示:以声明方式构建UI

如果您使用了GWT,那么您可能会发现UiBinder对于设计复杂的UI很有用。 在有关Vaadin的系列文章中,我们希望在Vaadin和GWT之间得出相似之处。 Vaadin提供了多种开箱即用的工具和组件,用于构建复杂且美观的UI。 其中之一是可以像UiBinder那样声明性地构建UI。 与GWT相比,Vaadin提供了直接使用.html文件的可能性。

编程方式

与GWT中一样,Vaadin UI也可以通过编程方式构建。 例如,假设我们要构建一个简单的表单以将任务添加到待办事项列表。 以编程方式执行此操作的一种方法:

public class MainUI extends UI {@Override
protected void init(VaadinRequest request) {
// TODO Auto-generated method stub
FormLayout layout = new FormLayout();
TextField taskTitle = new TextField();
taskTitle.setCaption("Title");
taskTitle.setIcon(VaadinIcons.CHEVRON_DOWN);
TextArea taskDescription = new TextArea();
taskDescription.setCaption("Description");
taskDescription.setIcon(VaadinIcons.LINES);
DateField taskDate = new DateField();
taskDate.setCaption("Date");Button button = new Button("Add");
button.setIcon(VaadinIcons.PLUS);layout.addComponent(taskTitle);
layout.addComponent(taskDescription);
layout.addComponent(taskDate);
layout.addComponent(button);
setContent(layout);
}}

结果:

声明方式

如果用户界面很复杂且具有嵌套组件,则声明方法可能会很有用。 Vaadin开发了可以绑定到Java组件HTML自定义元素。 自定义元素以vaadin-开头。 元素的其余名称可以通过分隔单词并使其小写而从java类中提取,如Vaadin的网站中所述。 以声明的方式创建UI的第一步是创建html文件,我们将其命名为Form.html:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="vaadin-version" content="8.0.5">
</head>
<body>
<vaadin-form-layout>
<vaadin-text-field icon="fonticon://Vaadin-Icons/e7ce" caption="Task Name" _id="todoTitle">
</vaadin-text-field>
<vaadin-text-area icon="fonticon://Vaadin-Icons/e7ef" _id="todoDescription">
</vaadin-text-area>
<vaadin-date-time-field caption="Date" _id="todoDate">
</vaadin-date-time-field>
<vaadin-button icon="fonticon://Vaadin-Icons/e801"_id="todoButton">
Add
</vaadin-button>
</vaadin-form-layout>
</body>
</html>

第二步是创建将绑定到此文件的java类。

@DesignRoot
public class Form extends FormLayout {public Form() {Design.read("Form.html", this);}
}

现在我们可以将其用作UI类中的常规组件:

public class MainUI extends UI {@Override
protected void init(VaadinRequest request) {
setContent(new Form());
}}

要将.html的字段绑定到java类中的字段,需要设置_id属性。 例如,绑定我们的文本框:

<vaadin-text-field icon="fonticon://Vaadin-Icons/e7ce" caption="Task Name" _id="todoTitle">
</vaadin-text-field>

然后我们可以将其添加到java文件中,它将被自动绑定:

@DesignRoot
public class Form extends FormLayout {TextField todoTitle;public Form() {Design.read("Form.html", this);//we can directly use it without initialization}
}

Vaadin还提供用于交互设计UI的有趣工具: Vaadin Designer 。 Vaadin Designer允许使用鼠标和拖放来设计UI。 我们仅将此工具用于演示目的,因此我们无法真正对其进行评估。 Vaadin-Designer可以通过减少构建UI的时间和处理“样板”部分来帮助提高生产率。 不幸的是,Vaadin Designer不是免费的,其增值取决于一个项目到另一个项目。

带走

以编程方式设计UI并不总是很方便。 Vaading有一种有趣的方法以声明方式构建UI。 HTML自定义元素提供了一种直接将.html文件链接到Java的方法。 也许这是GWT开发人员探索的道路,因为UiBinder将在下一个3.0版本中删除。

翻译自: https://www.javacodegeeks.com/2017/07/vaadin-tip-building-uis-declaratively.html

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

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

相关文章

奇怪的道路

DeepinC的题解 考场AC nb%%%%%%%%%%%%%%%%%% 2019/4/27Day1 T3 奇怪的道路step1&#xff1a;复杂度分析1< n < 30, 0 < m < 30, 1 < K < 8.按照习惯&#xff0c;正解复杂度一般在1e6-1e8级别而且往往复杂度关系最大的就是最小的那个数对&#xff0c;抓住那个…

江苏省专转本计算机题知识点,江苏专转本计算机真题17

61、在Word 2003中&#xff0c;下列关于查找操作的叙述&#xff0c;正确的是 。A、使用查找命令时&#xff0c;可以区分全角和半角字符&#xff0c;但不能区分大小写B、不支持用通配符来描述查找内容C、查找时只能从文档开始处进行D、除了可以按文字的内容进行查找&#xff0c;…

圣杯布局总结

1.左侧定宽,右侧自适应布局 html部分 <div class"parent"><div class"layout_left">左边宽度固定</div><div class"layout_main">主内容宽度自适应</div> </div>  css部分 <style>*{margin:0;paddin…

数据包捕获计算机网络实训,计算机网络-使用网络协议分析器捕捉和分析协议数据包...

广州大学学生实验报告开课学院及实验室&#xff1a;计算机科学与工程实验室2014年11月28日一、实验目的(1)熟悉ethereal的使用(2)验证各种协议数据包格式(3)学会捕捉并分析各种数据包。二、实验环境1&#xff0e;MacBook Pro2&#xff0e;Mac OS 10.10.13..Wireshark三、实验内…

背压加载文件– RxJava常见问题解答

事实证明&#xff0c;将文件作为流进行处理非常有效且方便。 许多人似乎忘记了&#xff0c;自Java 8&#xff08;3年多&#xff01;&#xff09;以来&#xff0c;我们可以很容易地将任何文件变成一行代码&#xff1a; String filePath "foobar.txt"; try (Buffered…

CISCN final 几道web题总结

因为都有源码&#xff0c;所以这里直接从源码开始分析&#xff1a; 1.Easy web 这道题本来的意思应该是通过注入来load_file读取config.php来泄露cookie的加密密钥&#xff0c;从而伪造身份进行登陆再上传shell 这里本来addslashes以后就基本没法注入&#xff0c;但是这里却多了…

初一计算机下册理论知识,初中信息技术七年级下册(第七版)

内容简介暂无内容目录1  计算机图片与动画 ……………………………………………11.1  图片处理 ……………………………………………………11.1.1  活动 …………………………………………………………1活动1  制作校园风景人物画册 …………………………………1活动2  制…

南邮计算机学院是211,南京邮电大学是211还是985

南京邮电大学曾经是双非高校&#xff0c;目前进入了世界学科建设高校。而南京农业大学是211工程大学&#xff0c;现在也是世界学科建设高校。从学校的牌子上来看&#xff0c;南京农业大学要更具有影响力。而我们今天要和大家分享的是南京邮电大学&#xff0c;那问题来了南京邮电…

java 运行 .jar 文件乱码

http://yang3wei.github.io/blog/2013/02/10/java-dfile-dot-encoding-equals-utf-8-gan-diao-luan-ma/ 启动时加参数-Dfile.encodingUTF-8转载于:https://www.cnblogs.com/easyc/p/6385385.html

php cdi_涉及CDI和JSF的过期对话的定制错误页面

php cdi自上次写博客以来已经有一段时间了。 我一直在想写一些技术博客&#xff0c;但最终却忙于其他事情。 上周&#xff0c;在Coderanch论坛上进行了非常有趣的讨论。 甚至更有趣&#xff0c;因为它涉及JBoss。 熟悉Java EE Web应用程序的开发人员会知道&#xff0c;Web应用…

石家庄计算机职业学院张秋玉,九龙坡有什么大学

2019九龙坡有哪些大学&#xff1f;九龙坡所有大学名单【教育部最新8所】九龙坡有哪些大学是广大考生和家长朋友们比较关心的&#xff0c;以下是教育部最新公布的九龙坡所有大学名单&#xff0c;包含一本、二本、三本和大专总共8所大学&#xff0c;仅供参考。2019九龙坡大学名单…

struts2.3.4 问题

原问题为&#xff1a;严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 详细请参见http://q.cnblogs.com/q/38309/ 刚开始以为是struts2.3.4的问题&#xff0c;但最终发现为…

Java虚拟机(JVM)简介

什么是JVM Java虚拟机&#xff08;JVM&#xff09;是使计算机能够运行Java程序的抽象计算机。 JVM有三个概念&#xff1a; 1.规格 2.实施 3.实例。 该规范是正式描述JVM实现要求的文档。 具有单一规范可确保所有实现都可互操作。 JVM实现是满足JVM规范要求的计算机程序。 …

武汉数字工程研究所计算机软件分数,武汉数字工程研究所2017考研成绩查询时间:2月16日...

2017考研复试调剂群 460216643一、成绩公布湖北省2017年全国硕士研究生招生考试成绩由各招生单位公布&#xff0c;湖北省教育考试院于2017年2月16日在官网上公布统考科目成绩。武汉数字工程研究所2017考研成绩查询时间&#xff1a;2月16日二、成绩复核考生如对成绩有异议&#…

符号英语

plus 加号&#xff1b;正号 -  minus 减号&#xff1b;负号  plus or minus 正负号  is multiplied by 乘号  is divided by 除号 &#xff1d; is equal to 等于号 ≠ is not equal to 不等于号 ≡ is equivalent to 全等于号 ≌ …

408计算机考研大纲 doc,2020计算机专业408基础综合考研大纲

研究生考试信息&#xff0c;欢迎访问北京研究生招生信息网。考试大纲是我们每个考研的学生所强烈关注的&#xff0c;因为考试大纲里所公布的内容&#xff0c;是我们复习过程中必须掌握的。随着考研大军逐年壮大&#xff0c;竞争力越来越强。我们可以发现&#xff0c;虽然几乎每…

兰花三七

中文名称&#xff1a;兰花三七 拉丁学名&#xff1a;Liriope cymbidiomorpha (ined) 别称&#xff1a;小叶麦冬 科目&#xff1a;百合科、植物界 生长环境&#xff1a; 耐寒、耐热性均好&#xff0c;可生长于微碱性土壤&#xff0c;对光照适应性强。 主要价值&#xff1a; 夏季…

play!框架_在Play上使用twitter4j! 框架和安全社交很容易

play!框架在昨天的个人黑客马拉松期间&#xff0c;我启动了一个项目&#xff0c;我可能会在这里介绍。 但是&#xff0c;最酷的启示是&#xff08;再次&#xff09;启动和运行起来有多么容易。 创建一个新的Play项目 添加Secure Social并为Twitter配置它&#xff0c;并使用示…

目前个人计算机使用的电子电路主要是,计算机基础知识理论题库.xls

文档介绍&#xff1a;计算机基础知识理论题库_题源章题目 ABCD答案提示 2007ZN MK1 对两个二进制数 1与1分别进行算术加、逻辑加运算,其结果用二进制形式分别表示为________ 。1、 101、1 10、1 10、 10 C 2007 秋 JYBD 1 移动通信系统中关于移动台的叙述正确的是_____ 。移动台…

消失之物

几种方法 容斥&#xff0c;时间二分&#xff0c;dp数据结构强艹&#xff0c;主席树 不要拘泥自己思路&#xff0c;思路放开其实不难 主要讲容斥和时间二分 容斥&#xff08;其实不是容斥&#xff0c;只是类似于容斥&#xff09; 我们算出来总值&#xff0c;然后减去当前贡献即可…