GWT和notifyAll()(java.lang.Object)

时间:2010-09-22 11:38:07

标签: database gwt synchronization gxt formpanel

我正在打电话给数据库。结果必须用于子表单。所以我想等到数据库的结果出来。为此我需要同步。我的想法是使用java.lang中的Object.notifyAll(),但GWT不支持这一点。 GWT中是否有任何等效的方法用于notifyAll()?

edit1 :我正在使用gxt FormPanel提交数据。我可以更改buttonBar的类型,但我认为addSubmitCompleteHandler不会解决我的问题。

这里有一些代码片段:

final Button submit = new Button("Submit");
submit.addListener(Events.OnClick, new Listener<ButtonEvent>() {
    @Override
    public void handleEvent(ButtonEvent be) {
        // 1. Get the data from Database (here i must wait for the response from DB)
        // 2. Submit the form               
    }
);

final FormPanel buttonBar = new FormPanel();
buttonBar.addStyleName("abUploadField");
buttonBar.setHeaderVisible(false);
buttonBar.setBorders(false);
buttonBar.setStyleAttribute("margin", "0px");
buttonBar.setEncoding(FormPanel.Encoding.MULTIPART);
buttonBar.setMethod(FormPanel.Method.POST);
buttonBar.add(file);
buttonBar.add(submit);
buttonBar.setAction("myURL");

edit2 :我想从数据库中获取序列ID(这是事件处理程序中的第一步)。此ID将用于提交。在提交时,我正在使用数据填充数据库中的一些表格。该ID将用于标识,哪个用户启动了提交,并且对于此用户,我想显示带有“提交成功”消息的对话框。我希望,你理解我的意思:)(抱歉,我的英语不好)

2 个答案:

答案 0 :(得分:2)

就像你说的那样,GWT doesn't support Object.notifyAll()。但是,如果您使用FormPanel提交您的值,则只需addSubmitCompleteHandler并在结果返回时收到通知。如果你正在使用RequestBuilder,同样的事情 - 提供一个RequestCallback,当收到对请求的响应时,它会被触发。

答案 1 :(得分:0)

问题的解决方案是添加一个提交侦听器(Events.Submit),它与gwt表单面板的addSubmitCompleteHandler相同。