TableActivity.java 12.7 KB
package com.huaheng.tab.util;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.InputFilter;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;

import com.huaheng.common.InputFilterMinMax;
import com.huaheng.common.WMSUtils;
import com.huaheng.common.adapter.AbsCommonAdapter;
import com.huaheng.common.adapter.AbsViewHolder;
import com.huaheng.common.adapter.RefreshParams;
import com.huaheng.common.model.BaseBean;
import com.huaheng.common.model.TableModel;
import com.huaheng.common.widget.MyListView;
import com.huaheng.common.widget.SyncHorizontalScrollView;
import com.huaheng.common.widget.pullrefresh.AbPullToRefreshView;
import com.huaheng.tab.R;
import com.huaheng.tab.WMSApplication;

import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import butterknife.OnClick;

public class TableActivity extends Activity {

    @BindView(R.id.backImage)
    public ImageView backImage;
    @BindView(R.id.commonTitle)
    TextView commonTitle;
    @BindView(R.id.buttonLayout)
    LinearLayout buttonLayout;
    @BindView(R.id.right_title_container)
    public LinearLayout rightTitleContainer;
    @BindView(R.id.title_horsv)
    SyncHorizontalScrollView titleHorsv;
    @BindView(R.id.right_container_listview)
    public MyListView rightContainerListview;
    @BindView(R.id.content_horsv)
    SyncHorizontalScrollView contentHorsv;
    @BindView(R.id.pull_refresh_scroll)
    ScrollView pullRefreshScroll;
    @BindView(R.id.pulltorefreshview)
    public AbPullToRefreshView pulltorefreshview;
    @BindView(R.id.allPage)
    TextView allPage;
    @BindView(R.id.alterPage)
    TextView alterPage;
    @BindView(R.id.fromPage)
    TextView fromPage;
    @BindView(R.id.firstPage)
    TextView firstPage;
    @BindView(R.id.upPage)
    TextView upPage;
    @BindView(R.id.downPage)
    TextView downPage;
    @BindView(R.id.lastPage)
    TextView lastPage;
    @BindView(R.id.jumpPage)
    TextView jumpPage;
    @BindView(R.id.basePageContainer)
    FrameLayout basePageContainer;
    private ViewGroup viewGroup;
    public Context mContext;
    public int pageNo = 1;
    public int pageSize = 10;
    public int mAlertPage = 1;
    public int upPageNo = pageNo;
    public AbsCommonAdapter<TableModel> mRightAdapter;
    public List<BaseBean> tableBeans;
    public List<BaseBean> selectTableBeans = new ArrayList<>();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        super.setContentView(R.layout.activity_table);
        mContext = this;
        viewGroup = (ViewGroup) this.findViewById(R.id.buttonLayout);
        initActivityOnCreate(savedInstanceState);
        initView();
    }

    /**
     * 页面初始化
     */
    protected void initActivityOnCreate(Bundle savedInstanceState) {

    }

    private void initView() {
        // 设置两个水平控件的联动
        titleHorsv.setScrollView(contentHorsv);
        contentHorsv.setScrollView(titleHorsv);
        pulltorefreshview.setPullRefreshEnable(false);
        pulltorefreshview.setLoadMoreEnable(false);
        rightContainerListview.setAdapter(mRightAdapter);
        rightContainerListview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                setSelectBean(tableBeans.get(position));
                mRightAdapter.notifyDataSetChanged();
            }
        });
    }

    public void setBackImageVisible(int visible) {
        if (backImage != null) {
            backImage.setVisibility(visible);
        }
    }

    public void setTitle(String message) {
        if (commonTitle != null) {
            commonTitle.setText(message);
        }
    }


    @OnClick({R.id.backImage, R.id.firstPage, R.id.upPage, R.id.downPage, R.id.lastPage, R.id.jumpPage})
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.backImage:
                onBackPressed();
                break;
            case R.id.firstPage:
                getTalbeByCondition(1);
                break;
            case R.id.upPage:
                getTalbeByCondition(pageNo - 1);
                break;
            case R.id.downPage:
                getTalbeByCondition(pageNo + 1);
                break;
            case R.id.lastPage:
                getTalbeByCondition(mAlertPage);
                break;
            case R.id.jumpPage:
                showJumpDialog();
                break;
        }
    }

    public void setButtonView(int layoutResID) {
        LayoutInflater.from(this).inflate(layoutResID, viewGroup, true);
    }

    private void showJumpDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
        View view = LayoutInflater.from(mContext).inflate(R.layout.dialog_choose, null);
        TextView cancel = view.findViewById(R.id.choosepage_cancel);
        TextView sure = view.findViewById(R.id.choosepage_sure);
        final EditText edittext = view.findViewById(R.id.choosepage_edittext);
        edittext.setFilters(new InputFilter[]{new InputFilterMinMax(1, mAlertPage)});
        final Dialog dialog = builder.create();
        dialog.show();
        dialog.getWindow().setContentView(view);
        //使editext可以唤起软键盘
        dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
        cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dialog.dismiss();
            }
        });
        sure.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getTalbeByCondition(Integer.parseInt(edittext.getText().toString()));
                dialog.dismiss();
            }
        });
    }

    protected void getTalbeByCondition(int page) {

    }

    public void freshMenuText(int size) {
        int alter = size / pageSize + 1;
        if (size % pageSize == 0) {
            alter = alter - 1;
        }
        if (size == 0) {
            alter = 0;
        }
        mAlertPage = alter;
        allPage.setText(String.format(getResources().getString(R.string.all_page), size));
        alterPage.setText(String.format(getResources().getString(R.string.alter_page), 10));
        fromPage.setText(String.format(getResources().getString(R.string.from_page), pageNo, mAlertPage));
        firstPage.setText(String.format(getResources().getString(R.string.first_page)));
        upPage.setText(String.format(getResources().getString(R.string.up_page)));
        downPage.setText(String.format(getResources().getString(R.string.down_page)));
        lastPage.setText(String.format(getResources().getString(R.string.last_page)));
        jumpPage.setText(String.format(getResources().getString(R.string.jump_page)));
        if (mAlertPage > 1) {
            firstPage.setTextColor(getResources().getColor(R.color.black));
            lastPage.setTextColor(getResources().getColor(R.color.black));
            jumpPage.setTextColor(getResources().getColor(R.color.black));
            firstPage.setClickable(true);
            lastPage.setClickable(true);
            jumpPage.setClickable(true);
        } else {
            firstPage.setTextColor(getResources().getColor(R.color.gray_bg));
            lastPage.setTextColor(getResources().getColor(R.color.gray_bg));
            jumpPage.setTextColor(getResources().getColor(R.color.gray_bg));
            firstPage.setClickable(false);
            lastPage.setClickable(false);
            jumpPage.setClickable(false);
        }
        if (pageNo == 1) {
            upPage.setTextColor(getResources().getColor(R.color.gray_bg));
            upPage.setEnabled(false);
        } else {
            upPage.setTextColor(getResources().getColor(R.color.black));
            upPage.setEnabled(true);
        }

        if (pageNo == mAlertPage || mAlertPage == 0) {
            downPage.setTextColor(getResources().getColor(R.color.gray_bg));
            downPage.setEnabled(false);
        } else {
            downPage.setTextColor(getResources().getColor(R.color.black));
            downPage.setEnabled(true);
        }
    }

    public void clearSelectBean() {
        selectTableBeans.removeAll(selectTableBeans);
        selectTableBeans = new ArrayList<>();
        mRightAdapter.clearData(true);
    }

    public boolean setSelectBean(BaseBean baseBean) {
        boolean contained = false;
        int index = 0;
        for (BaseBean baseBean1 : selectTableBeans) {
            index++;
            if (baseBean1.getId() == baseBean.getId()) {
                contained = true;
                break;
            }
        }
        if (contained) {
            selectTableBeans.remove(index - 1);
            return false;
        }
        selectTableBeans.add(baseBean);
        select(baseBean);
        return true;
    }

    public void select(BaseBean baseBean) {

    }

    public boolean isSelectBean(BaseBean baseBean) {
        boolean contained = false;
        for (BaseBean baseBean1 : selectTableBeans) {
            if (baseBean1.getId() == baseBean.getId()) {
                contained = true;
                break;
            }
        }
        if (contained) {
            return true;
        }
        return false;
    }

    public boolean enableSelctBean() {
        if (selectTableBeans == null) {
            WMSUtils.showShort(mContext, mContext.getString(R.string.please_select_one_order));
            return false;
        }
        if (selectTableBeans.size() != 1) {
            WMSUtils.showShort(mContext, mContext.getString(R.string.please_select_one_order));
            return false;
        }
        return true;
    }

    public void setSelectBackground(AbsViewHolder helper, int pos) {
        View view = helper.getConvertView();
        BaseBean baseBean = tableBeans.get(pos);
        if (isSelectBean(baseBean)) {
            view.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
        } else {
            view.setBackgroundColor(getResources().getColor(R.color.white));
        }
    }

    public void setData(List<BaseBean> baseBeans) {
        doGetDatas(0, RefreshParams.REFRESH_DATA, baseBeans);
    }

    public void doGetDatas(int pageno, int state, List<BaseBean> baseBeans) {
//        if (state == RefreshParams.REFRESH_DATA) {
            pulltorefreshview.onHeaderRefreshFinish();
//        } else {
//            pulltorefreshview.onFooterLoadFinish();
//        }
        setDatas(baseBeans, state);
    }

    public void setDatas(List<BaseBean> baseBeans, int type) {

    }

    public TextView addTitleText(String title, int width) {
        TextView titleView = new TextView(mContext);
        titleView.setText(title);
        titleView.setWidth((int)(width * 1.4));
        titleView.setHeight(40);
        titleView.setTextSize(12);
        titleView.setTextColor(Color.BLACK);
        titleView.setPadding(4,0,4,0);
        titleView.setMaxLines(2);
        titleView.setGravity(Gravity.CENTER);
        rightTitleContainer.addView(titleView);
        return titleView;
    }

    public void addMessageText(LinearLayout linearLayout, int width, String message) {
        TextView titleView = new TextView(mContext);
        titleView.setText(message);
        titleView.setWidth((int)(width * 1.4));
        titleView.setHeight((int)(42* 1.35));
        titleView.setTextSize(12);
        titleView.setTextColor(Color.BLACK);
        titleView.setPadding(4,0,4,0);
        titleView.setMaxLines(2);
        titleView.setGravity(Gravity.CENTER);
        linearLayout.addView(titleView);
    }

    public void addMessageColorText(LinearLayout linearLayout, int width, String message, int color) {
        TextView titleView = new TextView(mContext);
        titleView.setText(message);
        titleView.setWidth((int)(width * 1.4));
        titleView.setHeight((int)(42* 1.35));
        titleView.setTextSize(12);
        titleView.setTextColor(Color.BLACK);
        titleView.setPadding(4,0,4,0);
        titleView.setMaxLines(2);
        titleView.setBackgroundColor(WMSApplication.getContext().getResources().getColor(R.color.green));
        titleView.setGravity(Gravity.CENTER);
        linearLayout.addView(titleView);
    }

}