构建基于Vaadin的应用程序的最佳方法是什么,以便我可以使用TDD(测试驱动开发)来创建应用程序?换句话说,我不想编写需要服务器或浏览器(甚至那些模拟器)的测试,因为那些可能太脆弱,太慢或两者兼而有之.
将GWT MVP模式转换为Vaadin的问题在某种程度上是相关的,因为我正在寻找用于使我的UI"逻辑"尽可能可测试的正确模式,但我不确定MVP是否转换为Vaadin的世界.
我正在尝试使用vaadin,并希望在我的vaading 7项目中使用甘特聊天加载项. https://vaadin.com/directory#addon/vaadin-gantt-diagram:vaadin
由于这与vaadin 7不兼容,我试图修复附加组件中的一些代码,使其与vaadin 7兼容.
我从可用的下载中检查了vaadin-6.8的源代码和vaadin-gantt(附加组件)的源代码.
我在vaadin-6.8中更改了代码并构建了一下.我在vaadin-gantt插件中使用这个定制的vaadin-6.8 jar.现在我可以使用自定义的vaadin-6.8 jar来构建vaadin-gantt附加组件.我想在vaadin-7项目中使用这个附加组件.
编译通过,但我在控制台上显示甘特图时低于消息
"Widgetset不包含ru.bazon.vaadin.ganttdiagram.canvas.GanttDiagramCanvas的实现.检查其组件连接器的@Connect映射,widgetsets GWT模块描述文件并重新编译您的widgetset.如果您下载了vaadin附加软件包,你可能想参考附加说明."
我使用eclipse插件编译了gantt widgetset,可以在我的项目*.gwt.xml文件中看到以下条目
我想使用vaadin-7的gannt图表附加组件.除了这与vaadin 7不兼容之外,我没有找到vaadin-7的任何其他附加组件.
任何指针?
此致,艾哈尔
我正在尝试使用Apache Shiro框架来保护我的Web应用程序(UI基于Vaadin 6).查看Shiro网站上的所有示例,并搜索了几个小时,但我找不到一个干净的方法来处理以下要求.
假设应用程序是一种项目管理工具,用户在其中创建属于公司层次结构中特定部门的活动.每个用户可以在多个部门工作,并且在每个部门中具有不同的安全角色.例:
Department A - User is 'Manager' here
Department B
Department C - User is 'Admin' here
Department D
用户是部门A中的"经理"用户是部门C中的"管理员"用户还应继承部门D(部门C的祖先)的"管理员"角色.
因此,基本权限检查(假设我想查看属于某个部门的活动)将是:
我目前只是理解如何实现"系统范围的角色",而不是"在这个特定部门中扮演角色"的概念.
如何将上面的示例转换为权限字符串,如"activity:view:123"?我将如何检查业务逻辑中的权限?
另一个疑问是与Shiro的实现,我想使用一些开箱即用的解决方案将提供我自己的实现的最小努力.但是,似乎Shiro的内置实现仅针对简单的情况而设计.是否有任何复杂授权实现的例子(可以涵盖上述情况)?
我想编写一个Web应用程序,触发用户的默认电子邮件客户端发送电子邮件.
因此,我创建了一个链接,它导致符合mailto URI方案的URL(http://en.wikipedia.org/wiki/Mailto):
Link emailLink = new Link("Send Email",
new ExternalResource("mailto:someone@example.com"));
Run Code Online (Sandbox Code Playgroud)
但是,我想提供一个允许触发相应功能的Button,而不是使用Link.但是,对于按钮,我无法设置要打开的ExternalResource.
有没有人知道为Buttons解决这个问题,或者如何创建一个看起来和行为完全像按钮的链接?我也尝试了一些CCS修改,但没有自己管理任务.我还为前Vaadin版本找到了一些解决方案(https://vaadin.com/forum/#!/thread/69989),但不幸的是,它们不适用于Vaadin 7.
在我的Vaadin应用程序的某个地方,只要我使用第二个浏览器进行连接,就会收到此异常
Caused by: java.lang.RuntimeException: A connector with id 22 is already registered!
at com.vaadin.ui.ConnectorTracker.registerConnector(ConnectorTracker.java:133)
它总是在同一个地方发生,但我不知道为什么这个原因必须在其他地方.
我想我可能会从其他会话中窃取UI组件 - 这不是我的意图.目前,我没有看到static我可能在多个会话中使用的任何UI组件实例.
我该怎么调试呢?这已成为一个相当大的项目.有什么要寻找的提示吗?
在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) Eclipse Vaadin插件具有很酷的autobuild功能.只需在调试控制台中单击"重新启动应用程序",即可获得最新的应用程序版本.
不幸的是,从vaadin eclipse插件生成的项目导入maven生成的vaadin项目(使用m2e)和复制粘贴.project buildCommands和natures不起作用.
我无法"在服务器上运行...",tomcat不会因为未知原因部署应用程序.我可以在wtpapps文件夹中看到应用程序,但它仍然没有部署.
我在这里经常有一些Vaadin代码阻塞,我不知道问题是什么:
Thread 7892: (state = IN_JAVA)
- java.util.HashMap.getEntry(java.lang.Object) @bci=61, line=349 (Compiled frame; information may be imprecise)
- java.util.HashMap.containsKey(java.lang.Object) @bci=2, line=335 (Compiled frame)
- java.util.HashSet.contains(java.lang.Object) @bci=5, line=184 (Compiled frame)
- com.vaadin.ui.Table.unregisterPropertiesAndComponents(java.util.HashSet, java.util.HashSet) @bci=85, line=1693 (Compiled frame)
- com.vaadin.ui.Table.refreshRenderedCells() @bci=992, line=1641 (Compiled frame)
- com.vaadin.ui.Table.valueChange(com.vaadin.data.Property$ValueChangeEvent) @bci=23, line=2897 (Compiled frame)
- com.vaadin.data.util.IndexedContainer.firePropertyValueChange(com.vaadin.data.util.IndexedContainer$IndexedContainerProperty) @bci=140, line=553 (Compiled frame)
- com.vaadin.data.util.IndexedContainer.access$1000(com.vaadin.data.util.IndexedContainer, com.vaadin.data.util.IndexedContainer$IndexedContainerProperty) @bci=2, line=64 (Compiled frame)
- com.vaadin.data.util.IndexedContainer$IndexedContainerProperty.setValue(java.lang.Object) @bci=202, line=915 (Compiled frame)
- com.aimprosoft.wavilon.backgroundthreads.ChangeCdrThread.insertNewPersonIntoTable(com.aimprosoft.wavilon.model.Person, com.vaadin.ui.HorizontalLayout, com.aimprosoft.wavilon.ui.menuitems.CallContent, com.vaadin.ui.Table) @bci=924, line=208 (Interpreted frame)
- com.aimprosoft.wavilon.backgroundthreads.ChangeCdrThread$RepaintTableThread.run() @bci=622, line=446 (Compiled …Run Code Online (Sandbox Code Playgroud) 是否可以org.springframework.data.jpa.repository.JpaRepository像JPAContainerVaadin 一样使用存储库?
我们正在从Spring开始设立一个新的Vaadin 7项目.
Spring集成是使用Spring Vaadin Integration Addon完成的.