New file |
0,0 → 1,130 |
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 lien |
if (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(); |
|
conteneurDuHtml.setStyleAttribute("padding-left", "5px"); |
conteneurDuHtml.setStyleAttribute("padding-top", "5px"); |
} |
|
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érifications |
lien = matcher.getGroup(1); |
} |
return lien; |
} |
} |