package eu.dnetlib.client;

import com.google.gwt.user.client.History;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.RootPanel;

/**
 * Created by stefania on 3/6/15.
 */
public class NavigationManager {

    private static NavigationManager instance = null;

    private ContentManager contentManager = null;
    private MainMenu mainMenu = null;
    private BreadcrumbsMenu breadcrumbsMenu = null;

    private NavigationManager() {

    }

    public static final NavigationManager getInstance() {

        if(instance==null)
            instance = new NavigationManager();

        return instance;
    }

    public void navigate(String token) {

        GoldOAPortal.previousToken = GoldOAPortal.currentToken;
        GoldOAPortal.currentToken = token;

        if(breadcrumbsMenu!=null)
            breadcrumbsMenu.updateBreadcrumbsMenu(token);
        if(mainMenu!=null)
            mainMenu.updateMainMenu(token);
        if(contentManager!=null)
            contentManager.updateContent(token);
    }

    public void update() {

        RootPanel.get("menu").clear();
        RootPanel.get("breadcrumbs").clear();

        try {
            contentManager = new ContentManager();
        } catch (Exception e) {
            Window.alert("Content manager -> " + e.getMessage());
        }

        try {
            mainMenu = new MainMenu();
        } catch (Exception e) {
            Window.alert("Main menu -> " + e.getMessage());
        }

        try {
            breadcrumbsMenu = new BreadcrumbsMenu();
        } catch (Exception e) {
            Window.alert("Breadcrumbs menu -> " + e.getMessage());
        }

        RootPanel.get("menu").add(mainMenu.asWidget());
        RootPanel.get("breadcrumbs").add(breadcrumbsMenu.asWidget());
    }
}
