package com.example.wordbook;

import java.util.List;
import java.util.Map;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleAdapter;
import android.widget.TextView;

import com.example.wordbook.common.Common;

/**
 * 選択ダイアログ用アダプタ
 */
public class FlagAdapter extends SimpleAdapter {

	/** LayoutInflater */
	private LayoutInflater mInflater;

	/**
	 * ViewHolder
	 */
	private static class ViewHolder {
		TextView flag;
	}

	/**
	 * コンストラクタ
	 * 
	 * @param context
	 *            コンテキスト
	 * @param data
	 *            アイテム
	 * @param resource
	 *            リソースID
	 * @param from
	 *            マップキー
	 * @param to
	 *            ウィジェットID
	 */
	public FlagAdapter(Context context, List<? extends Map<String, ?>> data,
			int resource, String[] from, int[] to) {
		super(context, data, resource, from, to);

		mInflater = LayoutInflater.from(context);
	}

	/*
	 * (非 Javadoc)
	 * 
	 * @see android.widget.Adapter#getView(int, android.view.View,
	 * android.view.ViewGroup)
	 */
	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// View設定
		ViewHolder holder;
		View view = convertView;
		if (view == null) {
			view = mInflater.inflate(R.layout.dlg_flag, parent, false);
			holder = new ViewHolder();
			holder.flag = (TextView) view.findViewById(R.id.textView);
			view.setTag(holder);
		} else {
			holder = (ViewHolder) view.getTag();
		}

		// アイテム取得
		@SuppressWarnings("unchecked")
		Map<String, Object> data = (Map<String, Object>) getItem(position);
		// 背景色設定
		Common.setBackgroundColor(holder.flag,
				(Integer) data.get(Common.FLAG_BACK));
		// 文字列設定
		holder.flag.setText((String) data.get(Common.FLAG_TEXT));

		return view;
	}

}
