Rev 1961 | Rev 1992 | 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;@UiFieldItemList itemList;@UiFieldItemDetails itemDetails;@UiFieldShortcuts shortcuts;RootLayoutPanel root;LoginScreen login;public void onModuleLoad() {root = RootLayoutPanel.get();login = new LoginScreen();root.add(login);login.setLoginListener(new LoginScreen.LoginListener() {@Overridepublic void onLoginPressed(String username, String password) {authenticateUser(username, password);/** if (username.equals("ankur") && password.equals("ankur")) {* root.clear(); initMainDB(username); }*/}});}private void authenticateUser(String username, String password) {final String uname = username;loginService.authenticateUser(username, password, new AsyncCallback<Long>() {@Overridepublic void onSuccess(Long result) {if (result != -1) {root.clear();initMainDB(uname);login.clearFields();}}@Overridepublic void onFailure(Throwable caught) {login.setErrorText("Invalid username/password");}});}private void initMainDB(String username) {DockLayoutPanel dashboard = binder.createAndBindUi(this);topPanel.changeGreeting(username);itemList.setListener(new ItemList.Listener() {public void onItemSelected(Item item) {itemDetails.setItemDetails(item);}});itemDetails.setPriceUpdateListener(new ItemDetails.PriceUpdateListener() {@Overridepublic void onPriceUpdate(long itemId, double sellingPrice) {catalogService.updatePrice(itemId, sellingPrice, new AsyncCallback<Void>() {@Overridepublic void onSuccess(Void result) {// TODO: refresh item list and disable submit buttonWindow.alert("Price updated successfully...Hurray !!!");}@Overridepublic void onFailure(Throwable caught) {Window.alert("Error while updating price");}});}});topPanel.getSignOutLink().addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {root.clear();root.add(login);}});root.clear();root.add(dashboard);}}