Rev 1992 | Rev 2066 | 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 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.UiTemplate;import com.google.gwt.user.client.Window;import com.google.gwt.user.client.rpc.AsyncCallback;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);@UiFieldTopPanel topPanel;@UiFieldShortcuts shortcuts;/*@UiFieldFilters filters;*/@UiFieldItemList itemList;@UiFieldItemDetails itemDetails;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();}});}/*public static void showWaitCursor() {DOM.setStyleAttribute(RootPanel.getBodyElement(), "cursor", "wait");}public static void showDefaultCursor() {DOM.setStyleAttribute(RootPanel.getBodyElement(), "cursor", "default");}*/}