【发布时间】:2012-12-26 17:57:12
【问题描述】:
我正在使用 GWT 2.5.0 创建一个网页,其中我使用了很多复合组件。并且网页是基于XML开发的。
所以这里我们解析XML并根据每个元素将组件添加到VerticalPanel中,最后将其添加到FormPanel中,然后将其返回以添加到RootPanel。除了对应于 XML 的组件之外,我添加了一个按钮,将其称为提交按钮,在其单击事件上我想获取该表单中每个组件的值。 为了清楚我的想法是什么,下面是我工作的伪代码:
public FormPanel createFormWithComponents(){
FormPanel fp = new FormPanel();
vp = new VerticalPanel();
//these are creatred based on the xml
ABC coutn = new ABC (null,"pressure count",true);
PI propotion = new PI(12.5,"HR percentage");
vp.add(coutn);
vp.add(propotion);
//a common button to every form created here
Button submit = new Button("submit");
vp.add(submit);
submit.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
更新
String values = "";
Iterator<Widget> vPanelWidgets = vp.iterator();
while (vPanelWidgets.hasNext()){
Widget childWidget = vPanelWidgets.next();
if(childWidget instanceof ABC){
ABC xx = (ABC )childWidget;
values = String.valueOf(xx.getMagnitude());
}
}
Window.alert(values);
}
});
fp.add(vp);
return fp;
}
任何见解将不胜感激。 更新: 这里将每个子小部件组件与我的一个复合组件进行比较,与所有复合组件相比,我是否必须这样做?我有什么简单或优化的方法吗? 我想要一个很好的解决方案来完成这个过程,因为那里有很多复合组件:
if(childWidget instanceof ABC ){
ABC xx = (ABC )childWidget;
values = String.valueOf(xx.getMagnitude());
}
【问题讨论】:
标签: gwt components custom-component smartgit