SeasarDI Container with AOP
 

項目に子画面での検索結果を設定する方法

それでは、DemoのVdri 画面での、Codeの検索を見て見ましょう。下記の2つの例です。最初は、通常画面を使用して検索する場合。
次は Dialog Modeで検索する場合です。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   FormAction formAction = new FormAction();
   formAction.setFormStack(FormStack.NEXT);
   formAction.setForm("vdrs");
   formAction.getParams().put("_cat", cat);
   formAction.getParams().put("_action","dataSelect");
   formAction.getParams().put("_dataSelect",new DataSelect(formManager,"ccode"));
   formManager.getSession().processAction(formAction, null);
} 

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   FormAction formAction = new FormAction();
   formAction.setFormStack(FormStack.DIALOG);
   formAction.setForm("vdrSelect");
   formAction.getParams().put("_cat", cat);
   formAction.getParams().put("_action","dataSelect");
   formAction.getParams().put("_dataSelect",new DataSelect(formManager,"ccode"));
   formManager.getSession().processAction(formAction, null);
}    

FormStack.NEXT と FormStack.DIALOGしか違わないのが判ると思います。
formAction.getParams().put("_dataSelect",new DataSelect(formManager,"ccode"));で、DataSelect Objectに戻す
項目名をSetしています。
それでは、「VdrSelectDialog」で、選んだ値を戻す処理を見てみましょう。
private void jButtonEnterActionPerformed(java.awt.event.ActionEvent evt) {                                             
    int row = jTable1.getSelectionModel().getMinSelectionIndex();
    if (row == -1) {
        ValidationUtil.showErrorMessage("行が選ばれていません", formManager);
        return;
    }
    BigDecimal ccode = (BigDecimal) golfTableModel.getValueAt(row,0);
    if (formManager.getFormData().containsKey("_action")) {
        if (formManager.getFormData().get("_action").equals("dataSelect")) {
            DataSelect select = (DataSelect) formManager.getFormData().get("_dataSelect");
            select.setSelectedDatum(ccode);
            formManager.getSession().processDataSelect(select);
            return;
        }
    }
} 

最初呼ばれる時にParameterにSetされていた、DataSelect Objectに戻すDataをsetした後、
formManager.getSession().processDataSelect(select); を呼んでいますね。
この様に簡単に、選んだDataを呼び出し画面の項目に埋め込む事ができます。

リンク

Golf 概要
GOLF HOMEへのリンク