Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.sil.salesorder.product.adapter;
- import java.util.ArrayList;
- import java.util.HashMap;
- import android.app.AlertDialog;
- import android.content.Context;
- import android.content.DialogInterface;
- import android.database.Cursor;
- import android.graphics.Color;
- import android.support.v4.widget.CursorAdapter;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.ViewGroup;
- import android.widget.AlphabetIndexer;
- import android.widget.EditText;
- import android.widget.SectionIndexer;
- import android.widget.TextView;
- import com.sil.salesorder.OrderUpdateListener;
- import com.sil.salesorder.ProductQuantityChangeListener;
- import com.sil.salesorder.R;
- import com.sil.salesorder.db.DatabaseHelper;
- import com.sil.salesorder.order.model.OrderDetails;
- import com.sil.salesorder.product.model.Product;
- import com.sil.salesorder.widget.OrderQtyInputView;
- public class ProductAdapter2 extends CursorAdapter implements SectionIndexer,ProductQuantityChangeListener{
- AlphabetIndexer mAlphabetIndexer;
- HashMap<String, Integer> productQuantityData = new HashMap<String, Integer>();
- ArrayList<Product> proList = new ArrayList<Product>();
- ArrayList<OrderDetails> orderList;
- Context mContext;
- Cursor mCursor;
- OrderUpdateListener mOrderUpdateListener = null;
- public ProductAdapter2(Context context, Cursor cursor,ArrayList<OrderDetails> list) {
- super(context, cursor);
- Log.d("ProductAdapter2 ", "ProductAdapter2 is called...");
- mAlphabetIndexer = new AlphabetIndexer(cursor,
- cursor.getColumnIndex(DatabaseHelper.PRODUCT_NAME), " ABCDEFGHIJKLMNOPQRTSUVWXYZ");
- mAlphabetIndexer.setCursor(cursor);
- this.mContext = context;
- this.mCursor = cursor;
- populateProductList(cursor);
- this.orderList = list;
- if( this.orderList != null ){
- Log.d("this.orderList ", this.orderList.size()+"");
- }
- }
- @Override
- public void bindView(final View view, Context context, Cursor cursor) {
- int index = cursor.getPosition();
- Product product = proList.get(index) ;
- String mProductCode = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_CODE));// ara
- // String mOrderQuantity = cursor.getString(cursor.getColumnIndex(DatabaseHelper.ORDER_QTY));// ara
- ViewHolder holder = (ViewHolder) view.getTag();
- holder.productCode.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_CODE)));
- holder.productName.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_NAME)));
- holder.packSize.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PACK_SIZE)));
- holder.unitTp.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_TP)));
- holder.unitVat.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_VAT)));
- if(this.orderList != null && orderList.size() > 0){
- for(OrderDetails order:orderList){
- if(product.getProductCode().equals(order.getProductCode())){
- //Log.d("String.valueOf(order.getQty()) ", String.valueOf(order.getQty())+"");
- product.setQty(String.valueOf(order.getQty()));
- }
- }
- }
- holder.orderQty.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- TextView tv;
- tv = (TextView)view.findViewById(R.id.txtProductName);
- String productName = tv.getText().toString();
- TextView tvOrderQty = (TextView)view.findViewById(R.id.txtOrderQty);
- String orderQty = tvOrderQty.getText().toString();
- tvOrderQty.setText(orderQty);
- Product product = (Product) tvOrderQty.getTag();
- inputOrderQty(tvOrderQty, orderQty,productName,product);
- }
- });
- holder.orderQty.setTag(product.getQty());
- // Log.d("product ::", ""+product+""+product.getQty());
- if (product.getQty() != null) {
- holder.orderQty.setText(product.getQty());
- } else {
- holder.orderQty.setText("0");
- }
- // view.setOnTouchListener(new CountingTouchListener(mProductCode, holder.orderQty, view, product.getQty(), this,product));
- }
- @Override
- public View newView(Context context, Cursor cursor, ViewGroup parent) {
- LayoutInflater inflater = LayoutInflater.from(parent.getContext());
- View view = inflater.inflate(R.layout.product_list_row, parent, false);
- ViewHolder holder = new ViewHolder();
- holder.productCode = (TextView)view.findViewById(R.id.txtProductCode);
- holder.productName = (TextView)view.findViewById(R.id.txtProductName);
- holder.packSize = (TextView)view.findViewById(R.id.txtPackSize);
- holder.unitTp = (TextView)view.findViewById(R.id.txtUnitPrice);
- holder.unitVat = (TextView)view.findViewById(R.id.txtVat);
- holder.orderQty = (TextView)view.findViewById(R.id.txtOrderQty);
- holder.orderQty.setTextColor(Color.BLUE);
- view.setTag(holder);
- return view;
- }
- private void inputOrderQty(TextView tvOrderQty, final String orderQty,final String productName,final Product product) {
- AlertDialog.Builder alert = new AlertDialog.Builder(mContext);
- LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- View view = inflater.inflate(R.layout.order_qty_input, null);
- alert.setView(view);
- OrderQtyInputView orderQtyInputView = new OrderQtyInputView(mContext,alert,productName);
- // orderQtyInputView.
- final EditText edtQty = (EditText) view.findViewById(R.id.edtQty);
- edtQty.setSelectAllOnFocus(true);
- edtQty.setText(orderQty);
- final TextView txtview = tvOrderQty;
- alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int whichButton) {
- String qty = edtQty.getText().toString();
- if (qty != null && !qty.equals("")) {
- txtview.setText(qty);
- product.setQty(qty);
- mOrderUpdateListener.updateOrderData(product.getProductCode(), productName,
- product.getPackSize(), product.getUnitTp(), product.getUnitVat(), qty);
- }else if(qty == null || qty.equalsIgnoreCase("") || qty.equalsIgnoreCase("0")){
- txtview.setText("0");
- product.setQty("0");
- mOrderUpdateListener.updateOrderData(product.getProductCode(), productName,
- product.getPackSize(), product.getUnitTp(), product.getUnitVat(), txtview.getText().toString());
- }
- }
- });
- alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int whichButton) {
- txtview.setText(orderQty);
- }
- });
- alert.show();
- }
- private void populateProductList(Cursor cursor) {
- if (cursor != null && cursor.getCount() > 0) {
- cursor.moveToFirst();
- for (int i = 0; i < cursor.getCount(); i++) {
- String productCode = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_CODE));
- String productName = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_NAME));
- String packSize = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PACK_SIZE));
- String unitTp = cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_TP));
- String unitVat = cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_VAT));
- Product product = new Product(productCode, productName, packSize, unitTp, unitVat, null, null) ;
- proList.add(product);
- cursor.moveToNext();
- }
- }
- }
- public void changeCursors(Cursor c) {
- this.changeCursor(c);
- mAlphabetIndexer.setCursor(c);
- }
- public void setOrderUpdateListener(OrderUpdateListener mListener) {
- mOrderUpdateListener = mListener;
- }
- @Override
- public int getPositionForSection(int section) {
- return mAlphabetIndexer.getPositionForSection(section);
- }
- @Override
- public int getSectionForPosition(int position) {
- return mAlphabetIndexer.getSectionForPosition(position);
- }
- @Override
- public Object[] getSections() {
- return mAlphabetIndexer.getSections();
- }
- @Override
- public void productQuantityChanged(String productCode, int quantity,
- View view) {
- }
- @Override
- public void productQuantityChanged(String productCode, int quantity) {
- }
- private static class ViewHolder {
- TextView productCode;
- TextView productName;
- TextView packSize;
- TextView unitTp;
- TextView unitVat;
- TextView orderQty;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement