问题标签 [vaadin8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
191 浏览

ajax - Vaadin:如何从生成的 HTML 表中进行自定义 ajax 调用?

我通过手动生成表格 HTML 并将其设置为 Vaadin Labelin ContentMode.HTML(不使用 Vaadin Table/ Grid)来呈现数据。

我想在每一行中生成一个链接或一个按钮,这将导致服务器调用相同的视图(并传递行项 ID)。

我有一个模糊的想法:为每个行项目生成一个隐藏的 Vaadin Button,并将其添加到我的表格 HTML 之外的某个位置到页面中。然后我希望有一些 Javascript 可以让我访问和触发那些隐藏的按钮。我可以在我的表格 HTML 中生成那个 Javascript 调用。

您认为这种方法可行吗?我将如何使用 Javascript 访问和触发那些隐藏的 Vaadin 按钮?

还是有更简单的方法(不诉诸使用Table/ Grid)?

编辑:也许这也适用于单个隐藏按钮。javascript 调用可能会在触发之前将 Button 标题设置为行 ID。

0 投票
2 回答
627 浏览

vaadin - Vaadin Designer:网格布局无法使用?

我发现 Vaadin Designer 中的网格布局非常有问题。

问:有人在用吗?你有什么建议给我吗?

背景:我正在将一个应用程序从 ASP.NET 移植到 Vaadin。在 Visual Studio 中通过 HTML 表格布局了大量的表单(参见屏幕截图)。

我面临的一些问题:

  • 在网格布局中移动标签和字段后,我突然在设计源中得到 colspan/rowspan,就像<column rowspan="7"></column>,当这种情况发生时,游戏结束了
  • 我无法插入或删除行或列
  • rowspan/colspan 属性在 Designer 属性中不可见
  • 我不能选择多个组件(因此不能批量更改属性,例如样式、宽度、高度等)
  • 我无法定义列宽和行高

在此处输入图像描述

0 投票
1 回答
30 浏览

java - AddColum 与嵌入对象(Vaadin 或只是 Java 技能)

我想用 addColumn 插入嵌入对象的属性(字符串)。

我的代码只是:

getProduct 返回一个 Product 实体,我想在其中使用 name 属性而不是 toString。

0 投票
1 回答
892 浏览

maven - 无法编译简单的 Vaadin 小部件集。

我创建了简单的 vaadin 应用程序并尝试创建我的 vaadin 小部件模块。文件小部件结构如下:

  • 客户
    • 测试连接器
    • 测试小部件
  • 测试
  • 小部件集.gwt.xml
  • MyUI //vaadin UI

此文件的内容如下:

1) 测试连接器

2) 测试小部件

3) 测试

4) WidgetSet.gwt.xml

5) 我的用户界面

当我尝试编译它时,我看到:

我不明白这个错误的原因,也不知道如何解决。为什么我的程序中需要 com.google.gwt.event.shared.EventHandler 和 com.google.gwt.event.shared.HasHandlers?

pom文件:

0 投票
2 回答
460 浏览

java - 默认情况下,在 Vaadin 8 网格中将我的 JavaBean 的所有属性添加为列?

Vaadin 8 Grid 中有没有办法自动将所有 JavaBean 模式属性显示为表中的列?并自动用属性名称标记每个列标题?

Vaadin 指南中此页面的Binding to Data部分中,我们看到了这段代码,我们必须在其中明确指定哪些属性用作网格中的列。

0 投票
1 回答
1627 浏览

vaadin8 - 如何过滤 Vaadin 8 Treegrid 中的项目?

我想TreeGrid根据(用户提供的)搜索短语和基于后端的(延迟加载)过滤 Vaadin 8 中的项目HierarchicalDataProvider

我找不到任何参考/示例如何实现此解决方案的过滤部分。我正在寻找这样做的正确方法。

0 投票
0 回答
134 浏览

java - 使用 FileOutputStream、Vaadin 8 和 Jetty 将文件导入本地主机时出现问题

基本上我一直在使用 Vaadin Designer 来设计我的 UI。我的一个用例要求我上传 iCalendar 文件,我使用语法 (ANTLR) 从中获取我需要的内容。在看到 Vaadin Upload 文档并在运行它时将其应用于我的用例后,我遇到了我的问题,什么都不会发生,也不会引发异常。经过一番研究和调试,我相信这是由于上传的线程由于某种原因被关闭。

这是我的代码,有帮助吗?

0 投票
1 回答
130 浏览

java - 自动装配的 vaadin 组件获取索引 -1

我使用vaadin-spring。我创建了public abstract class AbstractBasicVerticalLayoutWithMenu extends HorizontalLayout implements View两个普通类来扩展它。在抽象类 I @AutowireMenu 组件中定义:

@UIScope @SpringComponent public class Menu extends CssLayout

两个类都有注释

@UIScope @SpringView

我在其中一个视图中有一个非常奇怪的问题,即我的菜单组件没有显示。

我做了一些挖掘并添加了日志记录。上

@Override public void enter(ViewChangeEvent event)

方法我添加了日志记录并尝试了很多方法,我发现当我执行 this.getComponentIndex(menu)错误的视图组件时索引为-1!

有趣的是,如果我从导航器中删除正确显示的视图(我这样做了:),getNavigator().addView(FirstTesterView.VIEW_NAME, firstTesterView);那么这个不正确的视图就会恢复正确。

我不知道为什么,但看起来只有扩展 acstract 的实例化类中的第一个获得 @Autowired 组件,而不是下一个。

我做错了什么?

0 投票
1 回答
1595 浏览

java - Vaadin 8 Converter 的行为与 Vaadin 7 Converter 不同(不更新 UI)?

TL;DR:Vaadin 8 中是否有类似于 Vaadin 7 的转换器来更新 UI 中输入字段的表示?即在输入字段失去焦点后立即从用户输入中删除所有非数字,或者将小数转换为货币?

Vaadin 论坛链接: http://vaadin.com/forum#!/thread/ 15931682


我们目前正在将 Vaadin 7 项目迁移到 vaadin 8。

在我们的 Vaadin 7 应用程序中,我们有一些转换器。例如这个 CurrencyConverter:

当您使用此转换器加载页面时,初始值为null,它不会在 TextField 中显示任何内容。如果之前保存的初始值为"1234",它将显示€ 1.234,00在 TextField 中。这一切都很好。
如果您将此初始值更改为"987",则与转换器的绑定将在对象中保存“987”,并€ 987,00在您键入 TextField 后立即显示在 TextField 中。

在我们的 Vaadin 8 迁移中,我们将其更改为:

我希望与 Vaadin 7 中的行为相同,但它的行为如下:

当您使用此转换器加载页面时,初始值为null,它不会在 TextField 中显示任何内容。如果之前保存的初始值为"1234",它将显示€ 1.234,00在 TextField 中。这一切都很好。
如果您将此初始值更改为"987",则与转换器的绑定将在对象中保存“987”,并在您键入TextField 时立即显示€ 987,00在TextField 中。

它不会更新 TextField 中的值。它仍会显示987. 似乎 Vaadin 8 转换器仅用于通过绑定从用户输入到域模型,而不是更改已放入的内容。

另一个变化是转换器现在放在 Vaadin 8 中的 Binding 本身,而不是 Vaadin 7 中的 TextField。

这是一个 gif,其中包含 Vaadin 7 的行为/我在顶部输入字段中寻找的内容,以及底部输入字段中的当前 Vaadin 8 行为:

在此处输入图像描述


编辑:我们尝试过的一些事情:

我创建了一个只有一个 TextField、一个绑定和一个转换器的测试页:

这将€ 1.234,00最初显示,当您键入"987"时,它将写入987对象(但仍会显示987而不是€ 987,00)。

需要注意的一些事项:

  1. 如果我们piggyBank.setAmount(456);在第 1 行添加,它将€ 456,00最初显示在 UI 的 TextField 中。
  2. 如果我们piggyBank.setAmount(456);在第 2 行而不是第 1 行添加,它仍然会显示€ 1.234,00在 UI 的 TextField 中!所以转换器的convertToPresentation方法在binder.setBean(piggyBank).
  3. 如果我们piggyBank.setAmount(456);在第 1 行添加,并删除binder.setBean(piggyBank);它仍然显示€ 1.234,00而不是€ 456,00

我们已经能够找到一个丑陋的解决方法,如下所示:

如您所见,我们只是在每次输入字段值更改时读取 bean。通过此更改,值仍然正确保存到模型中,并且现在也触发了convertToPresentation转换器的方法,正确显示€ 987,00(尽管它仍然不正确地显示€ 1.234,00,而不是€ 456,00上面编号列表的情况 2 和 3)。

我们还尝试了内联 lambda 转换器而不是对象;尝试一些事情binder.forMemberField; 尝试一些事情binder.bindInstanceFields; 试图以某种方式检索设置的活页夹,这是不可能的;等等等等。我们尝试了各种方法,但 Vaadin 8 转换器无法像在 Vaadin 7 中那样工作,我们无法找到替代方案,甚至找不到合适的解决方法。


PiggyBank 代码可在评论中请求:

0 投票
2 回答
3026 浏览

java - Vaadin 8 中有什么东西取代了 BeanItemContainer 吗?

我从 GitHub ( https://github.com/vaadin-miki/vaadin-charts-video )下载了vaadin-charts-video示例项目的副本,以了解应该如何实现Vaadin 图表。然而,该项目以及我发现的大多数可用演示代码/项目似乎都是使用Vaadin 7和之前的编码约定编写的。我正在使用Vaadin 8.0.5(和 JDK8)...

运行 Maven 时出现这些错误:

谁能告诉我,BeanItemContainer 被替换了吗?如果是这样,通过什么?

例如,请参见https://github.com/vaadin-miki/vaadin-charts-video/blob/master/intro-video/src/main/java/org/vaadin/miki/charts/intro/IntroChartsUI的第 54 行.java BeanItemContainer<BookPrice> container = new BeanItemContainer<>(BookPrice.class, prices);

如果这似乎不是更有经验的眼睛的问题,请让我知道什么是......