Rev 2119 | Rev 2359 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.catalog.dashboard.client;import in.shop2020.catalog.dashboard.shared.Item;import in.shop2020.catalog.dashboard.shared.Utils;import com.google.gwt.core.client.GWT;import com.google.gwt.event.dom.client.ClickEvent;import com.google.gwt.uibinder.client.UiBinder;import com.google.gwt.uibinder.client.UiField;import com.google.gwt.uibinder.client.UiHandler;import com.google.gwt.user.client.Window;import com.google.gwt.user.client.rpc.AsyncCallback;import com.google.gwt.user.client.ui.Button;import com.google.gwt.user.client.ui.ResizeComposite;import com.google.gwt.user.client.ui.Widget;public class ItemActions extends ResizeComposite{interface ItemActionsUiBinder extends UiBinder<Widget, ItemActions> {}private static ItemActionsUiBinder uiBinder = GWT.create(ItemActionsUiBinder.class);private final CatalogServiceAsync catalogService = GWT.create(CatalogService.class);private ItemDetails itemDetails;@UiField Button addItem, updateItem, phaseoutItem, activateItem, markAliveItem, pauseItem;public ItemActions(){initWidget(uiBinder.createAndBindUi(this));}@UiHandler("updateItem")void updateItem(ClickEvent event) {itemDetails.updateItem();}@UiHandler("addItem")void addItem(ClickEvent event) {ItemForm itemForm = new ItemForm();itemForm.center();itemForm.show();}@UiHandler("phaseoutItem")void phaseoutItem(ClickEvent event) {final long itemId = validateStatusChange(Utils.PHASED_OUT);if(itemId <= 0) {return;}catalogService.phaseoutItem(itemId, new AsyncCallback<Void>() {@Overridepublic void onSuccess(Void result) {Window.alert("Item marked as PHASED OUT");}@Overridepublic void onFailure(Throwable caught) {Window.alert("Error while marking item " + itemId + " PHASED OUT");}});}@UiHandler("activateItem")void activateItem(ClickEvent event) {final long itemId = validateStatusChange(Utils.ACTIVE);if(itemId <= 0) {return;}catalogService.activateItem(itemId, new AsyncCallback<Void>() {@Overridepublic void onSuccess(Void result) {Window.alert("Item marked as ACTIVE");}@Overridepublic void onFailure(Throwable caught) {Window.alert("Error while marking item " + itemId + " ACTIVE");}});}@UiHandler("pauseItem")void pauseItem(ClickEvent event) {final long itemId = validateStatusChange(Utils.PAUSED);if(itemId <= 0) {return;}catalogService.pauseItem(itemId, new AsyncCallback<Void>() {@Overridepublic void onSuccess(Void result) {Window.alert("Item marked as PAUSED");}@Overridepublic void onFailure(Throwable caught) {Window.alert("Error while marking item " + itemId + " PAUSED");}});}@UiHandler("markAliveItem")void markAsAlive(ClickEvent event) {final long itemId = validateStatusChange(Utils.IN_PROCESS);if(itemId <= 0) {return;}catalogService.markInProcess(itemId, new AsyncCallback<Void>() {@Overridepublic void onSuccess(Void result) {Window.alert("Item marked as IN PROCESS");}@Overridepublic void onFailure(Throwable caught) {Window.alert("Error while marking item " + itemId + " IN PROCESS");}});}public void setItemDetails(ItemDetails itemDetails) {this.itemDetails = itemDetails;}private long validateStatusChange(int toStatus) {final Item item = itemDetails.getItem();if(item == null) {Window.alert(getAlertString(toStatus)[0]);return -1;}if(!Utils.validateStatusChange(item.getItemStatusValue(), toStatus)) {Window.alert(getAlertString(toStatus)[1]);return -1;}return item.getId();}private String[] getAlertString(int toStatus) {String[] alertStr = {"", ""};switch(toStatus) {case Utils.PAUSED: {alertStr[0] = "Please select an ACTIVE item to mark PAUSED";alertStr[1] = "Cannot mark this item as PAUSED";break;}case Utils.IN_PROCESS: {alertStr[0] = "Please select a PHASED OUT item to mark IN PROCESS";alertStr[1] = "Cannot mark this item as IN PROCESS";break;}case Utils.ACTIVE: {alertStr[0] = "Please select a PAUSED item to mark ACTIVE";alertStr[1] = "Cannot mark this item as ACTIVE";break;}case Utils.PHASED_OUT: {alertStr[0] = "Please select an item to mark PHASED OUT";alertStr[1] = "Cannot mark this item as PHASED OUT";break;}}return alertStr;}}