Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1779 → Rev 1780

/trunk/src/org/tela_botanica/client/Mediateur.java
53,7 → 53,7
import org.tela_botanica.client.vues.FenetreForm;
import org.tela_botanica.client.vues.Formulaire;
import org.tela_botanica.client.vues.FenetreJournal;
import org.tela_botanica.client.vues.NavigationVue;
import org.tela_botanica.client.vues.MenuHorizontalVue;
import org.tela_botanica.client.vues.PopupChargement;
import org.tela_botanica.client.vues.StatutVue;
import org.tela_botanica.client.vues.accueil.AccueilVue;
71,9 → 71,11
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.Style.Orientation;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.MessageBoxEvent;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.extjs.gxt.ui.client.widget.Viewport;
80,6 → 82,9
import com.extjs.gxt.ui.client.widget.button.Button;
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.LayoutData;
import com.extjs.gxt.ui.client.widget.layout.RowData;
import com.extjs.gxt.ui.client.widget.layout.RowLayout;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
101,10 → 106,10
private String requeteUrl = null;
private EnteteVue panneauNord = null;
private NavigationVue panneauOuest = null;
private ContenuVue panneauCentre = null;
private StatutVue panneauSud = null;
private FenetreJournal fenetreJournal = null;
private MenuHorizontalVue panneauNavigation = null;
private HashMap<Object, Integer> fileDAttenteChargement = null;
130,10 → 135,11
// Création du Viewport qui contient la disposition globale de l'application
viewport = new Viewport();
viewport.setLayout(new BorderLayout());
panneauNavigation = new MenuHorizontalVue(this);
 
// Création des différents panneaux
creerPanneauNord();
creerPanneauOuest();
creerPanneauCentral();
creerPanneauSud();
fenetreJournal = new FenetreJournal(this);
205,25 → 211,27
viewport.add(panneauNord, regionNord);
}
private void creerPanneauOuest() {
panneauOuest = new NavigationVue(this);
BorderLayoutData regionOuest = new BorderLayoutData(LayoutRegion.WEST, 241);
regionOuest.setSplit(true);
regionOuest.setCollapsible(true);
regionOuest.setMargins(new Margins(5));
 
viewport.add(panneauOuest, regionOuest);
}
 
private void creerPanneauCentral() {
ContentPanel panneauIntermediaire = new ContentPanel();
panneauIntermediaire.setLayout(new RowLayout(Orientation.VERTICAL));
panneauIntermediaire.setHeaderVisible(false);
panneauCentre = new ContenuVue(this);
panneauCentre.setBorders(false);
 
BorderLayoutData regionCentre = new BorderLayoutData(LayoutRegion.CENTER);
regionCentre.setMargins(new Margins(5, 5, 5, 0));
panneauNavigation.setHeight(28);
panneauNavigation.setBodyBorder(false);
panneauNavigation.setBorders(false);
panneauIntermediaire.add(panneauNavigation, new RowData(1, -1, new Margins(0)));
panneauIntermediaire.add(panneauCentre, new RowData(1, 1, new Margins(0)));
 
viewport.add(panneauCentre, regionCentre);
viewport.add(panneauIntermediaire, regionCentre);
}
private void creerPanneauSud() {
280,7 → 288,7
// Le code menu est valide
if (codeOk == true) {
// Sélection du menu
panneauOuest.getMenu().selectionMenu(codeMenuClique);
panneauNavigation.selectionMenu(codeMenuClique);
// Gestion de l'historique
if (requeteUrl == null) {
History.newItem(codeMenuClique);
289,6 → 297,7
}
// Rafraichissement du panneau central
panneauCentre.layout();
viewport.layout();
}
}
/trunk/src/org/tela_botanica/client/Coel.java
2,10 → 2,26
 
import com.extjs.gxt.ui.client.GXT;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
 
public class Coel implements EntryPoint {
 
public void onModuleLoad() {
// A décommenter + compiler en detailed dans le cas d'une erreur
// survernant uniquement sur le serveur
GWT.setUncaughtExceptionHandler(null);
GWT.setUncaughtExceptionHandler(new GWT.UncaughtExceptionHandler() {
@Override
public void onUncaughtException(Throwable e) {
Window.alert("uncaught: " + e.getMessage());
String s = buildStackTrace(e, "RuntimeException:\n");
Window.alert(s);
e.printStackTrace();
}
});
// Fermeture du panneau de chargement de l'appli
GXT.hideLoadingPanel("loading");
18,7 → 34,36
System.out.println("-------------------------------------------------------------------");
System.out.println("");
}
}
private String buildStackTrace(Throwable t, String log) {
if (t != null) {
log += t.getClass().toString();
log += t.getMessage();
//
StackTraceElement[] stackTrace = t.getStackTrace();
if (stackTrace != null) {
StringBuffer trace = new StringBuffer();
for (int i = 0; i < stackTrace.length; i++) {
trace.append(stackTrace[i].getClassName() + "." + stackTrace[i].getMethodName() + "("
+ stackTrace[i].getFileName() + ":" + stackTrace[i].getLineNumber());
}
log += trace.toString();
}
//
Throwable cause = t.getCause();
if (cause != null && cause != t) {
log += buildStackTrace(cause, "CausedBy:\n");
}
}
return log;
}
 
public static native void LogVersFirebug(String s) /*-{
if (!!($wnd.console && $wnd.console.log)) {
console.log(s);
}
}-*/;
}
/trunk/src/org/tela_botanica/client/vues/NavigationVue.java
File deleted
\ No newline at end of file
/trunk/src/org/tela_botanica/client/vues/MenuHorizontalVue.java
New file
0,0 → 1,108
package org.tela_botanica.client.vues;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.i18n.Constantes;
import org.tela_botanica.client.modeles.Menu;
import org.tela_botanica.client.modeles.MenuApplicationId;
 
import com.extjs.gxt.ui.client.Style.HideMode;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.TabPanelEvent;
import com.extjs.gxt.ui.client.event.TreePanelEvent;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.Document;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.Window;
 
 
public class MenuHorizontalVue extends ContentPanel {
private Mediateur mediateur = null;
private Constantes i18nC = null;
private TabPanel tbp = null;
private boolean repandreSelection = true;
public MenuHorizontalVue(Mediateur mediateurCourant) {
mediateur = mediateurCourant;
i18nC = Mediateur.i18nC;
setHeaderVisible(false);
// Ce tab Panel est un peu spécial car chaque onglet ne contient rien du tout
// ils ne servent qu'a être cliqués afin de déclencher une action de la part du médiateur
// ceci afin de pouvoir facilement changer d'avis si jamais on prend une autre forme de navigation
tbp = new TabPanel();
TabItem tbAcc = new TabItem(i18nC.menuAccueil());
tbAcc.setBorders(false);
tbAcc.setId(MenuApplicationId.ACCUEIL);
tbAcc.setHeight(0);
TabItem tbIns = new TabItem(i18nC.menuStructure());
tbIns.setBorders(false);
tbIns.setId(MenuApplicationId.STRUCTURE);
tbIns.setHeight(0);
TabItem tbCol = new TabItem(i18nC.menuCollection());
tbCol.setBorders(false);
tbCol.setId(MenuApplicationId.COLLECTION);
tbCol.setHeight(0);
TabItem tbPer = new TabItem(i18nC.menuPersonne());
tbPer.setBorders(false);
tbPer.setId(MenuApplicationId.PERSONNE);
tbPer.setHeight(0);
TabItem tbPub = new TabItem(i18nC.menuPublication());
tbPub.setBorders(false);
tbPub.setId(MenuApplicationId.PUBLICATION);
tbPub.setHeight(0);
TabItem tbCom = new TabItem(i18nC.menuCommentaire());
tbCom.setBorders(false);
tbCom.setId(MenuApplicationId.COMMENTAIRE);
tbCom.setHeight(0);
tbp.add(tbAcc);
tbp.add(tbIns);
tbp.add(tbCol);
tbp.add(tbPer);
tbp.add(tbPub);
tbp.add(tbCom);
// Supression du conteneur vide de l'onglet (pour éviter un décalage de l'interface)
tbp.addListener(Events.BeforeSelect, new Listener<TabPanelEvent>() {
public void handleEvent(TabPanelEvent be) {
be.getItem().getElement().removeFromParent();
}
});
// interception de la selection afin de prévenir le médiateur pour qu'il charge
// le panneau central correspondant
tbp.addListener(Events.Select, new Listener<TabPanelEvent>() {
public void handleEvent(TabPanelEvent be) {
mediateur.clicMenu(be.getItem().getId());
}
});
this.add(tbp);
}
 
public void selectionMenu(String codeMenuClique) {
int nbTab = tbp.getItemCount();
for(int i = 0; i < nbTab; i++) {
if(tbp.getItem(i).getId().equals(codeMenuClique)) {
repandreSelection = false;
tbp.setSelection(tbp.getItem(i));
}
}
}
}