gpt4 book ai didi

widget - VAADIN 客户端组件逻辑

转载 作者:行者123 更新时间:2023-12-02 08:10:08 25 4
gpt4 key购买 nike

我在我的简单应用程序中使用 VAADIN 框架。我有 2 个自定义组件,例如

@ClientWidget(value = VComponent1.class)
public class Component1 {
private Component2 cmp2;

public void setDataSource(Component2 cmp2) {
this.cmp2 = cmp2;
}
}

@ClientWidget(value = VComponent2.class)
public class Component2 {
}

我想将它们绑定(bind)在服务器端。

...
Component2 cmp2 = new Component2();
Component1 cmp1 = new Component1();
cmp1.setDataSource(cmp2);

mainWindow.addComponent(cmp1);
mainWindow.addComponent(cmp2);
...

问题是我不知道如何向 VComponent1 发送绑定(bind)信息。

VComponent1 应该直接链接到 VComponent2

public class VComponent2 implements Paintable {

public String getCurrentData() {
return "Hello";
}
}


public class VComponent1 implements Paintable,
ClickHandler {
VComponent2 dataSource;

@Override
public void onClick(ClickEvent event) {
super.onClick(event);
String data = dataSource.getCurrentData();
client.updateVariable(uidlId, "curData", data, true);
}
}

由于一些特定的时间问题,我需要避免通过 Component2 的服务器部分进行通信。VComponent1 应该可以直接访问 VComponent2。

您能帮我解决我的情况吗?

谢谢,有友

最佳答案

您可以像这样传达对另一个 Vaadin 组件的引用:

服务器端:

public void paintContent(PaintTarget target) throws PaintException {    
..

target.addAttribute("mycomponent", component);
..
}

客户端:

public void updateFromUIDL(UIDL uidl, ApplicationConnection client) {
..

Paintable componentPaintable = uidl.getPaintableAttribute("mycomponent", client);
..
}

关于widget - VAADIN 客户端组件逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10106756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com