package com.android_mvc.framework.ui.menu;
import java.util.ArrayList;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
/**
* オプションメニューを構築するためのビルダー。
* @author id:language_and_engineering
*
*/
public class OptionMenuBuilder
{
// 表示項目たち
private ArrayList<OptionMenuDescription> descriptions = new ArrayList<OptionMenuDescription>();
public OptionMenuBuilder(Activity context)
{
}
/**
* 表示項目を一つ登録
*/
public OptionMenuBuilder add(OptionMenuDescription desc)
{
descriptions.add(desc);
return this;
}
/**
* 実際のMenuオブジェクトに,表示項目を描画用に登録
*/
public Menu registerItemsInMenu(Menu menu)
{
for( int i = 0; i < descriptions.size(); i ++)
{
menu.add(
Menu.NONE,
i,
Menu.NONE,
descriptions.get(i).displayText()
);
}
return menu;
}
/**
* 特定の項目が選択された時のイベントを処理
*/
public void onItemSelected(MenuItem item)
{
// itemIdを横並びの順序番号とみなす
int index = item.getItemId();
OptionMenuDescription targetDescription = descriptions.get(index);
// イベントハンドラを実行
targetDescription.onSelected();
// TODO: 縦並びも許可する
}
}