package it.agilis.mens.azzeroCO2.client.mvc.views;
import com.extjs.gxt.ui.client.Style;
import com.extjs.gxt.ui.client.event.EventType;
import com.extjs.gxt.ui.client.mvc.AppEvent;
import com.extjs.gxt.ui.client.mvc.Controller;
import com.extjs.gxt.ui.client.mvc.View;
import com.extjs.gxt.ui.client.widget.Component;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.extjs.gxt.ui.client.widget.layout.RowData;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.ScrollPanel;
import it.agilis.mens.azzeroCO2.client.components.InfoDialog;
import it.agilis.mens.azzeroCO2.client.components.evento.dialogs.RiepilogoConfermDialog;
import it.agilis.mens.azzeroCO2.client.mvc.events.AzzeroCO2Events;
import it.agilis.mens.azzeroCO2.shared.model.RiepilogoModel;
/**
* Created by IntelliJ IDEA.
* User: giovannilt
* Date: 6/25/11
* Time: 8:49 PM
* To change this template use File | Settings | File Templates.
*/
public class AzzeroCO2View extends View {
private final ContentPanel main = new ContentPanel() {
@Override
protected void onLoad() {
super.onLoad();
getBody().setStyleAttribute("border-top", "0px");
}
};
private InfoDialog infoDialog = new InfoDialog();
private RiepilogoConfermDialog riepilogoConfermaDialog = new RiepilogoConfermDialog();
public AzzeroCO2View(Controller controller) {
super(controller);
}
@Override
protected void handleEvent(AppEvent event) {
EventType eventType = event.getType();
if (eventType.equals(AzzeroCO2Events.Init)) {
onInit(event);
} else if (eventType.equals(AzzeroCO2Events.Error)) {
onError(event);
} else if (eventType.equals(AzzeroCO2Events.UIReady)) {
onUIReady(event);
} else if (eventType.equals(AzzeroCO2Events.NorthPanelReady)) {
onNorthPanelReady(event);
} else if (eventType.equals(AzzeroCO2Events.CentralPanelReady)) {
onCentralPanelReady(event);
} else if (eventType.equals(AzzeroCO2Events.NewsPanelReady)) {
onNewsPanelReady(event);
} else if (eventType.equals(AzzeroCO2Events.ShowRiepilogoConfermDialog)) {
riepilogoConfermaDialog.setModel((RiepilogoModel) event.getData());
riepilogoConfermaDialog.show();
} else if (eventType.equals(AzzeroCO2Events.ShowInfoDialog)) {
infoDialog.show();
}
}
private void onNorthPanelReady(AppEvent event) {
BorderLayoutData northData = new BorderLayoutData(Style.LayoutRegion.NORTH, 170);
northData.setCollapsible(false);
northData.setFloatable(false);
northData.setHideCollapseTool(false);
northData.setSplit(false);
Component northPanel = event.getData();
main.add(northPanel, northData);
}
private void onCentralPanelReady(AppEvent event) {
BorderLayoutData centerData = new BorderLayoutData(Style.LayoutRegion.CENTER);
//centerData.setMargins(new Margins(0));
centerData.setCollapsible(false);
centerData.setFloatable(false);
centerData.setHideCollapseTool(false);
centerData.setSplit(false);
// centerData.setMargins(new Margins(10, 0, 0, 0));
Component centerPanel = event.getData();
LayoutContainer c = new LayoutContainer();
c.setLayout(new RowLayout(Style.Orientation.HORIZONTAL));
c.add(centerPanel, new RowData(.96, 1));
main.add(c, centerData);
}
private void onNewsPanelReady(AppEvent event) {
}
private void onInit(AppEvent event) {
final BorderLayout layout = new BorderLayout();
main.setSize(1020, 820);
main.setHeaderVisible(false);
main.setLayout(layout);
main.setAnimCollapse(true);
}
private void onUIReady(AppEvent event) {
RootPanel root = RootPanel.get();
ScrollPanel sc = new ScrollPanel();
/*VBoxLayout layoutCentre = new VBoxLayout();
layoutCentre.setPadding(new Padding(23, 5, 5, 5));
layoutCentre.setVBoxLayoutAlign(VBoxLayout.VBoxLayoutAlign.CENTER);
root.setLayoutData(layoutCentre);*/
sc.add(main);
// sc.add(viewport);
sc.getElement().setAttribute("Style", "overflow: auto; position: absolute;\n" +
"top: 2%;\n" +
"left: 50%; \n" +
"width:1100px;\n" +
"height: 820px;\n" +
"margin-left:-512px;\n" +
"margin-top:-10px;");
root.add(sc);
}
private void onError(AppEvent event) {
}
public void setInfo(String info) {
infoDialog.setInfo(info);
infoDialog.show();
}
}