このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。
では、ボタンの動作を作っていこう。
まずは、有効・無効ボタン。これはかなり簡単にできる。
========== ManageRulesAction#enable ==========
public ActionForward enable(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// フォームを取得
ManageFilterRulesForm manageForm =
(ManageFilterRulesForm)form;
// 選択されたルール番号を取得
int[] selected = manageForm.getSelected();
if (selected != null && selected.length > 0) {
// 現在のフィルタ設定を読み込み
Filter filter = FilterManager.load();
// 有効化し
List<FilterRule> rules = filter.getRules();
for (int index : selected) {
rules.get(index).setEnabled(true);
}
// 保存する
FilterManager.save(filter);
}
// OK
return mapping
.findForward(Forwards.SUCCESS_KEY);
}
========== end of ManageRulesAction#enable ==========
ManageFilterRulesForm の selected プロパティには、
選択されたルールの番号が入っているので、
対応するルールの enabled を true に設定するだけだ。
「無効」は有効とほぼ同じ。
========== ManageRulesAction#disable ==========
public ActionForward disable(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
// フォームを取得
ManageFilterRulesForm manageForm =
(ManageFilterRulesForm)form;
// 選択されたルール番号を取得
int[] selected = manageForm.getSelected();
if (selected != null && selected.length > 0) {
// 現在のフィルタ設定を読み込み
Filter filter = FilterManager.load();
// 無効化し
List<FilterRule> rules = filter.getRules();
for (int index : selected) {
rules.get(index).setEnabled(false);
}
// 保存する
FilterManager.save(filter);
}
// OK
return mapping
.findForward(Forwards.SUCCESS_KEY);
}
========== end of ManageRulesAction#disable ==========
共通部分を別のメソッドにしてもよかったかも。
これで、有効無効が切り替わるようになった。