Tag: vaadin

Vaadin:如何使validation器只接受数字和一位小数

我正在尝试validation文本字段只有数字和一个小数,但小数值会导致validation器关闭: TextField tf = new TextField(); tf.addValidator(new RegexpValidator(“^\\d+$”, facilityId.getCaption() + “Only numbers and one decimal allowed.”)); 所以我得到了数字,但我如何告诉validation者“。” 没关系? 注意: Add-Ons不是一个选项。

Vaadin – 如何从单个按钮打开BrowserWindowOpener

在如何打印动态生成的PDF的Vaadin示例中,他们有两步法,首先单击OkButton然后单击PrintButton 。 问题是他们打开PDF的代码依赖于创建一个新的BrowserWindowOpener ,然后在ClickListener为OKButton扩展Print按钮。 换句话说,他们有: okButton.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { // Dynamically generate PDF – this is greatly simplified. StreamResource pdfResource = new PdfStreamResource(); BrowserWindowOpener opener = new BrowserWindowOpener(pdfResource); opener.extend(printButton); } } 这很好,因为Print按钮现在链接到BrowserWindowOpener并在您单击PrintButton时立即打开窗口/选项卡。 我遇到的问题是我不想要OkButton ,我只想要一个PrintButton 。 在这种情况下,我无法添加 printButton.addClickListener(new ClickListener() { @Override public void buttonClick(ClickEvent event) { // Dynamically generate PDF – […]

Vaadin Grid标题单元格的描述工具提示

我想定义Grid头单元格的描述,类似于AbstractComponent.setDescription(String description)工作方式(即鼠标hover时显示的工具提示)。 由于Grid本身不支持这一点,我尝试在标题单元格中添加Label组件,然后在标签上使用setDescription() 。 我可以让信息工具提示像这样工作,但缺点是单击标签组件不会触发排序。 如果我想对列进行排序,我需要单击标签组件右边缘和列边框之间的非常狭窄区域上的标题单元格,其中将显示排序指示符。 如果您查看下面的屏幕截图,突出显示的区域是标签组件,为了触发排序,用户需要单击组件右侧的空间。 是否有更好的方法将描述应用于标题单元格而不是我描述的方法? 如果没有,当标题单元格包含组件时,有没有办法使排序正常工作?

Vaadin的原生地点选择

我正在使用Vaadin 。 我想使用Native Select在区域设置之间切换。 @Override public void valueChange(ValueChangeEvent event) { UI.getCurrent().setLocale(loc); } 我想使用event.getProperty()但“loc”必须是Locale类型。 如何获得原生选择的值并将其转换为Locale类型?

Vaadin网格 – 使用延迟加载进行过滤

我有vaadin网格,它很好,它从框中加载了懒惰的数据。 但由于某些原因,我有自定义filter,我通过它使用 CallbackDataProvider dataProvider.fetch(Query query) 查询对象具有按部分加载的参数( offset和limit ),因此我需要动态设置它(?)并以某种方式监听网格滚动事件以在用户向下滚动时加载下一部分数据(?) Grid.dataComunicator具有字段Range pushRows但没有公共方法来获取它。 我所拥有的只是延迟加载的网格,没有过滤数据或带有过滤数据的急切加载网格。 那么,有没有办法在vaadin网格元素中实现延迟加载的过滤数据?

Vaadin网格表:如何为某些列绘制边框?

我正在使用Vaadins网格表进行数据表示。 因此,我想为Employee -ID-column的右边框以及name或name和surname列的两个边框绘制一条粗线。 结果应如下所示: 我该如何管理呢?

如何防止Eclipse + Tomcat运行当前类而不是项目(Vaadin)

这可能certificate是一个简单的配置更改,但我似乎无法找到解决以下问题的明显设置: 我在Eclipse中有一个Vaadin项目,它配置为使用Tomcat v6进行调试。 如果我在项目浏览器中选择项目的顶部并点击调试,则会启动eclipse浏览器,并使用以下URL打开我的Web应用程序: http://localhost:8080/MyVaadinProject/ THIS WORKS 但是,如果我正在查看java文件(比如Myproject.java),Eclipse会尝试在此URL上打开java文件: http://localhost:8080/MyVaadinProject/WEB-INF/classes/com/example/myproject/Myproject.java 当然,这会产生404。 每次我想调试时必须取消选择/关闭我的java文件是非常繁琐的。 有没有办法在eclipse中防止这种行为? 我在OSX Lion上,Eclipse版本3.7.2。 谢谢!

如何在vaadin中点击链接设置值

我是vaadin的新手。 我有一个像链接 链接链接=新链接(“”,新的ExternalResource(redirectURL)); 我的要求是,我必须在用户点击链接时设置值。 用户单击链接时是否可以添加侦听器。 或者,如果单击链接,是否有其他设置值的方法。

无论我尝试什么,Vaadin Table都不会更新

我使用Vaadin(6.7.4),这个表(它在模态窗口上)不更新视图。 首先它是使用生成的列创建的,但我读到它有表更新的问题,所以我切换回普通表,但仍然没有刷新。 通过面板上的按钮单击事件调用Updatedata final Table table = new Table(); final IndexedContainer ic=new IndexedContainer(); public createTable(){ table.setImmediate(true); table.setEnabled(true); ic.addContainerProperty(“Name”, String.class, null); ic.addContainerProperty(“Edit”, Button.class, null); ic.addContainerProperty(“Delete”, Button.class, null); table.setContainerDataSource(ic); } public void addItems(Table table) { for (String s : createdNames) { ic.addItem(s); ic.getItem(s).getItemProperty(“Name”).setValue(s); ic.getItem(s).getItemProperty(“Edit”).setValue(“Edit”); ic.getItem(s).getItemProperty(“Delete”).setValue(“Delete”); } } public void updateData() { IndexedContainer c=(IndexedContainer) table.getContainerDataSource(); c.removeAllItems(); c.addItem(“myname”); c.getContainerProperty(“myname”, […]

基于内容的Vaadin 10网格样式个别行

我正在使用Vaadin网格显示传入信息并实时更新。 我已经能够通过访问DOM来设置所有行的样式,如下所示: [part=”row”] { height: 27px; font-size: 14px; max-height: 27px; } 我想要做的是根据行数据的内容为特定行设置特定样式。 基本上我有一列布尔值,如果它是真的,我希望行有一个绿色背景,如果它是假的,我希望该行有一个红色背景。 现在确定我将如何在我的Java代码或我的shared-styles.html执行此shared-styles.html 。 非常感谢! 我已经看到这个示例用于基于条件以编程方式设置列,但不是行。 Grid grid = new Grid(); grid.setItems(people); grid.addColumn(new ComponentRenderer(person -> { if (person.getGender() == Gender.MALE) { return new Icon(VaadinIcons.MALE); } else { return new Icon(VaadinIcons.FEMALE); } })).setHeader(“Gender”);