xuxiuxi
2017-07-14 bcefcf7249692e61574438d3857e737c2fd29ca7
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SelectDialog.java
@@ -1,26 +1,31 @@
package cn.com.basic.face.dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.bsk.zhangbo.demoforbsk.R;
import cn.com.basic.face.adapter.MyWheelAdapter;
import cn.com.basic.face.base.MainActivity;
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.fragment.CheckInFragment;
import cn.com.basic.face.service.DictionaryMng;
import cn.com.basic.face.util.Constant;
import cn.com.basic.face.util.OkClickedListener;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;
import com.wx.wheelview.widget.WheelView;
import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter;
import cn.com.basic.face.dialog.wheelview.widget.WheelView;
import java.util.ArrayList;
import java.util.List;
@@ -28,6 +33,7 @@
import cn.com.basic.face.discern.entity.Dictionary;
public class SelectDialog extends PopupWindow {
    private final View parentView;
    @ViewInject(R.id.dialog_select_title)
    private TextView dialog_select_title;
    @ViewInject(R.id.dialog_select_list_view)
@@ -40,12 +46,23 @@
    private List list = new ArrayList();
    public static List visitorTypeList = new ArrayList();
    public static List attenderTypeList = new ArrayList();
    public static List genderList = new ArrayList();
    public static List idTypeList = new ArrayList();
    public static List visitReasonList = new ArrayList();
    private static List<String> resolutionList = new ArrayList();
    private static List<String> protocolList = new ArrayList();
    private static List<String> cameraBrandList = new ArrayList();
    private static List<String> departmentDictionaryList = new ArrayList();
    private static List<String> postDictionaryList = new ArrayList();
    private int type;
    public static void setVisitorTypeList(List visitorTypeList) {
        SelectDialog.visitorTypeList = visitorTypeList;
    }
    public static void setAttenderTypeList(List attenderTypeList) {
        SelectDialog.attenderTypeList = attenderTypeList;
    }
    public static void setGenderList(List genderList) {
@@ -56,7 +73,9 @@
        SelectDialog.idTypeList = idTypeList;
    }
    public SelectDialog(View parentView, int type, OkClickedListener okButtonClickedListener) {
    public SelectDialog(View parentView, int type, OkClickedListener okButtonClickedListener, String defaultValue) {
        this.type = type;
        this.parentView = parentView;
        View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_select,null);
        ViewUtils.inject(this, view);
        setTitleAndList(type);
@@ -67,15 +86,30 @@
        style.textSize = 16;
        style.holoBorderColor = Color.parseColor("#11c3e3");
        if(type == Constant.DialogSelectType.VISIT_REASON) {
        if(type == Constant.DialogSelectType.VISIT_REASON
                || type == Constant.DialogSelectType.PROTOCOL
                || type == Constant.DialogSelectType.RESOLUTION
                || type == Constant.DialogSelectType.CAMERA_BRAND
                ) {
            dialog_select_add_separator.setVisibility(View.VISIBLE);
            dialog_select_add.setVisibility(View.VISIBLE);
        }
        dialog_select_list_view.setWheelAdapter(new MyWheelAdapter(MainActivity.getInstance()));
        dialog_select_list_view.setWheelAdapter(new WheelAdapter(MainActivity.getInstance()));
        dialog_select_list_view.setSkin(WheelView.Skin.Holo);
        if (list != null && list.size() > 0) {
            dialog_select_list_view.setWheelData(list);
            Object itemObj = list.get(0);
            if (itemObj instanceof String && defaultValue != null && !"".equals(defaultValue)) {
                int selected = 0;
                for (int i = 0; i < list.size(); i++) {
                    if (defaultValue.equals(list.get(i))) {
                        selected = i;
                        break;
                    }
                }
                dialog_select_list_view.setSelection(selected);
            }
        }
        dialog_select_list_view.setWheelSize(5);
        dialog_select_list_view.setBackgroundResource(R.color.colorBackground);
@@ -162,17 +196,107 @@
                tile = "请选择访问事由";
                list = visitReasonList;
                break;
            case Constant.DialogSelectType.RESOLUTION:
                tile = "请选择分辨率";
                list = resolutionList;
                break;
            case Constant.DialogSelectType.PROTOCOL:
                tile = "请选择通讯";
                list = protocolList;
                break;
            case Constant.DialogSelectType.CAMERA_BRAND:
                tile = "请选择摄像机品牌";
                list = cameraBrandList;
                break;
            case Constant.DialogSelectType.DEPARTMENT:
                tile = "请选择部门/班级";
                list = departmentDictionaryList;
                break;
            case Constant.DialogSelectType.POST:
                tile = "请选择职务";
                list = postDictionaryList;
                break;
        }
        dialog_select_title.setText(tile);
    }
    @OnClick(R.id.dialog_select_add)
    public void dialog_select_add_click(View view) {
        dismiss();
        Toast.makeText(MainActivity.getInstance(), "添加", Toast.LENGTH_SHORT);
        new AddDialog(parentView, type, new OkClickedListener() {
            public void onSelected(String value) {
                CheckInFragment.getInstance().setVisitReasonText(value);
                switch (type) {
                    case Constant.DialogSelectType.VISIT_REASON:
                        CheckInFragment.getInstance().setVisitReasonText(value);
                        break;
                    case Constant.DialogSelectType.RESOLUTION:
                        DictionaryMng.getInstance().addDictionary(Constant.DialogSelectType.RESOLUTION, CommonVariables.DictionaryType.RESOLUTION, value);
                        break;
                    case Constant.DialogSelectType.PROTOCOL:
                        DictionaryMng.getInstance().addDictionary(Constant.DialogSelectType.PROTOCOL, CommonVariables.DictionaryType.PROTOCOL, value);
                        break;
                    case Constant.DialogSelectType.CAMERA_BRAND:
                        DictionaryMng.getInstance().addDictionary(Constant.DialogSelectType.CAMERA_BRAND, CommonVariables.DictionaryType.CAMERA_BRAND, value);
                        break;
                }
            }
        });
    }
    public static void setVisitReasonList(List visitReasonList) {
        SelectDialog.visitReasonList = visitReasonList;
    }
    public static void setResolutionList(List<String> resolutionList) {
        SelectDialog.resolutionList = resolutionList;
    }
    public static void setProtocolList(List<String> protocolList) {
        SelectDialog.protocolList = protocolList;
    }
    public static void setCameraBrandList(List<String> cameraBrandList) {
        SelectDialog.cameraBrandList = cameraBrandList;
    }
    public static void setDepartmentDictionaryList(List<String> departmentDictionaryList) {
        SelectDialog.departmentDictionaryList = departmentDictionaryList;
    }
    public static void setPostDictionaryList(List<String> postDictionaryList) {
        SelectDialog.postDictionaryList = postDictionaryList;
    }
    public static class WheelAdapter extends BaseWheelAdapter<String> {
        private Context mContext;
        public WheelAdapter(Context context) {
            mContext = context;
        }
        @Override
        protected View bindView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder;
            if (convertView == null) {
                viewHolder = new ViewHolder();
                convertView = LayoutInflater.from(mContext).inflate(R.layout.dialog_row, null);
                viewHolder.textView = (TextView) convertView.findViewById(R.id.item_wheel_name);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            viewHolder.textView.setText(mList.get(position)+"");
            return convertView;
        }
        static class ViewHolder {
            TextView textView;
        }
    }
}