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 support = new NavLink();
41
    private NavLink eligibleProjects = new NavLink();
42

    
43
    private NavLink login = new NavLink();
44
    private NavLink register = new NavLink();
45
    private NavLink myAccount = new NavLink();
46
    private NavLink editAccountInfo = new NavLink();
47

    
48
    private Map<String, NavLink> breadcrumbLinksMap = new HashMap<>();
49

    
50
    public BreadcrumbsMenu() {
51

    
52
        breadcrumbsMenu.setDivider("|");
53

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
189
        support.setHref("#support");
190
        support.setText("SUPPORT");
191
        support.addClickHandler(new ClickHandler() {
192
            @Override
193
            public void onClick(ClickEvent clickEvent) {
194
                History.newItem("support");
195
            }
196
        });
197

    
198
        eligibleProjects.setText("ELIGIBLE PROJECTS");
199
        eligibleProjects.setHref("#eligibleProjects");
200
        eligibleProjects.addClickHandler(new ClickHandler() {
201
            @Override
202
            public void onClick(ClickEvent clickEvent) {
203
                History.newItem("eligibleProjects");
204
            }
205
        });
206

    
207
        login.setHref("#login");
208
        login.setText("LOGIN");
209
        login.addClickHandler(new ClickHandler() {
210
            @Override
211
            public void onClick(ClickEvent clickEvent) {
212
                History.newItem("login");
213
            }
214
        });
215

    
216
        register.setHref("#register");
217
        register.setText("REGISTER");
218
        register.addClickHandler(new ClickHandler() {
219
            @Override
220
            public void onClick(ClickEvent clickEvent) {
221
                History.newItem("register");
222
            }
223
        });
224

    
225
        myAccount.setHref("#myAccount");
226
        myAccount.setText("MY ACCOUNT");
227
        myAccount.addClickHandler(new ClickHandler() {
228
            @Override
229
            public void onClick(ClickEvent clickEvent) {
230
                History.newItem("myAccount");
231
            }
232
        });
233

    
234
        editAccountInfo.setHref("#editAccountInfo");
235
        editAccountInfo.setText("EDIT INFO");
236
        editAccountInfo.addClickHandler(new ClickHandler() {
237
            @Override
238
            public void onClick(ClickEvent clickEvent) {
239
                History.newItem("editAccountInfo");
240
            }
241
        });
242

    
243
        createBreadcrumbsMap();
244
    }
245

    
246
    @Override
247
    public Widget asWidget() {
248
        return breadcrumbsMenu;
249
    }
250

    
251
    public void updateBreadcrumbsMenu(String token) {
252

    
253
        String[] tokenParts = token.split("\\.");
254
        String menuToken = tokenParts[0];
255

    
256
        breadcrumbsMenu.clear();
257
        if(!menuToken.equals("home")) {
258
            if(breadcrumbLinksMap.get(menuToken)!=null) {
259
                breadcrumbsMenu.add(home);
260
                if(menuToken.equals("eligibleProjects"))
261
                    breadcrumbsMenu.add(support);
262
                if(menuToken.equals("editAccountInfo"))
263
                    breadcrumbsMenu.add(myAccount);
264
                if(menuToken.equals("monitorFundingRequests") || menuToken.equals("monitorBudgets")
265
                        || menuToken.equals("monitorUsers") || menuToken.equals("monitorUserRoles")
266
                        || menuToken.equals("monitorHelpTexts"))
267
                    breadcrumbsMenu.add(monitor);
268
                if(menuToken.equals("accountingMonitorFundingRequests") || menuToken.equals("accountingMonitorBudgets"))
269
                    breadcrumbsMenu.add(accountingMonitor);
270
                if(menuToken.equals("newFundingRequest") || menuToken.equals("existingFundingRequests")
271
                        || menuToken.equals("newBudgetRequest") || menuToken.equals("existingBudgetRequests"))
272
                    breadcrumbsMenu.add(requests);
273
                breadcrumbsMenu.add(breadcrumbLinksMap.get(menuToken));
274
            }
275
        }
276
    }
277

    
278
    private void createBreadcrumbsMap() {
279

    
280
        breadcrumbLinksMap.put("requests", requests);
281
        breadcrumbLinksMap.put("newFundingRequest", newFundingRequest);
282
        breadcrumbLinksMap.put("newBudgetRequest", newBudgetRequest);
283
        breadcrumbLinksMap.put("existingFundingRequests", existingFundingRequests);
284
        breadcrumbLinksMap.put("existingBudgetRequests", existingBudgetRequests);
285
        breadcrumbLinksMap.put("monitor", monitor);
286
        breadcrumbLinksMap.put("monitorFundingRequests", monitorFundingRequests);
287
        breadcrumbLinksMap.put("monitorBudgets", monitorBudgetRequests);
288
        breadcrumbLinksMap.put("monitorUsers", monitorUsers);
289
        breadcrumbLinksMap.put("monitorUserRoles", monitorUserRoles);
290
        breadcrumbLinksMap.put("monitorHelpTexts", monitorHelpTexts);
291
        breadcrumbLinksMap.put("accountingMonitor", accountingMonitor);
292
        breadcrumbLinksMap.put("accountingMonitorFundingRequests", accountingMonitorFundingRequests);
293
        breadcrumbLinksMap.put("accountingMonitorBudgets", accountingMonitorBudgetRequests);
294
        breadcrumbLinksMap.put("support", support);
295
        breadcrumbLinksMap.put("eligibleProjects", eligibleProjects);
296
        breadcrumbLinksMap.put("login", login);
297
        breadcrumbLinksMap.put("register", register);
298
        breadcrumbLinksMap.put("myAccount", myAccount);
299
        breadcrumbLinksMap.put("editAccountInfo", editAccountInfo);
300
    }
301
}
(1-1/21)