チュートリアル3(削除機能)

まず、管理者画面の削除機能から実装します。

tutorial3/logic/AdminHtml.java①
1:
2:
public class AdminHtml extends tutorial3.view.AdminHtml {
    private Line    org_line;
tutorial3/logic/AdminHtml.java②
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
    public void init(){
        super.init();
        // モックアップHTMLの内容と異なる内容で初期化したい場合は
        // super.init()の後に変更用の処理を記述して下さい。
        // このメソッドは上記コンストラクタの中から呼ばれます。
        // インスタンス発生はバックグラウンドで非同期に処理していますので
        // HTTPリクエスト発生よりずっと過去に初期化されます。
        // このため、ユーザーのトランザクションに応じた条件分岐を設けても
        // 意図した振る舞いになりません。
 
        org_line = getDeleteListTable().getLineReplica( 1 );
    }
tutorial3/logic/AdminHtml.java③ 削除リストを作成するメソッドを準備します。
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
    private void makeList() {
        Table   table = getDeleteListTable();
        table.removeLine( 1, -1 );
        int size = Article.db.size();
        for ( int i = 0; i < size; i++ ) {
            Article article = Article.db.get( i );
            Line    line = (Line)org_line.getReplica();
            line.setValueString( 1, article.getDate(), article.title );
            Tag[]   tag = line.getAllTagByType( "input" );
            ((CheckBox)tag[0]).setUserData( article );
            table.addLine( line );
        }
    }

getDeleteListTableは、
tutorial3.view.AdminHtml
のメソッドです。

tutorial3/logic/AdminHtml.java④
1:
2:
3:
4:
5:
6:
7:
8:
9:
    public Page outputMain( Page from, RequestParameter req ) throws PageException {
        // 出力内容を設定します。
        // 初期化したい場合は、init()をコールして下さい。
 
        if ( from.getID() == PageType.BLOG_HTML ) {
            makeList();
        }
        return this;
    }
tutorial3/logic/AdminHtml.java⑤
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
    public Forward inputMain( RequestParameter req, Forward fw ) throws PageException {
        // fwにはモックアップと同じ遷移先が設定されています。
        // 別の遷移先としたい場合は、新しくForwardインスタンスを生成して
        // リターンして下さい。
 
        if ( getDeleteInput().isClicked() ) {
            Tag[]   tag = getTargetTags();
            for ( int i = 0; i < tag.length; i++ ) {
                CheckBox    box = (CheckBox)tag[i];
                if ( box.isChecked() ) {
                    Article.db.remove( (Article)box.getUserData() );
                }
            }
            makeList();
        }
        return fw;
    }

getTargetTagsは、
tutorial3.view.AdminHtml
のメソッドです。

チュートリアル4(投稿フォーム)