Subversion Repositories SmartDukaan

Rev

Rev 2119 | Rev 2208 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1961 ankur.sing 1
package in.shop2020.catalog.dashboard.client;
2
 
3
import com.google.gwt.core.client.EntryPoint;
4
import com.google.gwt.core.client.GWT;
5
import com.google.gwt.event.dom.client.ClickEvent;
6
import com.google.gwt.event.dom.client.ClickHandler;
7
import com.google.gwt.uibinder.client.UiBinder;
8
import com.google.gwt.uibinder.client.UiField;
9
import com.google.gwt.uibinder.client.UiTemplate;
10
import com.google.gwt.user.client.rpc.AsyncCallback;
11
import com.google.gwt.user.client.ui.DockLayoutPanel;
12
import com.google.gwt.user.client.ui.RootLayoutPanel;
13
 
14
public class CatalogDashboard implements EntryPoint {
15
 
16
    @UiTemplate("CatalogDashboard.ui.xml")
17
    interface CatalogBinder extends UiBinder<DockLayoutPanel, CatalogDashboard> {
18
    }
2066 ankur.sing 19
 
1961 ankur.sing 20
    private static final CatalogBinder binder = GWT.create(CatalogBinder.class);
21
    private final LoginServiceAsync loginService = GWT.create(LoginService.class);
2066 ankur.sing 22
 
2105 ankur.sing 23
    @UiField TopPanel topPanel;
24
    @UiField Shortcuts shortcuts;
25
    //@UiField Filters filters;
26
    @UiField ItemList itemList;
27
    @UiField ItemDetails itemDetails;
28
    @UiField ItemActions itemActions;
1961 ankur.sing 29
 
30
    RootLayoutPanel root;
31
    LoginScreen login;
32
 
33
    public void onModuleLoad() {
34
        root = RootLayoutPanel.get();
2027 ankur.sing 35
        root.getElement().setScrollLeft(10);
1961 ankur.sing 36
        login = new LoginScreen();
2119 ankur.sing 37
        //initMainDB("Testing");
38
        root.add(login);
1961 ankur.sing 39
        login.setLoginListener(new LoginScreen.LoginListener() {
40
            @Override
41
            public void onLoginPressed(String username, String password) {
42
                authenticateUser(username, password);
43
            }
2119 ankur.sing 44
        });
1961 ankur.sing 45
    }
46
 
47
    private void authenticateUser(String username, String password) {
48
        final String uname = username;
2027 ankur.sing 49
        loginService.authenticateUser(username, password, new AsyncCallback<String>() {
1961 ankur.sing 50
            @Override
2027 ankur.sing 51
            public void onSuccess(String result) {
52
                if (result != null) {
53
                    GWT.log(result + " logged in catalog dashboard");
1961 ankur.sing 54
                    root.clear();
55
                    initMainDB(uname);
56
                    login.clearFields();
2027 ankur.sing 57
                } else {
58
                    login.setErrorText("Invalid username/password");    
1961 ankur.sing 59
                }
60
            }
61
            @Override
62
            public void onFailure(Throwable caught) {
2027 ankur.sing 63
                login.setErrorText("Error in authentication");
1961 ankur.sing 64
            }
65
        });
66
    }
67
 
68
    private void initMainDB(String username) {
69
        DockLayoutPanel dashboard = binder.createAndBindUi(this);
2126 ankur.sing 70
        itemActions.setItemDetails(itemDetails);
71
        itemList.setItemDetails(itemDetails);
1961 ankur.sing 72
        topPanel.changeGreeting(username);
73
 
74
        topPanel.getSignOutLink().addClickHandler(new ClickHandler() {
75
            @Override
76
            public void onClick(ClickEvent event) {
77
                root.clear();
78
                root.add(login);
79
            }
80
        });
81
        root.clear();
82
        root.add(dashboard);
1992 ankur.sing 83
 
84
        shortcuts.getCatalogTree().setTreeListener(new CatalogTree.TreeListener() {
85
            @Override
2027 ankur.sing 86
            public void onTreeItemClicked(String itemsType) {
87
                //showWaitCursor();
2119 ankur.sing 88
                if(CatalogTree.ALL_ITEMS.equals(itemsType)) {
2027 ankur.sing 89
                    itemList.loadAllItems();
2119 ankur.sing 90
                } else if(CatalogTree.ALL_ACTIVE_ITEMS.equals(itemsType)) { 
91
                    itemList.loadAllActiveItems();
92
                } else if(CatalogTree.BEST_DEALS.equals(itemsType)) {
2027 ankur.sing 93
                    itemList.loadBestDeals();
2119 ankur.sing 94
                } else if(CatalogTree.BEST_SELLERS.equals(itemsType)) {
2027 ankur.sing 95
                    itemList.loadBestSellers();
2119 ankur.sing 96
                } else if(CatalogTree.LATEST_ARRIVALS.equals(itemsType)) {
2027 ankur.sing 97
                    itemList.loadLatestArrivals();
98
                }
1992 ankur.sing 99
            }
100
        });
1961 ankur.sing 101
    }
102
}
2126 ankur.sing 103