1

我正在从版本更新vaadin 6vaadin 7. 在该vaadin 7版本中,很大程度上使用了ApplicationConnection 类中的getPaintable()方法。然而它在vaadin 7. 在查看了api官方教程后,我没有发现并理解它是用什么方法或方法组合替换的。例如,如果我想这样做:

ComponentConnector paintable = this.client.getPaintable(uidl);

如何使用 excusively 执行上述语句vaadin 7 (not deprecated) api

更新:

答案证明我怀疑 应该改用ApplicationConnection getConnector(java.lang.String connectorId, int connectorType)connectorType中的方法,但它仍然缺失,什么是 int 类型以及如何获取它。有什么建议吗?

更新 2:

答案中建议的替换似乎是合理的,它可能会起作用,但我担心的是:我们应该在 vaadin 7 中普遍使用 UIDL 类吗?我的印象是updateFromUIDL(UIDL uidl, ApplicationConnection client)不应该在 vaadin 7 中调用该方法。我们如何获取uidl.getId(), uidl.getTag(). 我也认为uidl.getId()应该用AbstractConnector getConnectorId()中的方法代替。我对吗?

4

1 回答 1

1

更新:

查看已弃用的 getPaintable 方法的实现后,您应该可以将其替换为

ComponentConnector paintable = (ComponentConnector) getConnector(uidl.getId(),
            Integer.parseInt(uidl.getTag()));

但不要忘记,这可能只是一个中间步骤。Vaadin 7 更改了小部件的客户端-服务器交互的一般机制

带有 UIDL、paintContent() 和 changeVariables() 的旧机制仍然存在一段时间以简化迁移,但建议将您的组件更新为新机制,这也往往会导致代码更简洁。使用旧机制需要实现 LegacyComponent。

如果您将Vaadin 6Vaadin 7的集成图进行比较,您将看到总体集成机制发生了怎样的变化。

原答案:

Vaadin 开发票:弃用 ApplicationConnection.getPaintable(UIDL)

描述:

来自 getPaintable(UIDL) 的功能应该移到 getPaintable(String paintableId) 并且 getPaintable(UIDL) 应该被弃用

更改日志:

#8439 弃用 ApplicationConnect.getPaintable(UIDL) 并添加 getConnector(String id, String connectorType) 代替

于 2013-09-12T12:31:09.963 回答