Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues.accueil;import org.tela_botanica.client.ComposantId;import org.tela_botanica.client.Mediateur;import org.tela_botanica.client.RegistreId;import org.tela_botanica.client.composants.InfoLogger;import org.tela_botanica.client.configuration.Configuration;import org.tela_botanica.client.images.Images;import org.tela_botanica.client.modeles.Information;import org.tela_botanica.client.modeles.Menu;import org.tela_botanica.client.util.Pattern;import org.tela_botanica.client.util.Print;import com.extjs.gxt.ui.client.event.Events;import com.extjs.gxt.ui.client.Registry;import com.extjs.gxt.ui.client.Style.ButtonScale;import com.extjs.gxt.ui.client.Style.LayoutRegion;import com.extjs.gxt.ui.client.Style.Scroll;import com.extjs.gxt.ui.client.event.ButtonEvent;import com.extjs.gxt.ui.client.event.Listener;import com.extjs.gxt.ui.client.event.SelectionListener;import com.extjs.gxt.ui.client.event.TreePanelEvent;import com.extjs.gxt.ui.client.store.Store;import com.extjs.gxt.ui.client.store.TreeStore;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.HtmlContainer;import com.extjs.gxt.ui.client.widget.Info;import com.extjs.gxt.ui.client.widget.LayoutContainer;import com.extjs.gxt.ui.client.widget.form.StoreFilterField;import com.extjs.gxt.ui.client.widget.button.Button;import com.extjs.gxt.ui.client.widget.custom.Portlet;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.extjs.gxt.ui.client.widget.layout.FlowLayout;import com.extjs.gxt.ui.client.widget.layout.FormLayout;import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;import com.extjs.gxt.ui.client.widget.treepanel.TreePanel;import com.google.gwt.core.client.GWT;import com.google.gwt.http.client.Request;import org.tela_botanica.client.http.RequestBuilderWithCredentials;import com.google.gwt.http.client.RequestCallback;import com.google.gwt.http.client.RequestException;import com.google.gwt.http.client.Response;import com.google.gwt.json.client.JSONArray;import com.google.gwt.json.client.JSONObject;import com.google.gwt.json.client.JSONParser;import com.google.gwt.json.client.JSONValue;import com.google.gwt.regexp.shared.MatchResult;import com.google.gwt.regexp.shared.RegExp;import com.google.gwt.user.client.Event;import com.google.gwt.user.client.Window;public class AccueilTutorielVue extends LayoutContainer {private static final String SERVICE_NOM = "CoelAide";private static final String PAGE_A_OUVRIR_CODE = "AideCOELTutoriel";private static Menu pagePrincipale = null;private static Menu menuAOuvrirParDefaut = null;private ContentPanel contenuPanneau = null;private HtmlContainer conteneurDuHtml;private LayoutContainer entetePanneau;public AccueilTutorielVue(Mediateur mediateur) {setLayout(new FitLayout());creerPanneauContenu();chargerPageParDefaut();}private void chargerPageParDefaut() {String serviceUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();String defautPageUrl = serviceUrl+SERVICE_NOM+"/"+PAGE_A_OUVRIR_CODE+"/";chargerPageAide(defautPageUrl);}private void creerPanneauContenu() {contenuPanneau = new ContentPanel();contenuPanneau.setScrollMode(Scroll.AUTO);contenuPanneau.setHeaderVisible(false);contenuPanneau.setLayout(new FitLayout());add(contenuPanneau);}private void chargerPageAide(String url) {conteneurDuHtml = new HtmlContainer() {public void onBrowserEvent(Event e) {// Nous vérifions que l'évenement est un clic et qu'il a lieu sur un lienif (e.getTypeInt() == Event.ONCLICK && e.getEventTarget().toString().startsWith("<a href=\"http://")) {e.preventDefault();String urlPageCliquee = extraireLien(e.getEventTarget().toString());if(urlPageCliquee != null) {chargerPageAide(urlPageCliquee);}} else {GWT.log("Event target:"+e.getEventTarget().toString()+" - type :"+e.getTypeInt()+"="+Event.ONCLICK, null);}}};conteneurDuHtml.setId(ComposantId.PANNEAU_TUTORIEL);conteneurDuHtml.sinkEvents(Event.ONCLICK);conteneurDuHtml.setUrl(url);conteneurDuHtml.recalculate();contenuPanneau.removeAll();contenuPanneau.add(conteneurDuHtml);contenuPanneau.layout();}public String extraireLien(String str) {String lien = null;RegExp regExp = RegExp.compile("href=\"(.*?)\"");MatchResult matcher = regExp.exec(str);boolean matchOK = (matcher != null);if (matchOK) {//TODO plus de vérificationslien = matcher.getGroup(1);}return lien;}}