package com.omniteaching.otscale.ui.formulaC; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.BaseAdapter; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.omniteaching.otscale.R; import com.omniteaching.otscale.database.formulaC.bll.FormulaCDbManager; import com.omniteaching.otscale.database.formulaC.bll.FormulaCHisDbManager; import com.omniteaching.otscale.model.formulaC.FormulaMutilDetailsInfo; import com.omniteaching.otscale.model.formulaC.FormulaMutilHisRecInfo; import com.omniteaching.otscale.model.formulaC.FormulaMutilInvoiceInfo; import com.omniteaching.otscale.system.formula.FormulaConvertUtils; import com.omniteaching.otscale.system.formula.FormulaMutilHttpManager; import com.omniteaching.otscale.system.formulaC.FormulaMutilManager; import com.omniteaching.otscale.system.formulaC.FormulaMutilProcessManager; import com.omniteaching.otscale.system.scale.utils.WeightFormat; import com.omniteaching.otscale.system.scale.utils.WifiUtil; import com.omniteaching.otscale.ui.formula.http.FormulaOkHttpListener; import com.omniteaching.otscale.ui.formula.http.IUploadMultipleListener; import com.omniteaching.otscale.ui.formula.model.FormulaMulitTasks; import com.omniteaching.otscale.ui.formula.model.FormulaMutilUpDetailTasks; import com.omniteaching.otscale.ui.formula.model.LoginFailInfo; import com.omniteaching.otscale.ui.formula.model.LoginInfo; import com.omniteaching.otscale.ui.version.formula.FormulaLoginDialog; import com.omniteaching.otscale.ui.version.formula.OnLoadingListener; import com.omniteaching.otscale.utils.BaseFragment; import com.omniteaching.otscale.utils.BaseWaitingDialog; import com.omniteaching.otscale.utils.BtnClickUtils; import com.omniteaching.otscale.utils.Constants; import com.omniteaching.otscale.utils.ConvertUtils; import com.omniteaching.otscale.utils.DateTimeUtils; import com.omniteaching.otscale.utils.Globals; import com.omniteaching.otscale.utils.SimpleStyleDialog; import com.omniteaching.otscale.utils.config.LoginManager; import com.omniteaching.scaledata.model.UnitMgr; import com.squareup.okhttp.Request; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import de.greenrobot.event.EventBus; /** * 物料管理片段 * Created by KXwon on 2016/3/17. */ public class FormulaManagerMutipleFragment extends BaseFragment implements View.OnClickListener { private static final String TAG = FormulaManagerMutipleFragment.class.getSimpleName(); private View mRootView; private TextView mTvUpload; private TextView mSelectText; private EditText mSearchEditText; private ListView mFormulaManagerListView; private Map<String, Boolean> mCheckedMap; private Map<String, FormulaMutilUpDetailTasks> mFormulaShowMap; private Map<String, FormulaMutilUpDetailTasks> mSelectMap; private LinkedHashMap<String, FormulaMutilUpDetailTasks> mAllUpselcetMap; private BtnClickUtils mBtnClickUtils; private FormulaManagerAdapter mFormulaManagerAdapter; private BaseWaitingDialog mWaitDialog; private int mSelectAmount; private boolean mIsSelectAll; private FormulaCDbManager mFormulaCDbManager; private FormulaCHisDbManager mFormulaCHisDbManager; private List<FormulaMutilUpDetailTasks> mMutilShowDetailTaskses; private ArrayList<FormulaMutilInvoiceInfo> mMutilUpDetailTaskses; private FormulaLoginDialog mFormulaLoginDialog; private DecimalFormat mDecimalFormat; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mRootView = inflater.inflate(R.layout.layout_formula_manager, null); loadView(); initArgument(); initListener(); return mRootView; } private void initArgument() { mFormulaCDbManager = FormulaCDbManager.getInstance(getActivity()); mFormulaCHisDbManager = FormulaCHisDbManager.getInstance(getActivity()); mFormulaShowMap = new LinkedHashMap<String, FormulaMutilUpDetailTasks>(); mSelectMap = new LinkedHashMap<String, FormulaMutilUpDetailTasks>(); mAllUpselcetMap = new LinkedHashMap<String, FormulaMutilUpDetailTasks>(); mCheckedMap = new LinkedHashMap<String, Boolean>(); mFormulaManagerAdapter = new FormulaManagerAdapter(); mDecimalFormat = new DecimalFormat(); mFormulaManagerListView.setAdapter(mFormulaManagerAdapter); mMutilShowDetailTaskses = new ArrayList<FormulaMutilUpDetailTasks>(); mMutilUpDetailTaskses = new ArrayList<FormulaMutilInvoiceInfo>(); resetData(); mBtnClickUtils = new BtnClickUtils(); } public void resetData() { mFormulaShowMap.clear(); mMutilShowDetailTaskses.clear(); List<FormulaMutilDetailsInfo> formulaInvoiceInfos = mFormulaCDbManager.queryAll(); if (formulaInvoiceInfos != null) { for (FormulaMutilDetailsInfo formulaInvoiceInfo : formulaInvoiceInfos) { FormulaMutilUpDetailTasks formulaMutilUpTasks = new FormulaMutilUpDetailTasks(); float weight = 0; int unitid = FormulaMutilManager.DEFAULT_UNITID; String unitName; int decimalsNum = 0; List<FormulaMutilHisRecInfo> formulaMutilHisRecInfos = mFormulaCHisDbManager.queryByID(formulaInvoiceInfo.getID()); if (formulaMutilHisRecInfos != null) { FormulaConvertUtils.convertMultiep(getActivity(), formulaMutilHisRecInfos); for (FormulaMutilHisRecInfo formulaMutilHisRecInfo : formulaMutilHisRecInfos) { weight += formulaMutilHisRecInfo.getWeight(); log("0 inputString weight :"+ weight); } } else { weight = 0; } if (formulaMutilHisRecInfos != null) if (formulaMutilHisRecInfos.get(0) != null) { // unitid = formulaMutilHisRecInfos.get(0).getUnitId(); decimalsNum = formulaMutilHisRecInfos.get(0).getDecimalsNum(); WeightFormat.updateFormat(mDecimalFormat,decimalsNum); } log("1 inputString weight :"+ weight); unitName = UnitMgr.getUnitName(unitid); formulaMutilUpTasks.setUnit(unitName); formulaMutilUpTasks.setTileName(formulaInvoiceInfo.getMaterialTitle()); formulaMutilUpTasks.setDevice(formulaInvoiceInfo.getDevice()); formulaMutilUpTasks.setFinishWeight(mDecimalFormat.format(weight)); formulaMutilUpTasks.setRecipeID(formulaInvoiceInfo.getRecipeID()); formulaMutilUpTasks.setDone(formulaInvoiceInfo.isDone()); formulaMutilUpTasks.setID(formulaInvoiceInfo.getID()); formulaMutilUpTasks.setStandWeight(formulaInvoiceInfo.getWeight()+""); formulaMutilUpTasks.setDeviationWeight(formulaInvoiceInfo.getDeviationWeight()); formulaMutilUpTasks.setDecimalsNum(decimalsNum); formulaMutilUpTasks.setDeviationWeight(formulaInvoiceInfo.getDeviationWeight()); mMutilShowDetailTaskses.add(formulaMutilUpTasks); } for (FormulaMutilUpDetailTasks mutilUpDetailTaskse : mMutilShowDetailTaskses) { if (null != mCheckedMap.get(mutilUpDetailTaskse.getDevice()) && mCheckedMap.get (mutilUpDetailTaskse.getDevice())) { mCheckedMap.put(mutilUpDetailTaskse.getDevice(), true); mFormulaShowMap.put(mutilUpDetailTaskse.getDevice(), mutilUpDetailTaskse); } else { mCheckedMap.put(mutilUpDetailTaskse.getDevice(), false); mFormulaShowMap.remove(mutilUpDetailTaskse.getDevice()); } } } mFormulaManagerAdapter.setData(mMutilShowDetailTaskses); mFormulaManagerAdapter.notifyDataSetChanged(); log("mFormulaShowMap " + mFormulaShowMap.size() + "|| " + mFormulaManagerAdapter.getFormulaManagementList().size()); if ((mFormulaShowMap.size() != 0 && mFormulaShowMap.size() == mFormulaManagerAdapter.getFormulaManagementList().size())) { mIsSelectAll = true; mSelectText.setText(getResourcesString(R.string.select_none)); } else { mIsSelectAll = false; mSelectText.setText(getResourcesString(R.string.select_all)); } } private void initListener() { mTvUpload.setOnClickListener(this); // mFormulaManagerListView.setOnItemLongClickListener(this); mSearchEditText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mSearchEditText.setTextColor(getResourcesColor(R.color.white)); mSearchEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, getResourcesDrawable(R.drawable.search_white), null); mSearchEditText.setHint(" "); break; } return false; } }); // // // if (mIsSelectAll) // { // mSelectText.setText(getResourcesString(R.string.select_none)); // } else // { // mSelectText.setText(getResourcesString(R.string.select_all)); // } mSearchEditText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (s.length() != 0) { mSearchEditText.setTextColor(getResourcesColor(R.color.white)); mSearchEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, getResourcesDrawable(R.drawable.search_white), null); mSelectMap.clear(); mMutilShowDetailTaskses.clear(); List<FormulaMutilDetailsInfo> formulaMutilDetailsInfos = mFormulaCDbManager.queryFuzzy(s.toString().trim()); if (formulaMutilDetailsInfos != null) { for (FormulaMutilDetailsInfo formulaInvoiceInfo : formulaMutilDetailsInfos) { FormulaMutilUpDetailTasks formulaMutilUpTasks = new FormulaMutilUpDetailTasks(); float weight = 0; int unitid = FormulaMutilManager.DEFAULT_UNITID; String unitName; int decimalsNum =0; List<FormulaMutilHisRecInfo> formulaMutilHisRecInfos = mFormulaCHisDbManager.queryByID(formulaInvoiceInfo.getID()); if (formulaMutilHisRecInfos != null) { FormulaConvertUtils.convertMultiep(getActivity(), formulaMutilHisRecInfos); for (FormulaMutilHisRecInfo formulaMutilHisRecInfo : formulaMutilHisRecInfos) { weight += formulaMutilHisRecInfo.getWeight(); } } else { weight = 0; } if (formulaMutilHisRecInfos != null) if (formulaMutilHisRecInfos.get(0) != null) { decimalsNum = formulaMutilHisRecInfos.get(0).getDecimalsNum(); // unitid = formulaMutilHisRecInfos.get(0).getUnitId(); WeightFormat.updateFormat(mDecimalFormat, formulaMutilHisRecInfos.get(0).getDecimalsNum()); } unitName = UnitMgr.getUnitName(unitid); formulaMutilUpTasks.setUnit(unitName); formulaMutilUpTasks.setTileName(formulaInvoiceInfo.getMaterialTitle()); formulaMutilUpTasks.setDevice(formulaInvoiceInfo.getDevice()); formulaMutilUpTasks.setFinishWeight(mDecimalFormat.format(weight)); formulaMutilUpTasks.setRecipeID(formulaInvoiceInfo.getRecipeID()); formulaMutilUpTasks.setDone(formulaInvoiceInfo.isDone()); formulaMutilUpTasks.setID(formulaInvoiceInfo.getID()); formulaMutilUpTasks.setStandWeight(formulaInvoiceInfo.getWeight()+""); formulaMutilUpTasks.setDeviationWeight(formulaInvoiceInfo.getDeviationWeight()); formulaMutilUpTasks.setDecimalsNum(decimalsNum); formulaMutilUpTasks.setDeviationWeight(formulaInvoiceInfo.getDeviationWeight()); mMutilShowDetailTaskses.add(formulaMutilUpTasks); for (FormulaMutilUpDetailTasks mutilUpDetailTaskse : mMutilShowDetailTaskses) { if (null != mCheckedMap.get(mutilUpDetailTaskse.getDevice()) && mCheckedMap.get (mutilUpDetailTaskse.getDevice())) { mCheckedMap.put(mutilUpDetailTaskse.getDevice(), true); mSelectMap.put(mutilUpDetailTaskse.getDevice(), mutilUpDetailTaskse); } else { mCheckedMap.put(mutilUpDetailTaskse.getDevice(), false); mSelectMap.remove(mutilUpDetailTaskse.getDevice()); } } } } mFormulaManagerAdapter.setData(mMutilShowDetailTaskses); mFormulaManagerAdapter.notifyDataSetChanged(); if (mSelectMap.size() != 0 && mSelectMap.size() == mFormulaManagerAdapter.getFormulaManagementList().size()) { mIsSelectAll = true; mSelectText.setText(getResourcesString(R.string.select_none)); } else { mIsSelectAll = false; mSelectText.setText(getResourcesString(R.string.select_all)); } } else { setSearch(); } } }); mSelectText.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: if (mMutilShowDetailTaskses == null || mMutilShowDetailTaskses.size() == 0) { return true; } mSelectText.setTextColor(getResourcesColor(R.color.white)); mIsSelectAll = !mIsSelectAll; int size = mFormulaManagerAdapter.getFormulaManagementList().size(); List<FormulaMutilUpDetailTasks> formulaManagementList = mFormulaManagerAdapter .getFormulaManagementList(); if (formulaManagementList == null) return true; for (int i = 0; i < size; i++) { mCheckedMap.put(formulaManagementList.get(i).getDevice(), mIsSelectAll); } for (int i = 0; i < size; i++) { if (mIsSelectAll) { mAllUpselcetMap.put(formulaManagementList.get(i).getDevice(), formulaManagementList.get(i)); } else { mAllUpselcetMap.remove(formulaManagementList.get(i).getDevice()); } } mFormulaManagerAdapter.notifyDataSetChanged(); if (mIsSelectAll) { mSelectText.setText(getResourcesString(R.string.select_none)); mSelectAmount = mCheckedMap.size(); } else { mSelectText.setText(getResourcesString(R.string.select_all)); mSelectAmount = 0; } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: mSelectText.setTextColor(getResourcesColor(R.color.half_white)); break; } return true; } }); } public void setSearch() { if (mSearchEditText.getText().length() == 0) { mSearchEditText.setTextColor(getResourcesColor(R.color.formula_loginbtn)); mSearchEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, getResourcesDrawable(R.drawable.search_half_white), null); mSearchEditText.setHint(""); } InputMethodManager m = (InputMethodManager) getActivity().getSystemService(Context .INPUT_METHOD_SERVICE); // Globals.log("输入法调用到了" + m.isActive()); m.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); resetData(); } private void loadView() { mTvUpload = (TextView) mRootView.findViewById(R.id.upload); mSearchEditText = (EditText) mRootView.findViewById(R.id.tv_search); mFormulaManagerListView = (ListView) mRootView.findViewById(R.id.lv_formula_manager); mSelectText = (TextView) mRootView.findViewById(R.id.select); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.upload: onUploadClick(); break; } } private void onUploadClick() { if (mAllUpselcetMap != null) { if (mAllUpselcetMap.size() == 0) { showToast(getString(R.string.please_choice_formula)); return; } // log("0 mAllUpselcetMap : " + mAllUpselcetMap.toString()); } if (LoginManager.RETURN_LOGIN_TRUE != LoginManager.checkFormulaAccountInfo(getActivity())) { LoginManager.showLoginDialog(LoginManager.FORMULA, getActivity(), new OnLoadingListener() { @Override public void loginSuccess(Dialog dialog, String user, LoginInfo loginInfo) { onUploadClick(); } @Override public void loginException(Dialog dialog) { } @Override public void loginFail(Dialog dialog, LoginFailInfo loginFailInfo) { } }); return; } mMutilUpDetailTaskses.clear(); //如果在有显示配方管理详情时,点击回传会只上传配方管理详情中所选的配方 boolean isCheckOk = true; ArrayList<String> noDoenList = new ArrayList<String>(); if (mAllUpselcetMap != null && mAllUpselcetMap.size() != 0) { mTvUpload.setTextColor(getResourcesColor(R.color.white)); mTvUpload.setCompoundDrawablesWithIntrinsicBounds(getResourcesDrawable(R.drawable .formula_upload_hit), null, null, null); for (FormulaMutilUpDetailTasks formulaMutilUpDetailTasks : mAllUpselcetMap.values()) { if (!formulaMutilUpDetailTasks.isDone()) { noDoenList.add(formulaMutilUpDetailTasks.getTileName()); isCheckOk = false; continue; } FormulaMutilInvoiceInfo formulaMutilInvoiceInfo = mFormulaCHisDbManager.querySingleWriteInfo(formulaMutilUpDetailTasks.getID(), formulaMutilUpDetailTasks.getRecipeID()); mMutilUpDetailTaskses.add(formulaMutilInvoiceInfo); } if (mMutilUpDetailTaskses != null && mMutilUpDetailTaskses.size() != 0) FormulaConvertUtils.convertUpdataMultiep(getActivity(), mMutilUpDetailTaskses); } else { isCheckOk = false; } if (!isCheckOk) { SimpleStyleDialog dialog = new SimpleStyleDialog(getActivity()); StringBuilder stringBuilder = new StringBuilder(); if (noDoenList.size() > 0) { if (noDoenList.size() != 0) { stringBuilder.append("\n"); } stringBuilder.append(getString(R.string.dialog_info_formula_nodetail)); for (int i = 0; i < noDoenList.size(); i++) { stringBuilder.append("\n" + " ---" + noDoenList.get(i)); } } dialog.setMessage(stringBuilder.toString(), getResourcesString(R.string.bottom_ok), getResourcesString(R.string.bottom_back)).show(); return; } mTvUpload.setTextColor(getResourcesColor(R.color.gray_white)); mTvUpload.setCompoundDrawablesWithIntrinsicBounds(getResourcesDrawable(R .drawable .formula_upload), null, null, null); if (mMutilShowDetailTaskses == null || mMutilShowDetailTaskses.size() == 0) { showToast(getString(R.string.please_choice_formula)); return; } if (!WifiUtil.isNetworkAvailable(getActivity())) { showToast(getResourcesString(R.string.network_do_not_pass)); return; } FormulaMutilHttpManager instance = FormulaMutilHttpManager.getInstance(getActivity()); showWaitDialog(); instance.updateMultiFormulaInfo(mMutilUpDetailTaskses, getActivity(), new FormulaOkHttpListener<String>() { @Override public void onResponse(final String response, Request request, Exception e) { Handler handler = new Handler(getActivity().getMainLooper()); if (e == null && request == null && response != null) { handler.post(new Runnable() { @Override public void run() { Gson gson = new Gson(); FormulaMulitTasks result = gson.fromJson(response, new TypeToken<FormulaMulitTasks>() { }.getType()); if (mFormulaCDbManager.deleteByID(result.getID()) && mFormulaCHisDbManager.deleteByID(result.getID())) { remoVariable(result); mFormulaCDbManager.deleteFormulaDoingByName(result.getDevice()); if (!isDetached() && isAdded()) { resetData(); showToast(getResourcesString(R.string.upload_successful)); closeWaitDialog(); } } } }); } else { if (e != null) { String errorMsg = e.getMessage(); if (!TextUtils.isEmpty(errorMsg)) { if (errorMsg.contains("Authorization")) { try { LoginManager.showLoginDialog(LoginManager.FORMULA, getActivity(), new OnLoadingListener() { @Override public void loginSuccess(Dialog dialog, String user, LoginInfo loginInfo) { try { onUploadClick(); } catch (Exception e1) { e1.printStackTrace(); } } @Override public void loginException(Dialog dialog) { } @Override public void loginFail(Dialog dialog, LoginFailInfo loginFailInfo) { } }); } catch (Exception ee) { ee.printStackTrace(); } } } } handler.post(new Runnable() { @Override public void run() { if (isAdded()) showToast(getResourcesString(R.string.upload_fail)); closeWaitDialog(); } }); } } }, new IUploadMultipleListener() { @Override public void onStatus(ArrayList<FormulaMulitTasks> list, ArrayList<Integer> errolist) { } }); } private void showWaitDialog() { try { //显示等待保存结果 if (mWaitDialog != null) { if (mWaitDialog.isShowing()) { mWaitDialog.dismiss(); } } mWaitDialog = new BaseWaitingDialog(getActivity(), getString(R.string.transmission_str)); mWaitDialog.show(); } catch (Exception e) { e.printStackTrace(); } } private void closeWaitDialog() { try { if (mWaitDialog != null && mWaitDialog.isShowing()) { mWaitDialog.dismiss(); } } catch (Exception e) { e.printStackTrace(); } } // @Override // public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) // { // if (mFormulaManagerAdapter.getFormulaManagementList() != null) // { // if(mFormulaManagerAdapter.getFormulaManagementList().get(position)!=null) // { // mFormulaManagerAdapter.getFormulaManagementList().get(position); // if(mFormulaLoginDialog!=null) // mFormulaLoginDialog.dismiss(); // mFormulaLoginDialog =null; // mFormulaLoginDialog = new FormulaLoginDialog(LoginManager.FORMULA, getActivity(), new OnLoadingListener() // { // // private UpdateWeightDataDialog mUpdateWeightDataDialog; // @Override // public void loginSuccess(Dialog dialog, String user, LoginInfo loginInfo) // { // showToast(getResourcesString(R.string.login_success)); // dialog.dismiss(); // } // // @Override // public void loginException(Dialog dialog) // { // showToast(getResourcesString(R.string.login_failure)); // dialog.dismiss(); // if(mUpdateWeightDataDialog!=null) // { // mUpdateWeightDataDialog.dismiss(); // mUpdateWeightDataDialog = null; // } // mUpdateWeightDataDialog = new UpdateWeightDataDialog(); // getString(R.string.chk_value1); // // Bundle bundle = new Bundle(); // bundle.putString("",getString(R.string.chk_value1)); // bundle.putString("",getString(R.string.accvalue)); // bundle.putString("",getString(R.string.tossweight)); // mUpdateWeightDataDialog.setArguments(bundle); // mUpdateWeightDataDialog.settingVariable("11","22","33"); // mUpdateWeightDataDialog.setOnDialogClickListener(new UpdateWeightDataDialog.OnDialogClickListener() // { // @Override // public void onOkClick(UpdateWeightDataDialog dialog, String inputString) // { // // } // // @Override // public void onCancelClick(UpdateWeightDataDialog dialog) // { // dialog.dismiss(); // } // }); // mUpdateWeightDataDialog.show(getChildFragmentManager(),UpdateWeightDataDialog.class.getSimpleName()); // } // @Override // public void loginFail(Dialog dialog, LoginFailInfo loginFailInfo) // { // showToast(getResourcesString(R.string.login_failure)); // dialog.dismiss(); // } // }); // mFormulaLoginDialog.show(); // } // } // return false; // } class FormulaManagerAdapter extends BaseAdapter { private View mCheckItem; private List<FormulaMutilUpDetailTasks> mDetailTasksList = new ArrayList<FormulaMutilUpDetailTasks>(); private FormulaMutilUpDetailTasks mFormulaMutilUpDetailTasks = null; public void setData(Map<String, FormulaMutilUpDetailTasks> formulaManagementMap) { if (null == formulaManagementMap) { return; } mSelectAmount = 0; Iterator iter = formulaManagementMap.entrySet().iterator(); mDetailTasksList.clear(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); FormulaMutilUpDetailTasks value = (FormulaMutilUpDetailTasks) entry.getValue(); if (mCheckedMap.get(value.getDevice())) { mSelectAmount++; } mDetailTasksList.add(value); } } public void setData(List<FormulaMutilUpDetailTasks> upDetailTasksList) { if (null == upDetailTasksList) { return; } mSelectAmount = 0; mDetailTasksList.clear(); mDetailTasksList.addAll(upDetailTasksList); for (FormulaMutilUpDetailTasks detailTaskse : mDetailTasksList) { if (mCheckedMap.get(detailTaskse.getDevice())) { mSelectAmount++; } } } public List<FormulaMutilUpDetailTasks> getFormulaManagementList() { return mDetailTasksList; } @Override public int getCount() { if (mDetailTasksList == null || mDetailTasksList.size() == 0) return 0; return mDetailTasksList.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (null == convertView) { convertView = LayoutInflater.from(getActivity()).inflate(R.layout .item_formula_manager_multipe, null); holder = new ViewHolder(); holder.checkbox = (CheckBox) convertView.findViewById(R.id.checkbox); holder.formulaName = (TextView) convertView.findViewById(R.id.formula_name); holder.name1 = (TextView) convertView.findViewById(R.id.name1);//id holder.amount1 = (TextView) convertView.findViewById(R.id.amount1);//weight holder.data1 = (LinearLayout) convertView.findViewById(R.id.data1); } else { holder = (ViewHolder) convertView.getTag(); } mFormulaMutilUpDetailTasks = mDetailTasksList.get(position); if (mFormulaMutilUpDetailTasks != null) { holder.formulaName.setText(mFormulaMutilUpDetailTasks.getTileName()); holder.name1.setText(mFormulaMutilUpDetailTasks.getDevice()); holder.amount1.setText(ConvertUtils.removeZero(mFormulaMutilUpDetailTasks.getFinishWeight()) + " " + mFormulaMutilUpDetailTasks.getUnit()); Globals.log("1 setFinishWeight : " + ConvertUtils.removeZero(mFormulaMutilUpDetailTasks.getFinishWeight() + " ")); holder.checkbox.setChecked(mCheckedMap.get(mFormulaMutilUpDetailTasks.getDevice())); convertView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (mFormulaManagerAdapter.getFormulaManagementList() != null) { if (mFormulaManagerAdapter.getFormulaManagementList().get(position) != null) { mFormulaManagerAdapter.getFormulaManagementList().get(position); if (mFormulaLoginDialog != null) mFormulaLoginDialog.dismiss(); mFormulaLoginDialog = null; mFormulaLoginDialog = new FormulaLoginDialog(LoginManager.ADMIN_FORMULA, getActivity(), new OnLoadingListener() { private UpdateWeightDataDialog mUpdateWeightDataDialog; @Override public void loginSuccess(Dialog dialog, String user, LoginInfo loginInfo) { showToast(getResourcesString(R.string.login_success)); dialog.dismiss(); mUpdateWeightDataDialog = new UpdateWeightDataDialog(); Bundle bundle = new Bundle(); final FormulaMutilUpDetailTasks formulaMutilUpDetailTasks = mDetailTasksList.get(position); final String standardWeight = ConvertUtils.removeZero(formulaMutilUpDetailTasks.getStandWeight()); final String finishWeight = ConvertUtils.removeZero(formulaMutilUpDetailTasks.getFinishWeight()); float tempDropWeight = FormulaMutilProcessManager.getDropWeight(getActivity(), formulaMutilUpDetailTasks.getDevice()); int dropUnitId = FormulaMutilProcessManager.getDropWeightUnitId(getActivity(), formulaMutilUpDetailTasks.getDevice()); final float dropWeight = FormulaConvertUtils.convertMultiep(getActivity(), formulaMutilUpDetailTasks.getDevice(), tempDropWeight, dropUnitId); bundle.putString(Constants.FORMULA_MULAT_STAND, getString(R.string.chk_value1) + standardWeight+" "+mFormulaMutilUpDetailTasks.getUnit()); bundle.putString(Constants.FORMULA_MULAT_ACC, getString(R.string.accvalue) + finishWeight +" "+ mFormulaMutilUpDetailTasks.getUnit()); bundle.putString(Constants.FORMULA_MULAT_TOSS, getString(R.string.tossweight) + dropWeight + " " + mFormulaMutilUpDetailTasks.getUnit()); bundle.putString(Constants.FORMULA_MULAT_DEVIATION_WEIGHT, getString(R.string.deviation_weight_hint) + ConvertUtils.removeZero((float)mFormulaMutilUpDetailTasks.getDeviationWeight() +"") + " " + mFormulaMutilUpDetailTasks.getUnit()); mUpdateWeightDataDialog.setArguments(bundle); mUpdateWeightDataDialog.setOnDialogClickListener(new UpdateWeightDataDialog.OnDialogClickListener() { @Override public void onOkClick(UpdateWeightDataDialog dialog, float inputWeight) { log("inputString : "+inputWeight); // if(Float.valueOf(inputString)>=0 && // Float.valueOf(inputString)<=Float.valueOf(ConvertUtils.removeZero(mDetailTasksList.get(position).getStandWeight()))) // { float sumWeight = 0.0f; float sWeight = 0.0f; String sumWeightString = "0"; try { float fWeight = Float.parseFloat(finishWeight); sWeight = Float.parseFloat(standardWeight); sumWeight = fWeight + dropWeight + inputWeight; if (fWeight == 0f) { WeightFormat.updateFormat(mDecimalFormat,Constants.DEFAULT_FORMULA_DECIAL_NUM); } else { WeightFormat.updateFormat(mDecimalFormat,formulaMutilUpDetailTasks.getDecimalsNum()); } sumWeightString = mDecimalFormat.format(sumWeight); } catch (Exception e) { e.printStackTrace(); } SimpleStyleDialog simpleStyleDialog = new SimpleStyleDialog(getActivity()); simpleStyleDialog.setMessage(String.format(getString(R.string.update_formula_weight_hint), sumWeightString)); final float finalSumWeight = sumWeight; final float finalSWeight1 = sWeight; final float finalIWeight1 = inputWeight; simpleStyleDialog.setOnDialogClickListener(new SimpleStyleDialog.OnDialogClickListener() { @Override public void onOkClick(SimpleStyleDialog dialog) { FormulaMutilHisRecInfo weightInfo = new FormulaMutilHisRecInfo(); weightInfo.setID(formulaMutilUpDetailTasks.getID()); weightInfo.setRecipeID(formulaMutilUpDetailTasks.getRecipeID()); weightInfo.setWeight(finalIWeight1 + dropWeight); // 机型单位的显示值 weightInfo.setDecimalsNum(formulaMutilUpDetailTasks.getDecimalsNum()); weightInfo.setUnitId(FormulaMutilManager.DEFAULT_UNITID); // 机型单位id weightInfo.setDate(DateTimeUtils.getStringDate()); // 时间日期 weightInfo.setScaleName(formulaMutilUpDetailTasks.getDevice()); // 设备名称 mFormulaCHisDbManager.insert(weightInfo); if (finalSumWeight >= (finalSWeight1 -formulaMutilUpDetailTasks.getDeviationWeight())) { mFormulaCDbManager.updateMaterialDoneState(formulaMutilUpDetailTasks.getID(), formulaMutilUpDetailTasks.getRecipeID(),true); } mUpdateWeightDataDialog.dismiss(); resetData(); FormulaMutilProcessManager.clearConfig(getActivity()); } @Override public void onCancelClick(SimpleStyleDialog dialog) { } }); simpleStyleDialog.setCancelable(false); simpleStyleDialog.setCanceledOnTouchOutside(false); simpleStyleDialog.show(); // mFormulaCHisDbManager.insert(); // if(mFormulaCHisDbManager.updateMaterialWeight(mDetailTasksList.get(position).getID(),Float.valueOf(inputString))) // { // showToast(getString(R.string.modified_success)); // resetData(); // } // }else // { // showToast(getString(R.string.inputweightwarning)); // } } @Override public void onCancelClick(UpdateWeightDataDialog dialog) { } }); mUpdateWeightDataDialog.show(getChildFragmentManager(), UpdateWeightDataDialog.class.getSimpleName()); } @Override public void loginException(Dialog dialog) { showToast(getResourcesString(R.string.login_failure)); dialog.dismiss(); if (mUpdateWeightDataDialog != null) { mUpdateWeightDataDialog.dismiss(); mUpdateWeightDataDialog = null; } } @Override public void loginFail(Dialog dialog, LoginFailInfo loginFailInfo) { showToast(getResourcesString(R.string.login_failure)); dialog.dismiss(); } }); mFormulaLoginDialog.show(); } } return false; } }); convertView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { holder.checkbox.setChecked(!holder.checkbox.isChecked()); if (holder.checkbox.isChecked()) { mAllUpselcetMap.put(mDetailTasksList.get(position).getDevice(), mDetailTasksList.get(position)); } else { mAllUpselcetMap.remove(mDetailTasksList.get(position).getDevice()); } mCheckedMap.put(mDetailTasksList.get(position).getDevice(), holder.checkbox.isChecked()); // Globals.log("1 mCheckedMap : " + mDetailTasksList.get(position) + " | " + holder.checkbox.isChecked() + "|" + position); if (mSearchEditText.getText().length() == 0) { mSearchEditText.setTextColor(getResourcesColor(R.color.formula_loginbtn)); mSearchEditText.setCompoundDrawablesWithIntrinsicBounds(null, null, getResourcesDrawable(R.drawable.search_half_white), null); mSearchEditText.setHint(""); } if (holder.checkbox.isChecked()) { mSelectAmount++; } else { mSelectAmount--; } int size = mDetailTasksList.size(); if (mSelectAmount == size) { mIsSelectAll = true; mSelectText.setText(getResourcesString(R.string.select_none)); } else { mIsSelectAll = false; mSelectText.setText(getResourcesString(R.string.select_all)); } } }); } convertView.setTag(holder); return convertView; } protected void setCheckItem(View checkItem) { mCheckItem = checkItem; } protected View getCheckItem() { return mCheckItem; } } class ViewHolder { CheckBox checkbox; TextView formulaName; TextView name1; TextView amount1; LinearLayout data1; } @Override public void onResume() { super.onResume(); EventBus.getDefault().register(this); } @Override public void onPause() { super.onPause(); EventBus.getDefault().unregister(this); } public void onEventMainThread(FormulaMulitTasks response) { // resetData(); } private void remoVariable(FormulaMulitTasks result) { if (result == null) { return; } if (mAllUpselcetMap != null) mAllUpselcetMap.remove(result.getDevice()); if (mSelectMap != null) mSelectMap.remove(result.getDevice()); if (mFormulaShowMap != null) mFormulaShowMap.remove(result.getDevice()); if (mCheckedMap != null) mCheckedMap.remove(result.getDevice()); } }
xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/formula_manager_background" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/navy_blue" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="@dimen/standard_padding"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="@string/formula_manager_fragment" android:textColor="@color/white" android:textSize="@dimen/formula_title"/> <EditText android:id="@+id/tv_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/standard_margin" android:background="@drawable/search_box" android:drawableEnd="@drawable/search_half_white" android:gravity="center" android:imeOptions="flagNoExtractUi" android:maxEms="10" android:singleLine="true" android:textColor="@color/formula_loginbtn" android:textCursorDrawable="@null"/> <TextView android:id="@+id/select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/upload" android:layout_alignTop="@+id/upload" android:layout_marginEnd="@dimen/standard_margin" android:layout_toLeftOf="@+id/upload" android:background="@drawable/search_box" android:gravity="center" android:paddingEnd="@dimen/standard_padding" android:paddingStart="@dimen/standard_padding" android:singleLine="true" android:text="@string/select_all" android:textColor="@color/gray_white" android:textSize="@dimen/formula_manager_upload"/> <TextView android:id="@+id/upload" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerVertical="true" android:layout_marginEnd="@dimen/standard_margin" android:layout_marginStart="@dimen/standard_margin" android:background="@drawable/search_box" android:drawableStart="@drawable/formula_upload" android:gravity="center" android:imeOptions="flagNoExtractUi" android:maxEms="10" android:paddingEnd="@dimen/standard_padding" android:singleLine="true" android:text="@string/erp_action_up_load" android:textColor="@color/gray_white" android:textCursorDrawable="@null" android:textSize="@dimen/formula_manager_upload"/> </RelativeLayout> <FrameLayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:background="@color/white"> <ListView android:id="@+id/lv_formula_manager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="@dimen/standard_margin" android:background="@color/white" android:divider="@color/white" android:dividerHeight="@dimen/standard_margin"/> </FrameLayout> </LinearLayout>