Rev 2066 | Rev 2119 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.catalog.dashboard.client;import java.util.Map;import in.shop2020.catalog.dashboard.shared.Item;import com.google.gwt.core.client.EntryPoint;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.uibinder.client.UiBinder;import com.google.gwt.uibinder.client.UiField;import com.google.gwt.uibinder.client.UiHandler;import com.google.gwt.uibinder.client.UiTemplate;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.DockLayoutPanel;import com.google.gwt.user.client.ui.RootLayoutPanel;public class CatalogDashboard implements EntryPoint {@UiTemplate("CatalogDashboard.ui.xml")interface CatalogBinder extends UiBinder<DockLayoutPanel, CatalogDashboard> {}private static final CatalogBinder binder = GWT.create(CatalogBinder.class);private final CatalogServiceAsync catalogService = GWT.create(CatalogService.class);private final LoginServiceAsync loginService = GWT.create(LoginService.class);@UiField TopPanel topPanel;@UiField Shortcuts shortcuts;//@UiField Filters filters;@UiField ItemList itemList;@UiField ItemDetails itemDetails;@UiField ItemActions itemActions;RootLayoutPanel root;LoginScreen login;public void onModuleLoad() {root = RootLayoutPanel.get();root.getElement().setScrollLeft(10);login = new LoginScreen();initMainDB("Testing");/*root.add(login);login.setLoginListener(new LoginScreen.LoginListener() {@Overridepublic void onLoginPressed(String username, String password) {authenticateUser(username, password);}});*/}private void authenticateUser(String username, String password) {final String uname = username;loginService.authenticateUser(username, password, new AsyncCallback<String>() {@Overridepublic void onSuccess(String result) {if (result != null) {GWT.log(result + " logged in catalog dashboard");root.clear();initMainDB(uname);login.clearFields();} else {login.setErrorText("Invalid username/password");}}@Overridepublic void onFailure(Throwable caught) {login.setErrorText("Error in authentication");}});}private void initMainDB(String username) {DockLayoutPanel dashboard = binder.createAndBindUi(this);topPanel.changeGreeting(username);itemList.setListener(new ItemList.Listener() {public void onItemSelected(long itemId) {catalogService.getItem(itemId, new AsyncCallback<Item>() {@Overridepublic void onSuccess(Item result) {itemDetails.setItemDetails(result);}@Overridepublic void onFailure(Throwable caught) {Window.alert("Unable to fetch item details.");}});}});itemDetails.setItemUpdateListener(new ItemDetails.ItemUpdateListener() {@Overridepublic void onItemUpdate(Item item) {catalogService.updateItem(item, new AsyncCallback<Boolean>() {@Overridepublic void onSuccess(Boolean result) {if(result)Window.alert("Item updated successfully.");elseWindow.alert("Error updating item :(");}@Overridepublic void onFailure(Throwable caught) {Window.alert("Error while updating item");}});}});topPanel.getSignOutLink().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {root.clear();root.add(login);}});root.clear();root.add(dashboard);shortcuts.getCatalogTree().setTreeListener(new CatalogTree.TreeListener() {@Overridepublic void onTreeItemClicked(String itemsType) {//showWaitCursor();if(itemsType == CatalogTree.ALL_ITEMS) {itemList.loadAllItems();} else if(itemsType == CatalogTree.BEST_DEALS) {itemList.loadBestDeals();} else if(itemsType == CatalogTree.BEST_SELLERS) {itemList.loadBestSellers();} else if(itemsType == CatalogTree.LATEST_ARRIVALS) {itemList.loadLatestArrivals();}//itemDetails = new ItemDetails();//showDefaultCursor();}});itemActions.setAddItemListener(new ItemActions.AddItemListener() {@Overridepublic void onAddItemPressed() {ItemForm itemForm = new ItemForm();itemForm.center();itemForm.show();}});itemActions.setPhaseoutItemListener(new ItemActions.PhaseoutItemListener() {@Overridepublic void onPhaseoutItemPressed() {final long itemId = itemDetails.getItemId();if(itemId == 0) {Window.alert("Please select an item to mark PHASED OUT");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");}});}});itemActions.setActivateItemListener(new ItemActions.ActivateItemListener() {@Overridepublic void onActivatePressed() {final long itemId = itemDetails.getItemId();if(itemId == 0) {Window.alert("Please select an item to mark ACTIVE");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");}});}});}/*public static void showWaitCursor() {DOM.setStyleAttribute(RootPanel.getBodyElement(), "cursor", "wait");}public static void showDefaultCursor() {DOM.setStyleAttribute(RootPanel.getBodyElement(), "cursor", "default");}*//*@UiHandler("addItem")void addItem(ClickEvent event) {}*/}