问题标签 [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.
ajax - Vaadin:如何从生成的 HTML 表中进行自定义 ajax 调用?
我通过手动生成表格 HTML 并将其设置为 Vaadin Label
in ContentMode.HTML
(不使用 Vaadin Table
/ Grid
)来呈现数据。
我想在每一行中生成一个链接或一个按钮,这将导致服务器调用相同的视图(并传递行项 ID)。
我有一个模糊的想法:为每个行项目生成一个隐藏的 Vaadin Button
,并将其添加到我的表格 HTML 之外的某个位置到页面中。然后我希望有一些 Javascript 可以让我访问和触发那些隐藏的按钮。我可以在我的表格 HTML 中生成那个 Javascript 调用。
您认为这种方法可行吗?我将如何使用 Javascript 访问和触发那些隐藏的 Vaadin 按钮?
还是有更简单的方法(不诉诸使用Table
/ Grid
)?
编辑:也许这也适用于单个隐藏按钮。javascript 调用可能会在触发之前将 Button 标题设置为行 ID。
vaadin - Vaadin Designer:网格布局无法使用?
我发现 Vaadin Designer 中的网格布局非常有问题。
问:有人在用吗?你有什么建议给我吗?
背景:我正在将一个应用程序从 ASP.NET 移植到 Vaadin。在 Visual Studio 中通过 HTML 表格布局了大量的表单(参见屏幕截图)。
我面临的一些问题:
- 在网格布局中移动标签和字段后,我突然在设计源中得到 colspan/rowspan,就像
<column rowspan="7"></column>
,当这种情况发生时,游戏结束了 - 我无法插入或删除行或列
- rowspan/colspan 属性在 Designer 属性中不可见
- 我不能选择多个组件(因此不能批量更改属性,例如样式、宽度、高度等)
- 我无法定义列宽和行高
java - AddColum 与嵌入对象(Vaadin 或只是 Java 技能)
我想用 addColumn 插入嵌入对象的属性(字符串)。
我的代码只是:
getProduct 返回一个 Product 实体,我想在其中使用 name 属性而不是 toString。
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文件:
java - 默认情况下,在 Vaadin 8 网格中将我的 JavaBean 的所有属性添加为列?
Vaadin 8 Grid 中有没有办法自动将所有 JavaBean 模式属性显示为表中的列?并自动用属性名称标记每个列标题?
在Vaadin 指南中此页面的Binding to Data部分中,我们看到了这段代码,我们必须在其中明确指定哪些属性用作网格中的列。
vaadin8 - 如何过滤 Vaadin 8 Treegrid 中的项目?
我想TreeGrid
根据(用户提供的)搜索短语和基于后端的(延迟加载)过滤 Vaadin 8 中的项目HierarchicalDataProvider
。
我找不到任何参考/示例如何实现此解决方案的过滤部分。我正在寻找这样做的正确方法。
java - 使用 FileOutputStream、Vaadin 8 和 Jetty 将文件导入本地主机时出现问题
基本上我一直在使用 Vaadin Designer 来设计我的 UI。我的一个用例要求我上传 iCalendar 文件,我使用语法 (ANTLR) 从中获取我需要的内容。在看到 Vaadin Upload 文档并在运行它时将其应用于我的用例后,我遇到了我的问题,什么都不会发生,也不会引发异常。经过一番研究和调试,我相信这是由于上传的线程由于某种原因被关闭。
这是我的代码,有帮助吗?
java - 自动装配的 vaadin 组件获取索引 -1
我使用vaadin-spring。我创建了public abstract class AbstractBasicVerticalLayoutWithMenu extends HorizontalLayout implements View
两个普通类来扩展它。在抽象类 I @Autowire
Menu 组件中定义:
@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 组件,而不是下一个。
我做错了什么?
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
)。
需要注意的一些事项:
- 如果我们
piggyBank.setAmount(456);
在第 1 行添加,它将€ 456,00
最初显示在 UI 的 TextField 中。 - 如果我们
piggyBank.setAmount(456);
在第 2 行而不是第 1 行添加,它仍然会显示€ 1.234,00
在 UI 的 TextField 中!所以转换器的convertToPresentation
方法在binder.setBean(piggyBank)
. - 如果我们
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 代码可在评论中请求:
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);
如果这似乎不是更有经验的眼睛的问题,请让我知道什么是......