/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)); |
} |
} |
} |
} |
/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); |
} |
}-*/; |
} |