package eu.dnetlib.ui.gwt.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.History;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import eu.dnetlib.ui.gwt.client.util.DorotyPage;
import eu.dnetlib.ui.gwt.client.util.GWTMenu;

public class DorotyUIClient implements EntryPoint, ValueChangeHandler<String> {
	private GWTMenu menu = new GWTMenu();

	public static DorotyServiceAsync dorotyService = (DorotyServiceAsync) GWT.create(DorotyService.class);

	public DorotyUIClient() {
	}

	public void onModuleLoad() {
		RootPanel.get("menuTop").add(menu);

		String initToken = History.getToken();
		if (initToken.length() == 0) initToken = menu.getDefaultToken();

		DorotyPage page = menu.getPage(initToken);
		RootPanel.get("mainPage").clear();
		RootPanel.get("mainPage").add(page.asWidget());
		page.refresh();

		History.addValueChangeHandler(this);
	}
	
	public void onValueChange(ValueChangeEvent<String> event) {
        DorotyPage page = menu.getPage(event.getValue());

        RootPanel.get("namePage").clear();
        RootPanel.get("namePage").add(new Label(page.getMenuItem()));
        RootPanel.get("mainPage").clear();
        RootPanel.get("mainPage").add(page.asWidget());
        
        page.refresh();
	}

}

