Project

General

Profile

1
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.event.dom.client.ClickEvent;
6
import com.google.gwt.event.dom.client.ClickHandler;
7
import com.google.gwt.user.client.History;
8
import com.google.gwt.user.client.ui.IsWidget;
9
import com.google.gwt.user.client.ui.Widget;
10

    
11
import java.util.HashMap;
12
import java.util.Map;
13

    
14
/**
15
 * Created by stefania on 3/6/15.
16
 */
17
public class BreadcrumbsMenu implements IsWidget {
18

    
19
    private Breadcrumbs breadcrumbsMenu = new Breadcrumbs();
20

    
21
    private NavLink home = new NavLink();
22

    
23
    private NavLink requests = new NavLink();
24
    private NavLink newFundingRequest = new NavLink();
25
    private NavLink existingFundingRequests = new NavLink();
26
    private NavLink newBudgetRequest = new NavLink();
27
    private NavLink existingBudgetRequests = new NavLink();
28

    
29
    private NavLink monitor = new NavLink();
30
    private NavLink monitorFundingRequests = new NavLink();
31
    private NavLink monitorBudgetRequests = new NavLink();
32
    private NavLink monitorUsers = new NavLink();
33
    private NavLink monitorUserRoles = new NavLink();
34
    private NavLink monitorHelpTexts = new NavLink();
35

    
36
    private NavLink accountingMonitor = new NavLink();
37
    private NavLink accountingMonitorFundingRequests = new NavLink();
38
    private NavLink accountingMonitorBudgetRequests = new NavLink();
39

    
40
    private NavLink statistics = new NavLink();
41

    
42
    private NavLink support = new NavLink();
43
    private NavLink eligibleProjects = new NavLink();
44

    
45
    private NavLink login = new NavLink();
46
    private NavLink register = new NavLink();
47
    private NavLink myAccount = new NavLink();
48
    private NavLink editAccountInfo = new NavLink();
49

    
50
    private Map<String, NavLink> breadcrumbLinksMap = new HashMap<>();
51

    
52
    public BreadcrumbsMenu() {
53

    
54
        breadcrumbsMenu.setDivider("|");
55

    
56
        home.setHref("#home");
57
        home.setText("HOME");
58
        home.addClickHandler(new ClickHandler() {
59
            @Override
60
            public void onClick(ClickEvent clickEvent) {
61
                History.newItem("home");
62
            }
63
        });
64

    
65
        requests.setHref("#requests");
66
        requests.setText("MANAGE REQUESTS");
67
        requests.addClickHandler(new ClickHandler() {
68
            @Override
69
            public void onClick(ClickEvent clickEvent) {
70
                History.newItem("requests");
71
            }
72
        });
73

    
74
        newFundingRequest.setHref("#newFundingRequest");
75
        newFundingRequest.setText("NEW FUNDING REQUEST");
76
        newFundingRequest.addClickHandler(new ClickHandler() {
77
            @Override
78
            public void onClick(ClickEvent clickEvent) {
79
                History.newItem("newFundingRequest");
80
            }
81
        });
82

    
83
        newBudgetRequest.setHref("#newBudgetRequest");
84
        newBudgetRequest.setText("NEW BUDGET REQUEST");
85
        newBudgetRequest.addClickHandler(new ClickHandler() {
86
            @Override
87
            public void onClick(ClickEvent clickEvent) {
88
                History.newItem("newBudgetRequest");
89
            }
90
        });
91

    
92
        existingFundingRequests.setHref("#existingFundingRequests");
93
        existingFundingRequests.setText("EXISTING FUNDING REQUESTS");
94
        existingFundingRequests.addClickHandler(new ClickHandler() {
95
            @Override
96
            public void onClick(ClickEvent clickEvent) {
97
                History.newItem("existingFundingRequests");
98
            }
99
        });
100

    
101
        existingBudgetRequests.setHref("#existingBudgetRequests");
102
        existingBudgetRequests.setText("EXISTING BUDGET REQUESTS");
103
        existingBudgetRequests.addClickHandler(new ClickHandler() {
104
            @Override
105
            public void onClick(ClickEvent clickEvent) {
106
                History.newItem("existingBudgetRequests");
107
            }
108
        });
109

    
110
        monitor.setHref("#monitor");
111
        monitor.setText("MONITOR");
112
        monitor.addClickHandler(new ClickHandler() {
113
            @Override
114
            public void onClick(ClickEvent clickEvent) {
115
                History.newItem("monitor");
116
            }
117
        });
118

    
119
        monitorFundingRequests.setHref("#monitorFundingRequests");
120
        monitorFundingRequests.setText("FUNDING REQUESTS");
121
        monitorFundingRequests.addClickHandler(new ClickHandler() {
122
            @Override
123
            public void onClick(ClickEvent clickEvent) {
124
                History.newItem("monitorFundingRequests");
125
            }
126
        });
127

    
128
        monitorBudgetRequests.setHref("#monitorBudgets");
129
        monitorBudgetRequests.setText("BUDGETS");
130
        monitorBudgetRequests.addClickHandler(new ClickHandler() {
131
            @Override
132
            public void onClick(ClickEvent clickEvent) {
133
                History.newItem("monitorBudgets");
134
            }
135
        });
136

    
137
        monitorUsers.setHref("#monitorUsers");
138
        monitorUsers.setText("USERS");
139
        monitorUsers.addClickHandler(new ClickHandler() {
140
            @Override
141
            public void onClick(ClickEvent clickEvent) {
142
                History.newItem("monitorUsers");
143
            }
144
        });
145

    
146
        monitorUserRoles.setHref("#monitorUserRoles");
147
        monitorUserRoles.setText("USER ROLES");
148
        monitorUserRoles.addClickHandler(new ClickHandler() {
149
            @Override
150
            public void onClick(ClickEvent clickEvent) {
151
                History.newItem("monitorUserRoles");
152
            }
153
        });
154

    
155
        monitorHelpTexts.setText("HELP TEXTS");
156
        monitorHelpTexts.setHref("#monitorHelpTexts");
157
        monitorHelpTexts.addClickHandler(new ClickHandler() {
158
            @Override
159
            public void onClick(ClickEvent clickEvent) {
160
                History.newItem("monitorHelpTexts");
161
            }
162
        });
163

    
164
        accountingMonitor.setHref("#accountingMonitor");
165
        accountingMonitor.setText("ACCOUNTING");
166
        accountingMonitor.addClickHandler(new ClickHandler() {
167
            @Override
168
            public void onClick(ClickEvent clickEvent) {
169
                History.newItem("accountingMonitor");
170
            }
171
        });
172

    
173
        accountingMonitorFundingRequests.setHref("#accountingMonitorFundingRequests");
174
        accountingMonitorFundingRequests.setText("FUNDING REQUESTS");
175
        accountingMonitorFundingRequests.addClickHandler(new ClickHandler() {
176
            @Override
177
            public void onClick(ClickEvent clickEvent) {
178
                History.newItem("accountingMonitorFundingRequests");
179
            }
180
        });
181

    
182
        accountingMonitorBudgetRequests.setHref("#accountingMonitorBudgets");
183
        accountingMonitorBudgetRequests.setText("BUDGETS");
184
        accountingMonitorBudgetRequests.addClickHandler(new ClickHandler() {
185
            @Override
186
            public void onClick(ClickEvent clickEvent) {
187
                History.newItem("accountingMonitorBudgets");
188
            }
189
        });
190

    
191
        statistics.setHref("#statistics");
192
        statistics.setText("STATISTICS");
193
        statistics.addClickHandler(new ClickHandler() {
194
            @Override
195
            public void onClick(ClickEvent clickEvent) {
196
                History.newItem("statistics");
197
            }
198
        });
199

    
200
        support.setHref("#support");
201
        support.setText("SUPPORT");
202
        support.addClickHandler(new ClickHandler() {
203
            @Override
204
            public void onClick(ClickEvent clickEvent) {
205
                History.newItem("support");
206
            }
207
        });
208

    
209
        eligibleProjects.setText("ELIGIBLE PROJECTS");
210
        eligibleProjects.setHref("#eligibleProjects");
211
        eligibleProjects.addClickHandler(new ClickHandler() {
212
            @Override
213
            public void onClick(ClickEvent clickEvent) {
214
                History.newItem("eligibleProjects");
215
            }
216
        });
217

    
218
        login.setHref("#login");
219
        login.setText("LOGIN");
220
        login.addClickHandler(new ClickHandler() {
221
            @Override
222
            public void onClick(ClickEvent clickEvent) {
223
                History.newItem("login");
224
            }
225
        });
226

    
227
        register.setHref("#register");
228
        register.setText("REGISTER");
229
        register.addClickHandler(new ClickHandler() {
230
            @Override
231
            public void onClick(ClickEvent clickEvent) {
232
                History.newItem("register");
233
            }
234
        });
235

    
236
        myAccount.setHref("#myAccount");
237
        myAccount.setText("MY ACCOUNT");
238
        myAccount.addClickHandler(new ClickHandler() {
239
            @Override
240
            public void onClick(ClickEvent clickEvent) {
241
                History.newItem("myAccount");
242
            }
243
        });
244

    
245
        editAccountInfo.setHref("#editAccountInfo");
246
        editAccountInfo.setText("EDIT INFO");
247
        editAccountInfo.addClickHandler(new ClickHandler() {
248
            @Override
249
            public void onClick(ClickEvent clickEvent) {
250
                History.newItem("editAccountInfo");
251
            }
252
        });
253

    
254
        createBreadcrumbsMap();
255
    }
256

    
257
    @Override
258
    public Widget asWidget() {
259
        return breadcrumbsMenu;
260
    }
261

    
262
    public void updateBreadcrumbsMenu(String token) {
263

    
264
        String[] tokenParts = token.split("\\.");
265
        String menuToken = tokenParts[0];
266

    
267
        breadcrumbsMenu.clear();
268
        if(!menuToken.equals("home")) {
269
            if(breadcrumbLinksMap.get(menuToken)!=null) {
270
                breadcrumbsMenu.add(home);
271
                if(menuToken.equals("eligibleProjects"))
272
                    breadcrumbsMenu.add(support);
273
                if(menuToken.equals("editAccountInfo"))
274
                    breadcrumbsMenu.add(myAccount);
275
                if(menuToken.equals("monitorFundingRequests") || menuToken.equals("monitorBudgets")
276
                        || menuToken.equals("monitorUsers") || menuToken.equals("monitorUserRoles")
277
                        || menuToken.equals("monitorHelpTexts"))
278
                    breadcrumbsMenu.add(monitor);
279
                if(menuToken.equals("accountingMonitorFundingRequests") || menuToken.equals("accountingMonitorBudgets"))
280
                    breadcrumbsMenu.add(accountingMonitor);
281
                if(menuToken.equals("newFundingRequest") || menuToken.equals("existingFundingRequests")
282
                        || menuToken.equals("newBudgetRequest") || menuToken.equals("existingBudgetRequests"))
283
                    breadcrumbsMenu.add(requests);
284
                breadcrumbsMenu.add(breadcrumbLinksMap.get(menuToken));
285
            }
286
        }
287
    }
288

    
289
    private void createBreadcrumbsMap() {
290

    
291
        breadcrumbLinksMap.put("requests", requests);
292
        breadcrumbLinksMap.put("newFundingRequest", newFundingRequest);
293
        breadcrumbLinksMap.put("newBudgetRequest", newBudgetRequest);
294
        breadcrumbLinksMap.put("existingFundingRequests", existingFundingRequests);
295
        breadcrumbLinksMap.put("existingBudgetRequests", existingBudgetRequests);
296
        breadcrumbLinksMap.put("monitor", monitor);
297
        breadcrumbLinksMap.put("monitorFundingRequests", monitorFundingRequests);
298
        breadcrumbLinksMap.put("monitorBudgets", monitorBudgetRequests);
299
        breadcrumbLinksMap.put("monitorUsers", monitorUsers);
300
        breadcrumbLinksMap.put("monitorUserRoles", monitorUserRoles);
301
        breadcrumbLinksMap.put("monitorHelpTexts", monitorHelpTexts);
302
        breadcrumbLinksMap.put("accountingMonitor", accountingMonitor);
303
        breadcrumbLinksMap.put("accountingMonitorFundingRequests", accountingMonitorFundingRequests);
304
        breadcrumbLinksMap.put("accountingMonitorBudgets", accountingMonitorBudgetRequests);
305
        breadcrumbLinksMap.put("statistics", statistics);
306
        breadcrumbLinksMap.put("support", support);
307
        breadcrumbLinksMap.put("eligibleProjects", eligibleProjects);
308
        breadcrumbLinksMap.put("login", login);
309
        breadcrumbLinksMap.put("register", register);
310
        breadcrumbLinksMap.put("myAccount", myAccount);
311
        breadcrumbLinksMap.put("editAccountInfo", editAccountInfo);
312
    }
313
}
(1-1/22)