私はGWT2.5.0を使用してWebページを作成していますが、ここでは多くの複合コンポーネントを使用しました。そして、Webページは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;
}
任意の洞察をいただければ幸いです。更新:ここでは、子ウィジェットコンポーネントのそれぞれをコンポジットコンポーネントの1つと比較していますが、すべてのコンポジットコンポーネントと比較して、このようにする必要がありますか?私はそれを行うための簡単なまたは最適化された方法はありますか?そこには非常に多くの複合コンポーネントがあるので、このプロセスを実行するための優れたソリューションが必要です。
if(childWidget instanceof ABC ){
ABC xx = (ABC )childWidget;
values = String.valueOf(xx.getMagnitude());
}