Project

General

Profile

1
package eu.dnetlib.repo.manager.client;
2

    
3
import com.google.gwt.dom.client.Element;
4
import com.google.gwt.query.client.Function;
5
import com.google.gwt.user.client.ui.FlowPanel;
6
import com.google.gwt.user.client.ui.RootPanel;
7
import eu.dnetlib.repo.manager.client.admin.AdminController;
8
import eu.dnetlib.repo.manager.client.browsehistory.BrowseHistoryController;
9
import eu.dnetlib.repo.manager.client.dashboard.DashboardController;
10
import eu.dnetlib.repo.manager.client.datasources.register.DatasourceRegisterController;
11
import eu.dnetlib.repo.manager.client.datasources.update.DatasourceUpdateController;
12
import eu.dnetlib.repo.manager.client.enrichcontent.EnrichContentController;
13
import eu.dnetlib.repo.manager.client.getimpact.GetImpactController;
14
import eu.dnetlib.repo.manager.client.admin.helptexts.HelpTextsAdminController;
15
import eu.dnetlib.repo.manager.client.monitor.MonitorController;
16
import eu.dnetlib.repo.manager.client.validator.test.RunCompatibilityTestController;
17

    
18
import static com.google.gwt.query.client.GQuery.$;
19

    
20
/**
21
 * Created by stefania on 12/17/15.
22
 */
23
public class RepositoryManagerController extends TokenController {
24

    
25
    private static RepositoryManagerController instance = null;
26
    private FlowPanel contentPanel = new FlowPanel();
27

    
28
    public static RepositoryManagerController getInstance() {
29
        if (instance == null)
30
            instance = new RepositoryManagerController();
31

    
32
        return instance;
33
    }
34

    
35
    public RepositoryManagerController() {
36

    
37
        subControllers.put("dashboard", DashboardController.getInstance());
38
        subControllers.put("registerDatasource", DatasourceRegisterController.getInstance());
39
        subControllers.put("manageDatasource", DatasourceUpdateController.getInstance());
40
        subControllers.put("validate", RunCompatibilityTestController.getInstance());
41
        subControllers.put("browseHistory", BrowseHistoryController.getInstance());
42
        subControllers.put("monitor", MonitorController.getInstance());
43
        subControllers.put("helpAdmin", HelpTextsAdminController.getInstance());
44
        subControllers.put("enrichContent", EnrichContentController.getInstance());
45
        subControllers.put("getImpact", GetImpactController.getInstance());
46
        subControllers.put("admin", AdminController.getInstance());
47

    
48
        RootPanel.get("contentWrapper").add(contentPanel);
49
    }
50

    
51
    public void showWidget(String rest) {
52

    
53
        TokenController subController = this.getSubController(rest);
54

    
55
        updateMenu(getMenuPath(null, rest));
56

    
57
//        subController.drawHeader(splitToken(rest)[1]);
58
        subController.showWidget(contentPanel, splitToken(rest)[0], splitToken(rest)[1]);
59
    }
60

    
61
    void updateMenu(final String[] path) {
62

    
63
        $(".menu_level_0").removeClass("active");
64
        $(".menu_level_1").removeClass("active");
65

    
66
        $(".menu_level_0").each(new Function() {
67
            @Override
68
            public void f(Element e) {
69
                if (!e.getId().equals(path[0]+"_li")) {
70
                    //TODO add collapsing when closing
71
                    if($("#" + e.getId() + " > ul")!=null)
72
                        $("#" + e.getId() + " > ul").removeClass("in");
73
                } else {
74
                    $("#" + e.getId()).addClass("active");
75
                    if($("#" + e.getId() + " > ul")!=null)
76
                        $("#" + e.getId() + " > ul").addClass("in");
77
                }
78
            }
79
        });
80

    
81
        if(path.length > 1)
82
            $("#" + path[0] + "_" + path[1] + "_li").addClass("active");
83
    }
84
}
(9-9/12)