瓦丁8刚刚出来.在网格过滤器的文档中添加从来没有,我只找到一个可行的解决方案在这里的计算器.
HeaderCell cell = filterRow.getCell(pid);
// Have an input field to use for filter
TextField filterField = new TextField();
filterField.setColumns(0);
filterField.setHeight("23");
// Update filter When the filter input is changed
filterField.addTextChangeListener(change -> {
// Can't modify filters so need to replace
b.removeContainerFilters(pid);
// (Re)create the filter if necessary
if (! change.getText().isEmpty())
b.addContainerFilter(
new SimpleStringFilter(pid,
change.getText(), true, false));
});
cell.setComponent(filterField);
Run Code Online (Sandbox Code Playgroud)
但是现在自更新以来,此解决方案不再有效,因为SimpleStringFilter在新网格中不再可用,并且BeanItemContainer不再被识别,只允许setItems()填充网格数据.
任何人都可以帮我更新Vaadin 8的代码吗?
我想根据单元格的值更改Vaadin网格行的颜色.我尝试了如下,但没有奏效.
SCSS
@import "mytheme.scss";
@import "addons.scss";
// This file prefixes all rules with the theme name to avoid causing conflicts with other themes.
// The actual styles should be defined in mytheme.scss
.mytheme {
@include addons;
@include mytheme;
.v-grid-row.error_row {
// Tried following elements and didn't work.
// background-color: red !important;
// color: blue !important; // This changed the color of the font.
background: green !important;
}
}
Run Code Online (Sandbox Code Playgroud)
Java代码
grid.setStyleGenerator(t -> {
if (t.getLogLevel().trim().equals(ERROR) || t.getLogLevel().trim().equals(WARN)) {
return "error_row";
} …Run Code Online (Sandbox Code Playgroud) 我是Java开发人员,我将开始新项目.我的客户端开发技能非常有限,这就是为什么我真的很喜欢Vaadin框架的想法.我已经评估了Vaadin 10 Bakery App Starter应用程序https://vaadin.com/start#vaadin10,并且为了使这个应用程序启动并运行而自定义的HTML/CSS/JavaScript数量让我感到惊讶.现在我真的很困惑,不明白它如何简化开发人员的生活.
我现在可以作为项目启动器使用的唯一应用程序是着名的QuickTickets Dashboard https://demo.vaadin.com/dashboard/,其中所有UI都是纯Java实现的.目前最大的问题是这个应用程序是在Vaadin 8上实现的,我无法为Vaadin 10找到它的版本.你有类似Vaadin 10的东西吗?如果不是,您是否有从Vaadin 8到Vaadin 10的迁移指南,我可以使用它来尝试将此应用程序移植到Vaadin 10?
在Vaadin 7中有一个addValidator函数,但在Vaadin 8中它不存在.
Vaadin 7示例:
TextField user = new TextField("User:");
user.setRequired(true);
user.setInputPrompt("Your username");
user.addValidator(new NullValidator("Username can't be empty", false));
user.setInvalidAllowed(false);
Run Code Online (Sandbox Code Playgroud) 使用vaadin push的Spring-Boot,Vaadin 8应用程序
@Push(transport = Transport.WEBSOCKET_XHR)
Run Code Online (Sandbox Code Playgroud)
如果应用程序在没有任何暂停的情况下获得用户操 没有任何用户请求/操作的几秒钟在控制台上出现以下错误.这使我们的错误日志文件涂鸦.先感谢您.
Spring-boot,vaadin 8,Nginx,Plesk onyx,ubuntu 16,let-encrypt
java.io.IOException: Unable to unwrap data, invalid status [CLOSED]
at org.apache.tomcat.util.net.SecureNioChannel.read(SecureNioChannel.java:604)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1240)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.fillReadBuffer(NioEndpoint.java:1213)
at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read(NioEndpoint.java:1186)
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:72)
at org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
at org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
at org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Run Code Online (Sandbox Code Playgroud)
nginx配置:
location / {
proxy_pass https://ip:port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Accel-Internal /internal-nginx-static-location;
access_log off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; …Run Code Online (Sandbox Code Playgroud) 使用Vaadin 8 @PropertyId注释Binder::bindInstanceFields肯定比为每个字段属性绑定编写一行代码更短更甜.
Person person; // `name` is String, `yearOfBirth` is Integer.
…
@PropertyId ( "name" )
final TextField nameField = new TextField ( "Full name:" ); // Bean property.
@PropertyId ( "yearOfBirth" )
final TextField yearOfBirthField = new TextField ( "Year of Birth:" ); // Bean property.
…
// Binding
Binder < Person > binder = new Binder <> ( Person.class );
binder.bindInstanceFields ( this );
binder.setBean ( person );
Run Code Online (Sandbox Code Playgroud)
但是我们得到一个异常抛出,因为yearOfBirth属性是一个整数,这种简单的绑定方法缺少转换器.
严重:
java.lang.IllegalStateException:属性类型'java.lang.Integer'与字段类型'java.lang.String'不匹配.应使用转换器手动配置绑定. …
我有一个Image组件,我想定义500px到500px的大小.我的问题是我的图像不是正方形,但我想在将StreamResource推送到我的图像组件时保持纵横比.除了手动调整图像大小外,我该怎么做?换句话说,Image组件中是否有某些东西允许我自动重新调整图像大小而不强制它成为正方形?
我的 Vaadin 8 应用程序中有一个网格,有时网格的滚动条在不需要时出现或在不需要时消失。他们甚至可能陷入循环。我的网格有五列,我只使用 Vaadin 8 附带的内置渲染器。
我使用 CSS 将第一列的列宽设置为 30%。如果我从主题中删除该行,则不会出现问题,但我需要它。我怎样才能让它工作?
我正在开发一个Vaadin 8用户界面.目前,每次修改UI时,我都必须重新启动我的应用程序.
有没有更好的办法?我尝试连接Java调试器并使用IntelliJ的Reload Changed Classes功能,但是hotswap失败了.
我在Vaadin的背景下看到了JRebel的提及,但我承担不起 - Spring Loaded似乎是另一种选择.还有别的事吗?
我需要测试Vaadin应用程序,有时会显示有关通信问题的弹出窗口。
这似乎是赛普拉斯的错误报告,因为它与Vaadin模板一起显示,因此,发现女巫正在创建弹出窗口有点让人困惑(因为“不要获取任何未保存的数据.....”是一个vaadin典型消息)。
显示此弹出窗口后,我们将无法再次运行任何测试。
我以前从未见过此弹出窗口,只有当我们使用赛普拉斯时才看到。我知道赛普拉斯将充当MITM来模拟服务器回复,但是在我的情况下,我不需要此机制,是否可以将赛普拉斯配置为不尝试覆盖此通信,从而不会显示此弹出窗口?
还是需要进行一些更改才能使其正常工作?
vaadin8 ×10
vaadin ×9
java ×6
css ×1
cypress ×1
data-binding ×1
grid ×1
jrebel ×1
lets-encrypt ×1
nginx ×1
sass ×1
spring-boot ×1
vaadin-flow ×1
vaadin-grid ×1
vaadin10 ×1