Go to most recent revision | Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;
import org.tela_botanica.client.AppEvenements;
import org.tela_botanica.client.widgets.IdentificationFenetre;
import com.extjs.gxt.ui.client.Events;
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.WindowEvent;
import com.extjs.gxt.ui.client.mvc.AppEvent;
import com.extjs.gxt.ui.client.mvc.Controller;
import com.extjs.gxt.ui.client.mvc.Dispatcher;
import com.extjs.gxt.ui.client.mvc.View;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.HtmlContainer;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.Viewport;
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.FitLayout;
import com.google.gwt.user.client.ui.RootPanel;
public class AppVue extends View {
public static final String VIEWPORT = "viewport";
public static final String PANNEAU_OUEST = "ouest";
public static final String PANNEAU_CENTRE = "centre";
private Viewport viewport;
private ContentPanel panneauOuest;
private LayoutContainer panneauCentre;
public AppVue(Controller controleur) {
super(controleur);
}
protected void initialize() {
IdentificationFenetre dialog = new IdentificationFenetre();
dialog.setClosable(false);
dialog.addListener(Events.Hide, new Listener<WindowEvent>() {
public void handleEvent(WindowEvent be) {
Dispatcher.forwardEvent(AppEvenements.Init);
}
});
dialog.show();
}
private void initUI() {
viewport = new Viewport();
viewport.setLayout(new BorderLayout());
creerPanneauNord();
creerPanneauOuest();
creerPanneauCentral();
// Registry utile car présent partout!
Registry.register(VIEWPORT, viewport);
Registry.register(PANNEAU_OUEST, panneauOuest);
Registry.register(PANNEAU_CENTRE, panneauCentre);
RootPanel.get().add(viewport);
}
private void creerPanneauNord() {
StringBuffer sb = new StringBuffer();
sb.append("<div id='demo-header' class='x-small-editor'><div id='demo-theme'></div><div id='demo-title'>Coellections en Ligne Demo</div></div>");
HtmlContainer panneauNord = new HtmlContainer(sb.toString());
panneauNord.setEnableState(false);
BorderLayoutData regionNord = new BorderLayoutData(LayoutRegion.NORTH, 100);
regionNord.setCollapsible(true);
regionNord.setFloatable(true);
regionNord.setSplit(false);
regionNord.setMargins(new Margins(5, 5, 0, 5));
viewport.add(panneauNord, regionNord);
}
private void creerPanneauOuest() {
BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 200);
regionOuest.setSplit(true);
regionOuest.setCollapsible(true);
regionOuest.setMargins(new Margins(5));
panneauOuest = new ContentPanel();
panneauOuest.setBodyBorder(false);
panneauOuest.setLayoutOnChange(true);
panneauOuest.setHeading("Menu");
panneauOuest.setLayout(new FitLayout());
viewport.add(panneauOuest, regionOuest);
}
private void creerPanneauCentral() {
panneauCentre = new LayoutContainer();
panneauCentre.setLayout(new FitLayout());
BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);
regionCentre.setMargins(new Margins(5, 5, 5, 0));
viewport.add(panneauCentre, regionCentre);
}
protected void handleEvent(AppEvent event) {
switch (event.type) {
case AppEvenements.Init:
initUI();
break;
}
}
}