Advertisement
Guest User

Untitled

a guest
Jan 29th, 2015
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.22 KB | None | 0 0
  1. package com.sil.salesorder.product.adapter;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5.  
  6. import android.app.AlertDialog;
  7. import android.content.Context;
  8. import android.content.DialogInterface;
  9. import android.database.Cursor;
  10. import android.graphics.Color;
  11. import android.support.v4.widget.CursorAdapter;
  12. import android.util.Log;
  13. import android.view.LayoutInflater;
  14. import android.view.View;
  15. import android.view.View.OnClickListener;
  16. import android.view.ViewGroup;
  17. import android.widget.AlphabetIndexer;
  18. import android.widget.EditText;
  19. import android.widget.SectionIndexer;
  20. import android.widget.TextView;
  21.  
  22. import com.sil.salesorder.OrderUpdateListener;
  23. import com.sil.salesorder.ProductQuantityChangeListener;
  24. import com.sil.salesorder.R;
  25. import com.sil.salesorder.db.DatabaseHelper;
  26. import com.sil.salesorder.order.model.OrderDetails;
  27. import com.sil.salesorder.product.model.Product;
  28. import com.sil.salesorder.widget.OrderQtyInputView;
  29.  
  30.  
  31.  
  32. public class ProductAdapter2 extends CursorAdapter implements SectionIndexer,ProductQuantityChangeListener{
  33.  
  34. AlphabetIndexer mAlphabetIndexer;
  35. HashMap<String, Integer> productQuantityData = new HashMap<String, Integer>();
  36. ArrayList<Product> proList = new ArrayList<Product>();
  37. ArrayList<OrderDetails> orderList;
  38. Context mContext;
  39. Cursor mCursor;
  40.  
  41. OrderUpdateListener mOrderUpdateListener = null;
  42. public ProductAdapter2(Context context, Cursor cursor,ArrayList<OrderDetails> list) {
  43.  
  44. super(context, cursor);
  45. Log.d("ProductAdapter2 ", "ProductAdapter2 is called...");
  46. mAlphabetIndexer = new AlphabetIndexer(cursor,
  47. cursor.getColumnIndex(DatabaseHelper.PRODUCT_NAME), " ABCDEFGHIJKLMNOPQRTSUVWXYZ");
  48. mAlphabetIndexer.setCursor(cursor);
  49. this.mContext = context;
  50. this.mCursor = cursor;
  51. populateProductList(cursor);
  52. this.orderList = list;
  53. if( this.orderList != null ){
  54. Log.d("this.orderList ", this.orderList.size()+"");
  55. }
  56.  
  57.  
  58. }
  59.  
  60.  
  61.  
  62. @Override
  63. public void bindView(final View view, Context context, Cursor cursor) {
  64. int index = cursor.getPosition();
  65. Product product = proList.get(index) ;
  66. String mProductCode = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_CODE));// ara
  67. // String mOrderQuantity = cursor.getString(cursor.getColumnIndex(DatabaseHelper.ORDER_QTY));// ara
  68. ViewHolder holder = (ViewHolder) view.getTag();
  69. holder.productCode.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_CODE)));
  70. holder.productName.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_NAME)));
  71. holder.packSize.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.PACK_SIZE)));
  72. holder.unitTp.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_TP)));
  73. holder.unitVat.setText(cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_VAT)));
  74.  
  75.  
  76.  
  77. if(this.orderList != null && orderList.size() > 0){
  78.  
  79. for(OrderDetails order:orderList){
  80. if(product.getProductCode().equals(order.getProductCode())){
  81. //Log.d("String.valueOf(order.getQty()) ", String.valueOf(order.getQty())+"");
  82. product.setQty(String.valueOf(order.getQty()));
  83. }
  84. }
  85. }
  86.  
  87. holder.orderQty.setOnClickListener(new OnClickListener() {
  88.  
  89. @Override
  90. public void onClick(View v) {
  91.  
  92. TextView tv;
  93. tv = (TextView)view.findViewById(R.id.txtProductName);
  94. String productName = tv.getText().toString();
  95. TextView tvOrderQty = (TextView)view.findViewById(R.id.txtOrderQty);
  96. String orderQty = tvOrderQty.getText().toString();
  97. tvOrderQty.setText(orderQty);
  98. Product product = (Product) tvOrderQty.getTag();
  99. inputOrderQty(tvOrderQty, orderQty,productName,product);
  100. }
  101. });
  102.  
  103. holder.orderQty.setTag(product.getQty());
  104. // Log.d("product ::", ""+product+""+product.getQty());
  105. if (product.getQty() != null) {
  106. holder.orderQty.setText(product.getQty());
  107. } else {
  108. holder.orderQty.setText("0");
  109. }
  110.  
  111. // view.setOnTouchListener(new CountingTouchListener(mProductCode, holder.orderQty, view, product.getQty(), this,product));
  112.  
  113.  
  114. }
  115.  
  116. @Override
  117. public View newView(Context context, Cursor cursor, ViewGroup parent) {
  118. LayoutInflater inflater = LayoutInflater.from(parent.getContext());
  119. View view = inflater.inflate(R.layout.product_list_row, parent, false);
  120.  
  121. ViewHolder holder = new ViewHolder();
  122. holder.productCode = (TextView)view.findViewById(R.id.txtProductCode);
  123. holder.productName = (TextView)view.findViewById(R.id.txtProductName);
  124. holder.packSize = (TextView)view.findViewById(R.id.txtPackSize);
  125. holder.unitTp = (TextView)view.findViewById(R.id.txtUnitPrice);
  126. holder.unitVat = (TextView)view.findViewById(R.id.txtVat);
  127. holder.orderQty = (TextView)view.findViewById(R.id.txtOrderQty);
  128. holder.orderQty.setTextColor(Color.BLUE);
  129. view.setTag(holder);
  130.  
  131. return view;
  132. }
  133.  
  134.  
  135. private void inputOrderQty(TextView tvOrderQty, final String orderQty,final String productName,final Product product) {
  136. AlertDialog.Builder alert = new AlertDialog.Builder(mContext);
  137. LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  138. View view = inflater.inflate(R.layout.order_qty_input, null);
  139. alert.setView(view);
  140.  
  141. OrderQtyInputView orderQtyInputView = new OrderQtyInputView(mContext,alert,productName);
  142. // orderQtyInputView.
  143.  
  144. final EditText edtQty = (EditText) view.findViewById(R.id.edtQty);
  145. edtQty.setSelectAllOnFocus(true);
  146. edtQty.setText(orderQty);
  147. final TextView txtview = tvOrderQty;
  148.  
  149. alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
  150. @Override
  151. public void onClick(DialogInterface dialog, int whichButton) {
  152. String qty = edtQty.getText().toString();
  153.  
  154. if (qty != null && !qty.equals("")) {
  155. txtview.setText(qty);
  156. product.setQty(qty);
  157.  
  158. mOrderUpdateListener.updateOrderData(product.getProductCode(), productName,
  159. product.getPackSize(), product.getUnitTp(), product.getUnitVat(), qty);
  160.  
  161. }else if(qty == null || qty.equalsIgnoreCase("") || qty.equalsIgnoreCase("0")){
  162. txtview.setText("0");
  163. product.setQty("0");
  164. mOrderUpdateListener.updateOrderData(product.getProductCode(), productName,
  165. product.getPackSize(), product.getUnitTp(), product.getUnitVat(), txtview.getText().toString());
  166. }
  167. }
  168. });
  169.  
  170. alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  171. @Override
  172. public void onClick(DialogInterface dialog, int whichButton) {
  173. txtview.setText(orderQty);
  174. }
  175. });
  176.  
  177. alert.show();
  178. }
  179.  
  180. private void populateProductList(Cursor cursor) {
  181.  
  182. if (cursor != null && cursor.getCount() > 0) {
  183. cursor.moveToFirst();
  184. for (int i = 0; i < cursor.getCount(); i++) {
  185. String productCode = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_CODE));
  186. String productName = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PRODUCT_NAME));
  187. String packSize = cursor.getString(cursor.getColumnIndex(DatabaseHelper.PACK_SIZE));
  188. String unitTp = cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_TP));
  189. String unitVat = cursor.getString(cursor.getColumnIndex(DatabaseHelper.UNIT_VAT));
  190. Product product = new Product(productCode, productName, packSize, unitTp, unitVat, null, null) ;
  191. proList.add(product);
  192. cursor.moveToNext();
  193. }
  194. }
  195. }
  196.  
  197. public void changeCursors(Cursor c) {
  198.  
  199. this.changeCursor(c);
  200. mAlphabetIndexer.setCursor(c);
  201.  
  202. }
  203.  
  204. public void setOrderUpdateListener(OrderUpdateListener mListener) {
  205.  
  206. mOrderUpdateListener = mListener;
  207. }
  208.  
  209. @Override
  210. public int getPositionForSection(int section) {
  211.  
  212. return mAlphabetIndexer.getPositionForSection(section);
  213. }
  214.  
  215. @Override
  216. public int getSectionForPosition(int position) {
  217.  
  218. return mAlphabetIndexer.getSectionForPosition(position);
  219. }
  220.  
  221. @Override
  222. public Object[] getSections() {
  223. return mAlphabetIndexer.getSections();
  224. }
  225.  
  226. @Override
  227. public void productQuantityChanged(String productCode, int quantity,
  228. View view) {
  229.  
  230.  
  231. }
  232.  
  233. @Override
  234. public void productQuantityChanged(String productCode, int quantity) {
  235.  
  236. }
  237.  
  238. private static class ViewHolder {
  239. TextView productCode;
  240. TextView productName;
  241. TextView packSize;
  242. TextView unitTp;
  243. TextView unitVat;
  244. TextView orderQty;
  245. }
  246.  
  247.  
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement