Rev 1962 | Rev 2027 | 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();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<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.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() {// TODO Auto-generated method stub}});}}