Rev 2313 | Rev 3994 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.hotspot.dashbaord.client.inbox;import in.shop2020.hotspot.dashbaord.client.event.LoadOrderDetailsEvent;import in.shop2020.hotspot.dashbaord.shared.actions.Order;import java.util.Date;import java.util.List;import org.enunes.gwt.mvp.client.EventBus;import com.google.gwt.core.client.GWT;import com.google.gwt.event.dom.client.ClickEvent;import com.google.gwt.event.dom.client.ClickHandler;import com.google.gwt.resources.client.CssResource;import com.google.gwt.uibinder.client.UiBinder;import com.google.gwt.uibinder.client.UiField;import com.google.gwt.user.client.ui.Anchor;import com.google.gwt.user.client.ui.FlexTable;import com.google.gwt.user.client.ui.ResizeComposite;import com.google.gwt.user.client.ui.Widget;public class OrderList extends ResizeComposite{private int selectedRow = -1;//private boolean selectedRowIsAlerted = false;public interface Listener{void onSelectItem();}interface OrderListUiBinder extends UiBinder<Widget, OrderList>{ }interface SelectionStyle extends CssResource{String selectedRow();String alertsRow();}//add gin hereprivate static final OrderListUiBinder binder = GWT.create(OrderListUiBinder.class);@UiField FlexTable header;@UiField FlexTable table;@UiField SelectionStyle selectionStyle;private final EventBus eventbus;private final List<Order> orders;public OrderList(EventBus eventbus, List<Order> orders){this.orders = orders;initWidget(binder.createAndBindUi(this));this.eventbus = eventbus;initTable();updateTable();selectedRow = -1;}private void initTable(){// Initialize the header.header.getColumnFormatter().setWidth(0, "80px");header.getColumnFormatter().setWidth(1, "80px");header.getColumnFormatter().setWidth(2, "100px");header.getColumnFormatter().setWidth(3, "100px");header.getColumnFormatter().setWidth(4, "250px");header.getColumnFormatter().setWidth(5, "150px");header.getColumnFormatter().setWidth(6, "150px");header.getColumnFormatter().setWidth(7, "200px");header.setText(0, 0, "Batch No");header.setText(0, 1, "Serial No");header.setText(0, 2, "Type");header.setText(0, 3, "Order Id");header.setText(0, 4, "Product Description");header.setText(0, 5, "Date Created");header.setText(0, 6, "Expected Delivery");header.setText(0, 7, "Current Status");// Initialize the table.table.getColumnFormatter().setWidth(0, "80px");table.getColumnFormatter().setWidth(1, "80px");table.getColumnFormatter().setWidth(2, "100px");table.getColumnFormatter().setWidth(3, "100px");table.getColumnFormatter().setWidth(4, "250px");table.getColumnFormatter().setWidth(5, "150px");table.getColumnFormatter().setWidth(6, "150px");table.getColumnFormatter().setWidth(7, "200px");}private void selectRow(int row) {// When a row (other than the first one, which is used as a header) is// selected, display its associated MailItem.if(selectedRow != -1){styleRow(selectedRow, false);}styleRow(row, true);selectedRow = row;}private void styleRow(int row, boolean selected) {if (row != -1) {String style = selectionStyle.selectedRow();if (selected) {table.getRowFormatter().addStyleName(row, style);} else {table.getRowFormatter().removeStyleName(row, style);}}}private void alertRow(int row, boolean remove){if (row != -1) {String style = selectionStyle.alertsRow();if(!remove)table.getRowFormatter().addStyleName(row, style);else{table.getRowFormatter().removeStyleName(row, style);}}}private String getDisplayableDate(Date date){String dateString = date.toString();dateString = dateString.substring(0, dateString.lastIndexOf(" "));dateString = dateString.substring(0, dateString.lastIndexOf(" "));return dateString;}private void updateTable(){int i = 0;for(final Order order : orders){StringBuilder productDescription = new StringBuilder(order.getProductGroup());if(order.getBrand()!=null)productDescription.append(" " + order.getBrand());if(order.getModelNumber()!=null)productDescription.append(" " + order.getModelNumber());if(order.getModelName()!=null)productDescription.append(" " + order.getModelName());if(order.getColor()!=null)productDescription.append(" " + order.getColor());Anchor orderIdAnchor = new Anchor(order.getOrderId() + "");table.setText(i, 0, "" + order.getBatchNo());table.setText(i, 1, "" + order.getSerialNo());table.setText(i, 2, order.isCod() ? "COD" : "Prepaid");table.setWidget(i, 3, orderIdAnchor);table.setText(i, 4, productDescription.toString());table.setText(i, 5, getDisplayableDate(new Date(order.getCreatedOn()))+"");table.setText(i, 6, getDisplayableDate(new Date(order.getExpectedDeliveryTime()))+"");table.setText(i, 7, order.getStatusMessage());i++;final int j =i-1;if (order.isAlert()){alertRow(i-1, false);}orderIdAnchor.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {selectRow(j);eventbus.fireEvent(new LoadOrderDetailsEvent(order));}});}}}