package com.example.wordbook.common;

import android.content.Context;
import android.widget.Toast;

import com.example.wordbook.R;

/**
 * メッセージ定義クラス
 */
public final class Message {

	/**
	 * トースト用メッセージID
	 */
	public enum ID {
		ERROR, //!< エラー
		FILE_NOT_FOUND, //!< 単語帳ファイル無し
		DATA_NOT_FOUND, //!< 単語帳データ無し
		IMPORT_FAILED, //!< 単語帳追加失敗
		EXPORT_FAILED, //!< 単語帳出力失敗
		CLEAR_FAILED, //!< 成績クリア失敗
		DELETE_FAILED, //!< 単語帳削除失敗
		IMPORT_COMPLETE, //!< 単語帳追加完了
		EXPORT_COMPLETE, //!< 単語帳出力完了
		CLEAR_COMPLETE, //!< 成績クリア完了
		DELETE_COMPLETE, //!< 単語帳削除完了
	}

	/**
	 * コンストラクタ（ユーティリティクラス）
	 */
	private Message() {
	}

	/**
	 * メッセージ取得
	 * 
	 * @param context
	 *            コンテキスト
	 * @param id
	 *            {@link Message.ID}
	 * @return メッセージ
	 */
	private static String conv(Context context, Message.ID id) {
		String msg = "";

		switch (id) {
		case FILE_NOT_FOUND:
			msg = context.getString(R.string.msg_file_not_found);
			break;
		case DATA_NOT_FOUND:
			msg = context.getString(R.string.msg_data_not_found);
			break;
		case IMPORT_FAILED:
			msg = context.getString(R.string.msg_import_failed);
			break;
		case EXPORT_FAILED:
			msg = context.getString(R.string.msg_export_failed);
			break;
		case CLEAR_FAILED:
			msg = context.getString(R.string.msg_clear_failed);
			break;
		case DELETE_FAILED:
			msg = context.getString(R.string.msg_delete_failed);
			break;
		case IMPORT_COMPLETE:
			msg = context.getString(R.string.msg_import_complete);
			break;
		case EXPORT_COMPLETE:
			msg = context.getString(R.string.msg_export_complete);
			break;
		case CLEAR_COMPLETE:
			msg = context.getString(R.string.msg_clear_complete);
			break;
		case DELETE_COMPLETE:
			msg = context.getString(R.string.msg_delete_complete);
			break;
		default:
			msg = context.getString(R.string.msg_error);
			break;
		}

		return msg;
	}

	/**
	 * メッセージ表示
	 * 
	 * @param context
	 *            コンテキスト
	 * @param id
	 *            {@link Message.ID}
	 */
	public static void show(Context context, Message.ID id) {
		Toast.makeText(context, conv(context, id), Toast.LENGTH_SHORT).show();
	}

}
