Rev 25 | Blame | Last modification | View Log | RSS feed
/**
David Delon david.delon@clapas.net 2007
*/
/*
* Cel.java (Point d'entree de l'application carnet en ligne)
*
* Cas d'utilisation :
* Initialisation de l'application
*
* 1: Le programme initialise la classe intercesseur (mediator), classe ou sont decrites les actions de l'application.
* 2: Le programme s'enregistre aupres de la classe intercesseur
* 3: Le programme recherche les informations de connections (utilisateur ou anonyme)
* 4: Le programme initialise les differents panneaux composant l'affichage
*
*/
package org.tela_botanica.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.WindowResizeListener;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class Cel implements EntryPoint, WindowResizeListener {
private TopPanel topPanel = null; // Identifiant de connexion et titre
private CenterPanel centerPanel = null; // Liste de releves
private LeftPanel leftPanel = null; // Filtres sur liste de releves
private EntryPanel entryPanel = null; // Saisie d'un releve
private ActionPanel actionPanel = null; // Action sur les relevés saisis
private SearchPanel searchPanel = null; // Recherche dans les relevés saisis
private VerticalPanel rightPanel = null; // Container panneau précedents (sauf left et popup)
private Mediator mediator = null; // Intermediaire entre les differents classes
/**
* Point d'entree : recherche du pres-requis : information de connection.
*/
public void onModuleLoad() {
mediator= new Mediator();
mediator.registerCel(this); // Declaration point d'entree aupres de la classe intercesseur
mediator.initUser(); // Initialisation environnement utilisateur (Cette methode appelle la methode initAsync() suivante)
}
/**
* Fin de l'initialisation
*
*/
public void initAsync() {
centerPanel = new CenterPanel(mediator); // Liste de releves
topPanel = new TopPanel(mediator); // Identifiant de connection
leftPanel = new LeftPanel(mediator); // Filte de liste de releves
entryPanel = new EntryPanel(mediator); // Formulaire de saisie
actionPanel = new ActionPanel(mediator); // Action sur releves saisis
searchPanel = new SearchPanel(mediator); // Recherche dans releves
rightPanel = new VerticalPanel(); // Container des panneaux precedents
entryPanel.setStyleName("item-Input");
// Assemblage des differents panneaux
rightPanel.add(searchPanel);
rightPanel.add(entryPanel);
rightPanel.add(centerPanel);
rightPanel.add(actionPanel);
rightPanel.setWidth("100%");
centerPanel.setWidth("100%");
entryPanel.setWidth("100%");
topPanel.setWidth("100%");
rightPanel.setSpacing(2);
// Disposition générale :
DockPanel outer = new DockPanel();
outer.add(topPanel, DockPanel.NORTH);
outer.add(rightPanel, DockPanel.CENTER);
outer.add(leftPanel, DockPanel.WEST);
outer.setWidth("100%");
outer.setSpacing(2);
outer.setCellWidth(rightPanel, "100%");
// Window.enableScrolling(false);
Window.setMargin("0px");
// Initialisation des differents contenus ...
mediator.onInit();
RootPanel.get().add(outer);
// Call the window resized handler to get the initial sizes setup. Doing
// this in a deferred command causes it to occur after all widgets' sizes
// have been computed by the browser.
DeferredCommand.add(new Command() {
public void execute() {
onWindowResized(Window.getClientWidth(), Window.getClientHeight());
}
});
}
public void onWindowResized(int width, int height) {
// Adjust the shortcut panel and detail area to take up the available room
// in the window.
int shortcutHeight = height - leftPanel.getAbsoluteTop() - 8;
if (shortcutHeight < 1)
shortcutHeight = 1;
leftPanel.setHeight("" + shortcutHeight);
}
}
/* +--Fin du code ---------------------------------------------------------------------------------------+
* $Log$
*
*/