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.event.dom.client.ClickEvent;
6
import com.google.gwt.event.dom.client.ClickHandler;
7 35582 stefania.m
import com.google.gwt.user.client.History;
8 35292 stefania.m
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 35934 stefania.m
23
    private NavLink requests = new NavLink();
24 35292 stefania.m
    private NavLink newFundingRequest = new NavLink();
25
    private NavLink existingFundingRequests = new NavLink();
26 35928 stefania.m
    private NavLink newBudgetRequest = new NavLink();
27 36099 stefania.m
    private NavLink existingBudgetRequests = new NavLink();
28 35934 stefania.m
29
    private NavLink monitor = new NavLink();
30 35933 stefania.m
    private NavLink monitorFundingRequests = new NavLink();
31
    private NavLink monitorBudgetRequests = new NavLink();
32 36054 stefania.m
    private NavLink monitorUsers = new NavLink();
33 36060 stefania.m
    private NavLink monitorUserRoles = new NavLink();
34 35934 stefania.m
35 35292 stefania.m
    private NavLink help = new NavLink();
36
37
    private NavLink login = new NavLink();
38
    private NavLink register = new NavLink();
39
    private NavLink myAccount = new NavLink();
40 35507 stefania.m
    private NavLink editAccountInfo = new NavLink();
41 35292 stefania.m
42
    private Map<String, NavLink> breadcrumbLinksMap = new HashMap<>();
43
44
    public BreadcrumbsMenu() {
45
46
        breadcrumbsMenu.setDivider("|");
47
48 35938 stefania.m
        home.setHref("#home");
49 35292 stefania.m
        home.setText("HOME");
50
        home.addClickHandler(new ClickHandler() {
51
            @Override
52
            public void onClick(ClickEvent clickEvent) {
53 35582 stefania.m
                History.newItem("home");
54 35292 stefania.m
            }
55
        });
56
57 35938 stefania.m
        requests.setHref("#requests");
58 35934 stefania.m
        requests.setText("REQUESTS");
59
        requests.addClickHandler(new ClickHandler() {
60
            @Override
61
            public void onClick(ClickEvent clickEvent) {
62
                History.newItem("requests");
63
            }
64
        });
65
66 35928 stefania.m
        newFundingRequest.setHref("#newFundingRequest");
67 35292 stefania.m
        newFundingRequest.setText("NEW FUNDING REQUEST");
68
        newFundingRequest.addClickHandler(new ClickHandler() {
69
            @Override
70
            public void onClick(ClickEvent clickEvent) {
71 35928 stefania.m
                History.newItem("newFundingRequest");
72 35292 stefania.m
            }
73
        });
74
75 35928 stefania.m
        newBudgetRequest.setHref("#newBudgetRequest");
76
        newBudgetRequest.setText("NEW BUDGET REQUEST");
77
        newBudgetRequest.addClickHandler(new ClickHandler() {
78
            @Override
79
            public void onClick(ClickEvent clickEvent) {
80
                History.newItem("newBudgetRequest");
81
            }
82
        });
83
84
        existingFundingRequests.setHref("#existingFundingRequests");
85 35292 stefania.m
        existingFundingRequests.setText("EXISTING FUNDING REQUESTS");
86
        existingFundingRequests.addClickHandler(new ClickHandler() {
87
            @Override
88
            public void onClick(ClickEvent clickEvent) {
89 35928 stefania.m
                History.newItem("existingFundingRequests");
90 35292 stefania.m
            }
91
        });
92
93 36099 stefania.m
        existingBudgetRequests.setHref("#existingBudgetRequests");
94
        existingBudgetRequests.setText("EXISTING BUDGET REQUESTS");
95
        existingBudgetRequests.addClickHandler(new ClickHandler() {
96
            @Override
97
            public void onClick(ClickEvent clickEvent) {
98
                History.newItem("existingBudgetRequests");
99
            }
100
        });
101
102 35938 stefania.m
        monitor.setHref("#monitor");
103 35934 stefania.m
        monitor.setText("MONITOR");
104
        monitor.addClickHandler(new ClickHandler() {
105
            @Override
106
            public void onClick(ClickEvent clickEvent) {
107
                History.newItem("monitor");
108
            }
109
        });
110
111 35933 stefania.m
        monitorFundingRequests.setHref("#monitorFundingRequests");
112 35934 stefania.m
        monitorFundingRequests.setText("FUNDING REQUESTS");
113 35933 stefania.m
        monitorFundingRequests.addClickHandler(new ClickHandler() {
114 35292 stefania.m
            @Override
115
            public void onClick(ClickEvent clickEvent) {
116 35933 stefania.m
                History.newItem("monitorFundingRequests");
117 35292 stefania.m
            }
118
        });
119
120 35933 stefania.m
        monitorBudgetRequests.setHref("#monitorBudgets");
121 35934 stefania.m
        monitorBudgetRequests.setText("BUDGETS");
122 35933 stefania.m
        monitorBudgetRequests.addClickHandler(new ClickHandler() {
123
            @Override
124
            public void onClick(ClickEvent clickEvent) {
125
                History.newItem("monitorBudgets");
126
            }
127
        });
128
129 36054 stefania.m
        monitorUsers.setHref("#monitorUsers");
130
        monitorUsers.setText("USERS");
131
        monitorUsers.addClickHandler(new ClickHandler() {
132
            @Override
133
            public void onClick(ClickEvent clickEvent) {
134
                History.newItem("monitorUsers");
135
            }
136
        });
137
138 36060 stefania.m
        monitorUserRoles.setHref("#monitorUserRoles");
139
        monitorUserRoles.setText("USER ROLES");
140
        monitorUserRoles.addClickHandler(new ClickHandler() {
141
            @Override
142
            public void onClick(ClickEvent clickEvent) {
143
                History.newItem("monitorUserRoles");
144
            }
145
        });
146
147 35292 stefania.m
        help.setHref("#help");
148
        help.setText("HELP");
149
        help.addClickHandler(new ClickHandler() {
150
            @Override
151
            public void onClick(ClickEvent clickEvent) {
152 35582 stefania.m
                History.newItem("help");
153 35292 stefania.m
            }
154
        });
155
156
        login.setHref("#login");
157
        login.setText("LOGIN");
158
        login.addClickHandler(new ClickHandler() {
159
            @Override
160
            public void onClick(ClickEvent clickEvent) {
161 35582 stefania.m
                History.newItem("login");
162 35292 stefania.m
            }
163
        });
164
165
        register.setHref("#register");
166
        register.setText("REGISTER");
167
        register.addClickHandler(new ClickHandler() {
168
            @Override
169
            public void onClick(ClickEvent clickEvent) {
170 35582 stefania.m
                History.newItem("register");
171 35292 stefania.m
            }
172
        });
173
174
        myAccount.setHref("#myAccount");
175
        myAccount.setText("MY ACCOUNT");
176
        myAccount.addClickHandler(new ClickHandler() {
177
            @Override
178
            public void onClick(ClickEvent clickEvent) {
179 35582 stefania.m
                History.newItem("myAccount");
180 35292 stefania.m
            }
181
        });
182
183 35507 stefania.m
        editAccountInfo.setHref("#editAccountInfo");
184
        editAccountInfo.setText("EDIT INFO");
185
        editAccountInfo.addClickHandler(new ClickHandler() {
186
            @Override
187
            public void onClick(ClickEvent clickEvent) {
188 35582 stefania.m
                History.newItem("editAccountInfo");
189 35507 stefania.m
            }
190
        });
191
192 35292 stefania.m
        createBreadcrumbsMap();
193
    }
194
195
    @Override
196
    public Widget asWidget() {
197
        return breadcrumbsMenu;
198
    }
199
200
    public void updateBreadcrumbsMenu(String token) {
201
202 35700 stefania.m
        String[] tokenParts = token.split("\\.");
203
        String menuToken = tokenParts[0];
204
205 35292 stefania.m
        breadcrumbsMenu.clear();
206 35700 stefania.m
        if(!menuToken.equals("home")) {
207
            if(breadcrumbLinksMap.get(menuToken)!=null) {
208 35292 stefania.m
                breadcrumbsMenu.add(home);
209 35700 stefania.m
                if(menuToken.equals("editAccountInfo"))
210 35507 stefania.m
                    breadcrumbsMenu.add(myAccount);
211 36054 stefania.m
                if(menuToken.equals("monitorFundingRequests") || menuToken.equals("monitorBudgets")
212 36060 stefania.m
                        || menuToken.equals("monitorUsers") || menuToken.equals("monitorUserRoles"))
213 35934 stefania.m
                    breadcrumbsMenu.add(monitor);
214
                if(menuToken.equals("newFundingRequest") || menuToken.equals("existingFundingRequests")
215 36099 stefania.m
                        || menuToken.equals("newBudgetRequest") || menuToken.equals("existingBudgetRequests"))
216 35934 stefania.m
                    breadcrumbsMenu.add(requests);
217 35700 stefania.m
                breadcrumbsMenu.add(breadcrumbLinksMap.get(menuToken));
218 35292 stefania.m
            }
219
        }
220
    }
221
222
    private void createBreadcrumbsMap() {
223
224 35934 stefania.m
        breadcrumbLinksMap.put("requests", requests);
225 35928 stefania.m
        breadcrumbLinksMap.put("newFundingRequest", newFundingRequest);
226
        breadcrumbLinksMap.put("newBudgetRequest", newBudgetRequest);
227
        breadcrumbLinksMap.put("existingFundingRequests", existingFundingRequests);
228 36099 stefania.m
        breadcrumbLinksMap.put("existingBudgetRequests", existingBudgetRequests);
229 35934 stefania.m
        breadcrumbLinksMap.put("monitor", monitor);
230 35933 stefania.m
        breadcrumbLinksMap.put("monitorFundingRequests", monitorFundingRequests);
231
        breadcrumbLinksMap.put("monitorBudgets", monitorBudgetRequests);
232 36054 stefania.m
        breadcrumbLinksMap.put("monitorUsers", monitorUsers);
233 36060 stefania.m
        breadcrumbLinksMap.put("monitorUserRoles", monitorUserRoles);
234 35292 stefania.m
        breadcrumbLinksMap.put("help", help);
235
        breadcrumbLinksMap.put("login", login);
236
        breadcrumbLinksMap.put("register", register);
237
        breadcrumbLinksMap.put("myAccount", myAccount);
238 35507 stefania.m
        breadcrumbLinksMap.put("editAccountInfo", editAccountInfo);
239 35292 stefania.m
    }
240
}