package eu.ttbox.androgister.ui.order; import java.text.SimpleDateFormat; import java.util.Date; import android.content.Context; import android.database.Cursor; import android.view.View; import android.view.ViewGroup; import android.widget.ResourceCursorAdapter; import android.widget.TextView; import eu.ttbox.androgister.AndroGisterApplication; import eu.ttbox.androgister.R; import eu.ttbox.androgister.core.PriceHelper; import eu.ttbox.androgister.domain.OrderDao; import eu.ttbox.androgister.domain.OrderDao.OrderCursorHelper; import eu.ttbox.androgister.domain.dao.helper.OrderHelper; import eu.ttbox.androgister.domain.ref.OrderStatusEnum; public class OrderListAdapter extends ResourceCursorAdapter { private OrderCursorHelper helper; private java.text.DateFormat dateFormat; public OrderListAdapter(Context context, int layout, Cursor c, int flags) { super(context, layout, c, flags); AndroGisterApplication app = (AndroGisterApplication) context.getApplicationContext(); OrderDao orderDao = app.getDaoSession().getOrderDao(); helper = orderDao.getCursorHelper(null); // FOrmat dateFormat = OrderHelper.getOrderDateFormat(context); } public void setTextOrderStatus(TextView view, Cursor cursor) { int statusId = helper.getStatusId(cursor); OrderStatusEnum status = OrderStatusEnum.getEnumFromKey(statusId); if (status != null) { view.setText(status.name()); } else { view.setText(null); } } @Override public void bindView(View view, Context context, Cursor cursor) { if (helper.isNotInit) { helper.initWrapper(cursor); } // Bind View ViewHolder holder =(ViewHolder)view.getTag(); // Bind Value helper .setTextOrderUUID(holder.orderUuidText, cursor)// .setTextPersonFirstname(holder.personFirstnameText, cursor) // .setTextPersonLastname(holder.personLastnameText, cursor) // .setTextPersonMatricule(holder.personMatriculeText, cursor) // ; setTextOrderStatus(holder.statusText, cursor); // Number holder.orderNumText.setText(String.valueOf(helper.getOrderNumber(cursor))); // Date String dateAsString = dateFormat.format( helper.getOrderDate(cursor) ); holder.dateText.setText(dateAsString); // Price String priceSum = PriceHelper.getToStringPrice(helper.getPriceSumHT(cursor) ); holder.priceText.setText(priceSum); // Test Invalid if (OrderHelper.isOrderDeletePossible(cursor, helper)) { view.setBackgroundResource(R.drawable.entity_list_item_bg); } else { view.setBackgroundResource(R.drawable.order_list_item_cancel_bg); } } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = super.newView(context, cursor, parent); // Then populate the ViewHolder ViewHolder holder = new ViewHolder(); holder.orderNumText = (TextView) view.findViewById(R.id.order_list_item_orderNum); holder.orderUuidText = (TextView) view.findViewById(R.id.order_list_item_orderUuid); holder.dateText = (TextView) view.findViewById(R.id.order_list_item_date); holder.statusText = (TextView) view.findViewById(R.id.order_list_item_status); holder.priceText = (TextView) view.findViewById(R.id.order_list_item_price); // Person holder.personFirstnameText = (TextView) view.findViewById(R.id.order_list_item_person_firstname); holder.personLastnameText = (TextView) view.findViewById(R.id.order_list_item_person_lastname); holder.personMatriculeText = (TextView) view.findViewById(R.id.order_list_item_person_matricule); // and store it inside the layout. view.setTag(holder); return view; } static class ViewHolder { TextView orderNumText; TextView orderUuidText; TextView dateText; TextView statusText; TextView priceText; // Person TextView personFirstnameText; TextView personLastnameText; TextView personMatriculeText; } }