Project

General

Profile

1 35292 stefania.m
package eu.dnetlib.client;
2
3
import com.github.gwtbootstrap.client.ui.Breadcrumbs;
4
import com.github.gwtbootstrap.client.ui.NavLink;
5
import com.google.gwt.core.client.GWT;
6
import com.google.gwt.event.dom.client.ClickEvent;
7
import com.google.gwt.event.dom.client.ClickHandler;
8 35582 stefania.m
import com.google.gwt.user.client.History;
9 35292 stefania.m
import com.google.gwt.user.client.Window;
10
import com.google.gwt.user.client.ui.IsWidget;
11
import com.google.gwt.user.client.ui.Widget;
12
13
import java.util.HashMap;
14
import java.util.Map;
15
16
/**
17
 * Created by stefania on 3/6/15.
18
 */
19
public class BreadcrumbsMenu implements IsWidget {
20
21
    private Breadcrumbs breadcrumbsMenu = new Breadcrumbs();
22
23
    private NavLink home = new NavLink();
24
    private NavLink newFundingRequest = new NavLink();
25
    private NavLink existingFundingRequests = new NavLink();
26 35928 stefania.m
    private NavLink newBudgetRequest = new NavLink();
27 35292 stefania.m
    private NavLink monitor = new NavLink();
28
    private NavLink help = new NavLink();
29
30
    private NavLink login = new NavLink();
31
    private NavLink register = new NavLink();
32
    private NavLink myAccount = new NavLink();
33 35507 stefania.m
    private NavLink editAccountInfo = new NavLink();
34 35292 stefania.m
35
    private Map<String, NavLink> breadcrumbLinksMap = new HashMap<>();
36
37
    public BreadcrumbsMenu() {
38
39
        breadcrumbsMenu.setDivider("|");
40
41
        home.setText("HOME");
42
        home.setHref("#home");
43
        home.addClickHandler(new ClickHandler() {
44
            @Override
45
            public void onClick(ClickEvent clickEvent) {
46 35582 stefania.m
                History.newItem("home");
47 35292 stefania.m
            }
48
        });
49
50 35928 stefania.m
        newFundingRequest.setHref("#newFundingRequest");
51 35292 stefania.m
        newFundingRequest.setText("NEW FUNDING REQUEST");
52
        newFundingRequest.addClickHandler(new ClickHandler() {
53
            @Override
54
            public void onClick(ClickEvent clickEvent) {
55 35928 stefania.m
                History.newItem("newFundingRequest");
56 35292 stefania.m
            }
57
        });
58
59 35928 stefania.m
        newBudgetRequest.setHref("#newBudgetRequest");
60
        newBudgetRequest.setText("NEW BUDGET REQUEST");
61
        newBudgetRequest.addClickHandler(new ClickHandler() {
62
            @Override
63
            public void onClick(ClickEvent clickEvent) {
64
                History.newItem("newBudgetRequest");
65
            }
66
        });
67
68
        existingFundingRequests.setHref("#existingFundingRequests");
69 35292 stefania.m
        existingFundingRequests.setText("EXISTING FUNDING REQUESTS");
70
        existingFundingRequests.addClickHandler(new ClickHandler() {
71
            @Override
72
            public void onClick(ClickEvent clickEvent) {
73 35928 stefania.m
                History.newItem("existingFundingRequests");
74 35292 stefania.m
            }
75
        });
76
77
        monitor.setHref("#monitor");
78
        monitor.setText("MONITOR");
79
        monitor.addClickHandler(new ClickHandler() {
80
            @Override
81
            public void onClick(ClickEvent clickEvent) {
82 35582 stefania.m
                History.newItem("monitor");
83 35292 stefania.m
            }
84
        });
85
86
        help.setHref("#help");
87
        help.setText("HELP");
88
        help.addClickHandler(new ClickHandler() {
89
            @Override
90
            public void onClick(ClickEvent clickEvent) {
91 35582 stefania.m
                History.newItem("help");
92 35292 stefania.m
            }
93
        });
94
95
        login.setHref("#login");
96
        login.setText("LOGIN");
97
        login.addClickHandler(new ClickHandler() {
98
            @Override
99
            public void onClick(ClickEvent clickEvent) {
100 35582 stefania.m
                History.newItem("login");
101 35292 stefania.m
            }
102
        });
103
104
        register.setHref("#register");
105
        register.setText("REGISTER");
106
        register.addClickHandler(new ClickHandler() {
107
            @Override
108
            public void onClick(ClickEvent clickEvent) {
109 35582 stefania.m
                History.newItem("register");
110 35292 stefania.m
            }
111
        });
112
113
        myAccount.setHref("#myAccount");
114
        myAccount.setText("MY ACCOUNT");
115
        myAccount.addClickHandler(new ClickHandler() {
116
            @Override
117
            public void onClick(ClickEvent clickEvent) {
118 35582 stefania.m
                History.newItem("myAccount");
119 35292 stefania.m
            }
120
        });
121
122 35507 stefania.m
        editAccountInfo.setHref("#editAccountInfo");
123
        editAccountInfo.setText("EDIT INFO");
124
        editAccountInfo.addClickHandler(new ClickHandler() {
125
            @Override
126
            public void onClick(ClickEvent clickEvent) {
127 35582 stefania.m
                History.newItem("editAccountInfo");
128 35507 stefania.m
            }
129
        });
130
131 35292 stefania.m
        createBreadcrumbsMap();
132
    }
133
134
    @Override
135
    public Widget asWidget() {
136
        return breadcrumbsMenu;
137
    }
138
139
    public void updateBreadcrumbsMenu(String token) {
140
141 35700 stefania.m
        String[] tokenParts = token.split("\\.");
142
        String menuToken = tokenParts[0];
143
144 35292 stefania.m
        breadcrumbsMenu.clear();
145 35700 stefania.m
        if(!menuToken.equals("home")) {
146
            if(breadcrumbLinksMap.get(menuToken)!=null) {
147 35292 stefania.m
                breadcrumbsMenu.add(home);
148 35700 stefania.m
                if(menuToken.equals("editAccountInfo"))
149 35507 stefania.m
                    breadcrumbsMenu.add(myAccount);
150 35700 stefania.m
                breadcrumbsMenu.add(breadcrumbLinksMap.get(menuToken));
151 35292 stefania.m
            }
152
        }
153
    }
154
155
    private void createBreadcrumbsMap() {
156
157 35928 stefania.m
        breadcrumbLinksMap.put("newFundingRequest", newFundingRequest);
158
        breadcrumbLinksMap.put("newBudgetRequest", newBudgetRequest);
159
        breadcrumbLinksMap.put("existingFundingRequests", existingFundingRequests);
160 35292 stefania.m
        breadcrumbLinksMap.put("monitor", monitor);
161
        breadcrumbLinksMap.put("help", help);
162
        breadcrumbLinksMap.put("login", login);
163
        breadcrumbLinksMap.put("register", register);
164
        breadcrumbLinksMap.put("myAccount", myAccount);
165 35507 stefania.m
        breadcrumbLinksMap.put("editAccountInfo", editAccountInfo);
166 35292 stefania.m
    }
167
}