package com.znv.linkup.view.dialog;

import android.app.Dialog;
import android.content.Context;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.znv.linkup.R;

/**
 * 自定义的警告框
 * 
 * @author yzb
 * 
 */
public class ConfirmDialog extends Dialog {

    public ConfirmDialog(Context context) {
        super(context, R.style.CustomDialogStyle);
        setContentView(R.layout.confirm_dialog);
        setCancelable(false);
        setCanceledOnTouchOutside(false);
        setNegativeButton(null);
        setPositiveButton(null);
    }

    /**
     * 设置标题
     * 
     * @param title
     *            标题
     * @return 警告框实例
     */
    public ConfirmDialog setTitle(String title) {
        TextView tvTitle = (TextView) findViewById(R.id.dialog_title);
        tvTitle.setText(title);
        return this;
    }

    /**
     * 设置信息
     * 
     * @param msg
     *            信息
     * @return 警告框示例
     */
    public ConfirmDialog setMessage(String msg) {
        TextView tvMessage = (TextView) findViewById(R.id.dialog_message);
        tvMessage.setText(msg);
        return this;
    }

    /**
     * 设置确认按钮
     * 
     * @param text
     *            确认按钮文字
     * @param listener
     *            确认操作
     * @return 确认框实例
     */
    public ConfirmDialog setPositiveButton(final View.OnClickListener listener) {
        Button btn = (Button) findViewById(R.id.dialog_button_ok);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                cancel();
                if (listener != null) {
                    listener.onClick(null);
                }
            }
        });
        return this;
    }

    /**
     * 设置取消按钮
     * 
     * @param text
     *            取消按钮文字
     * @param listener
     *            取消操作
     * @return 确认框实例
     */
    public ConfirmDialog setNegativeButton(final View.OnClickListener listener) {
        Button btn = (Button) findViewById(R.id.dialog_button_cancel);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                cancel();
                if (listener != null) {
                    listener.onClick(null);
                }
            }
        });
        return this;
    }

    /**
     * 处理返回键
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Button btn = (Button) findViewById(R.id.dialog_button_cancel);
            btn.performClick();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}