133,7 → 133,8 |
private int nbElements = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbElementsPage")); |
|
private Sequenceur sequenceur = null; |
private boolean premierChargement = true; |
//private boolean premierChargement = true; |
protected String codeMenuPrecedent = null; |
|
public Mediateur() { |
// Enregistrement du Médiateur dans le Registre |
280,7 → 281,7 |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION du MENU |
//+----------------------------------------------------------------------------------------------------------------+ |
|
|
public void clicMenu(String codeMenuClique) { |
boolean codeOk = true; |
if (codeMenuClique.equals(MenuApplicationId.ACCUEIL)) { |
308,10 → 309,11 |
// Sélection du menu |
panneauNavigation.selectionMenu(codeMenuClique); |
// Gestion de l'historique |
if (requeteUrl == null) { |
//Coel.LogVersFirebug("CC: [" + codeMenuClique + "], CP: [" + codeMenuPrecedent + "]"); |
if (codeMenuPrecedent != codeMenuClique) { |
//Coel.LogVersFirebug("Création d'historique!"); |
History.newItem(codeMenuClique); |
} else { |
History.newItem(codeMenuClique+"?"+requeteUrl); |
codeMenuPrecedent = codeMenuClique; |
} |
// Ajout des stats Google Analytics |
Analytics.pageVisitee(codeMenuClique); |
1767,27 → 1769,51 |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION de l'HISTORIQUE du navigateur |
//+----------------------------------------------------------------------------------------------------------------+ |
|
/** |
* Encore une bonne bouse sidérale codée avec les pieds dans le plâtre |
* @param event |
*/ |
@Override |
public void onValueChange(ValueChangeEvent<String> event) { |
String token = event.getValue(); |
if(premierChargement) { |
if (token != null) { |
if (token.lastIndexOf("?") == -1) { |
this.requeteUrl = null; |
this.clicMenu(token); |
//Coel.LogVersFirebug("--changement d'URL; token : [" + token + "]"); |
if (token != null) { |
// QUI met des "?" après des "#" ?? Méfions-nous tout de même, si ça |
// y était, y a probablement une raison (mode naïf) |
if (token.lastIndexOf("?") != -1) { |
token = token.substring(0, token.lastIndexOf("?")); |
//Coel.LogVersFirebug("token sans le ? : [" + token + "]"); |
} |
// "chemin" : #TypeEntité/ID_Entité/action |
String[] rondelles = token.split("/"); |
//Coel.LogVersFirebug(rondelles); |
// type d'entité mentionné ? |
if (rondelles != null && rondelles.length > 0) { |
String typeEntite = rondelles[0]; |
// @TODO vérifier la validité du type, et par défaut ne rien faire |
//Coel.LogVersFirebug("=> on va dans [" + typeEntite + "]"); |
codeMenuPrecedent = typeEntite; |
// Si on a un ID d'entité à pointer |
if (rondelles.length > 1) { |
String idEntite = rondelles[1]; |
//Coel.LogVersFirebug("=> on sélectionne [" + idEntite + "]"); |
// On sélectionne l'entité demandée, si elle existe |
this.clicMenu(typeEntite); |
} else { |
int indexDebutRequete = (token.lastIndexOf("?") + 1); |
int indexFinPlace = token.lastIndexOf("?"); |
String place = token.substring(0, indexFinPlace); |
requeteUrl = token.substring(indexDebutRequete); |
Log.trace("URL Place : "+place); |
Log.trace("URL Requete : "+requeteUrl); |
analyseRequeteURL(); |
this.clicMenu(place); |
// On se rend juste dans le menu du type d'entité demandé |
this.clicMenu(typeEntite); |
} |
} |
} |
if (rondelles != null && rondelles.length > 2) { |
String action = rondelles[2]; |
//Coel.LogVersFirebug("=> on exécute l'action [" + action + "]"); |
// On se rend dans le menu du type d'entité demandé |
// -- bonjour l'angoisse pour faire ça (2/2) |
// => attendre le callback des WS pour le faire :'( |
} |
this.requeteUrl = null; // à quoi sert ce truc ? |
} |
premierChargement = false; |
} |
|
private void analyseRequeteURL() { |