我正在进行从版本vaadin 6到vaadin 7的项目更新。在vaadin 7版本中,在很大程度上使用了类ApplicationConnection中的方法getPaintable()。然而,它在vaadin 7中是不可取的。在检查了api和官方教程之后,我还没有被替换的方法或方法组合所检测和理解。例如,如果我想要这样做:
ComponentConnector paintable = this.client.getPaintable(uidl);如何使用强制的vaadin 7 (not deprecated) api来排除上述语句?
更新:
答案证明了我的怀疑,应该使用ApplicationConnection getConnector(java.lang.String connectorId,int connectorType)中的方法,但是它仍然缺少,int类型的connectorType是什么,以及如何获得它。有什么建议吗?
更新2:
答案中建议的替换似乎是合理的,而且可能有效,但我担心的是:我们应该在vaadin 7中使用通用的UIDL类吗?我的印象是,方法updateFromUIDL(UIDL uidl, ApplicationConnection client)不应该在vaadin 7中被调用。我们如何才能得到uidl.getId(),uidl.getTag()。我还认为uidl.getId()应该被AbstractConnector getConnectorId()中的方法所取代。我说的对吗?
发布于 2013-09-12 12:31:09
更新:
在查看了不推荐的getPaintable方法的实现之后,您应该能够用
ComponentConnector paintable = (ComponentConnector) getConnector(uidl.getId(),
Integer.parseInt(uidl.getTag()));但请不要忘记,这可能只是一个中间步骤。
使用UIDL、paintContent()和changeVariables()的旧机制仍然存在一段时间,以简化迁移,但建议将组件更新到新机制,这也会导致代码更加简洁。使用旧的机制需要实现LegacyComponent。
如果您将瓦丁6的集成图与瓦丁7进行比较,您将看到通用集成机制是如何改变的。
原始答案:
Vaadin票证:废弃的ApplicationConnection.getPaintable(UIDL)
描述:
应该将getPaintable(UIDL)的功能移到getPaintable(String paintableId),而getPaintable(UIDL)应该被废弃。
变更日志:
#8439废弃的ApplicationConnect.getPaintable(UIDL)并添加了getConnector(String id,String connectorType)
https://stackoverflow.com/questions/18763868
复制相似问题