Rev 306 | Rev 487 | 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.Calendar;import java.util.Date;import java.util.List;import java.util.Locale;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.HasHorizontalAlignment;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 Binder extends UiBinder<Widget, OrderList>{ }interface SelectionStyle extends CssResource{String selectedRow();String alertsRow();}//add gin hereprivate static final Binder binder = GWT.create(Binder.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, "128px");header.getColumnFormatter().setWidth(1, "128px");header.getColumnFormatter().setWidth(2, "200px");header.getColumnFormatter().setWidth(3, "200px");header.getColumnFormatter().setWidth(4, "200px");//header.getColumnFormatter().setWidth(5, "128px");header.setText(0, 0, "Order Id");header.setText(0, 1, "Customer Id");header.setText(0, 2, "Date Created");header.setText(0, 3, "Expected Delivery");header.setText(0, 4, "Current Status");header.setText(0, 5, "Comments");// Initialize the table.table.getColumnFormatter().setWidth(0, "128px");table.getColumnFormatter().setWidth(1, "128px");table.getColumnFormatter().setWidth(2, "200px");table.getColumnFormatter().setWidth(3, "200px");table.getColumnFormatter().setWidth(4, "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.lastIndexOf("");dateString = dateString.substring(0, dateString.lastIndexOf(" "));dateString = dateString.substring(0, dateString.lastIndexOf(" "));return dateString;}private void updateTable(){int i = 0;for(final Order o : orders){Anchor a = new Anchor(o.getOrderId() + "");table.setWidget(i, 0, a);table.setText(i, 1, o.getCustomerId()+ "");table.setText(i, 2, getDisplayableDate(new Date(o.getCreatedOn()))+"");table.setText(i, 3, getDisplayableDate(new Date(o.getExpectedDeliveryTime()))+"");table.setText(i, 4, o.getStatus()+"");table.setText(i, 5, o.getStatusMessage());i++;final int j =i-1;if (o.isAlert()){alertRow(i-1, false);}a.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {// TODO Auto-generated method stubselectRow(j);eventbus.fireEvent(new LoadOrderDetailsEvent(o));}});}}}