Blame | Last modification | View Log | RSS feed
package org.tela_botanica.client.vues;import org.tela_botanica.client.Mediateur;import org.tela_botanica.client.RegistreId;import org.tela_botanica.client.configuration.Configuration;import org.tela_botanica.client.i18n.Constantes;import org.tela_botanica.client.images.Images;import org.tela_botanica.client.interfaces.Rafraichissable;import org.tela_botanica.client.modeles.Information;import org.tela_botanica.client.modeles.InterneValeur;import org.tela_botanica.client.util.Debug;import com.extjs.gxt.ui.client.Registry;import com.extjs.gxt.ui.client.Style.Scroll;import com.extjs.gxt.ui.client.event.ButtonEvent;import com.extjs.gxt.ui.client.event.IconButtonEvent;import com.extjs.gxt.ui.client.event.SelectionListener;import com.extjs.gxt.ui.client.event.WindowEvent;import com.extjs.gxt.ui.client.event.WindowListener;import com.extjs.gxt.ui.client.store.ListStore;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.LayoutContainer;import com.extjs.gxt.ui.client.widget.button.Button;import com.extjs.gxt.ui.client.widget.button.ToolButton;import com.extjs.gxt.ui.client.widget.custom.Portal;import com.extjs.gxt.ui.client.widget.custom.Portlet;import com.extjs.gxt.ui.client.widget.form.ComboBox;import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;import com.extjs.gxt.ui.client.widget.layout.FitLayout;import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;public class AccueilVue extends LayoutContainer implements Rafraichissable {private Mediateur mediateur = null;private Constantes i18nC = null;private Portal portail = null;public AccueilVue(Mediateur mediateurCourant) {mediateur = mediateurCourant;i18nC = Mediateur.i18nC;setLayout(new FitLayout());ContentPanel panneauPrincipal = new ContentPanel();panneauPrincipal.setLayout(new FitLayout());panneauPrincipal.setHeading("Accueil");panneauPrincipal.setBorders(false);ToolBar barreOutils = new ToolBar();Button ajouter = new Button(i18nC.ajouter());ajouter.setIcon(Images.ICONES.ajouter());ajouter.addSelectionListener(new SelectionListener<ButtonEvent>() {public void componentSelected(ButtonEvent be) {ajouterPortlet(0);}});barreOutils.add(ajouter);panneauPrincipal.setTopComponent(barreOutils);portail = new Portal(3);portail.setBorders(true);portail.setStyleAttribute("backgroundColor", "white");portail.setShadow(true);portail.setColumnWidth(0, .33);portail.setColumnWidth(1, .33);portail.setColumnWidth(2, .33);panneauPrincipal.add(portail);ajouterPortlet(0);add(panneauPrincipal);mediateur.desactiverChargement();}private void ajouterPortlet(int index) {Portlet portlet = new Portlet();portlet.setHeading("Statistiques des collections");configPanel(portlet);portlet.setLayout(new FitLayout());HtmlContainer conteneurHtml = new HtmlContainer();conteneurHtml.setUrl("http://localhost/jrest/CoelStatistique/NombreDonnees");portlet.add(conteneurHtml);portlet.setHeight(250);portail.add(portlet, index);}private void configPanel(final ContentPanel panel) {panel.setLayout(new FitLayout());panel.setCollapsible(true);panel.setAnimCollapse(false);panel.setScrollMode(Scroll.AUTO);panel.getHeader().addTool(new ToolButton("x-tool-gear", new SelectionListener<IconButtonEvent>() {@Overridepublic void componentSelected(IconButtonEvent ce) {ContentPanel panneau = new ContentPanel();panneau.setHeaderVisible(false);panneau.setLayout(Formulaire.creerFormLayout(350, LabelAlign.TOP));String baseUrl = ((Configuration) Registry.get(RegistreId.CONFIG)).getServiceBaseUrl();baseUrl += "CoelStatistique/";ListStore<InterneValeur> appletteStore = new ListStore<InterneValeur>();appletteStore.add(new InterneValeur(baseUrl+"NombreDonnees", "Nombre de données"));appletteStore.add(new InterneValeur(baseUrl+"Accueil", "Bienvenue"));appletteStore.add(new InterneValeur(baseUrl+"TypeDepot", "Types de dépôt des collections"));appletteStore.add(new InterneValeur(baseUrl+"NombreCollectionParStructure", "Nombre de collections par institution"));final ComboBox<InterneValeur> applettesCombo = new ComboBox<InterneValeur>();applettesCombo.setFieldLabel("Veuillez sélectionner le type d'applette");applettesCombo.setForceSelection(true);applettesCombo.setTriggerAction(TriggerAction.ALL);applettesCombo.setDisplayField("nom");applettesCombo.setStore(appletteStore);applettesCombo.setEditable(false);applettesCombo.setWidth(300);panneau.add(applettesCombo);final Dialog configurationFenetre = new Dialog();configurationFenetre.setHeading("Configuration de l'applette");configurationFenetre.setButtons(Dialog.OK);configurationFenetre.setSize(350, 150);configurationFenetre.setPlain(true);configurationFenetre.setModal(true);configurationFenetre.setBlinkModal(true);configurationFenetre.setLayout(new FitLayout());configurationFenetre.setHideOnButtonClick(true);configurationFenetre.addWindowListener(new WindowListener(){public void windowHide(WindowEvent we) {String url = applettesCombo.getValue().getAbr();HtmlContainer conteneurHtml = new HtmlContainer();conteneurHtml.setUrl(url);conteneurHtml.recalculate();panel.removeAll();panel.add(conteneurHtml);Debug.log(url);panel.layout();}});configurationFenetre.add(panneau);configurationFenetre.show();}}));panel.getHeader().addTool(new ToolButton("x-tool-close", new SelectionListener<IconButtonEvent>() {@Overridepublic void componentSelected(IconButtonEvent ce) {panel.removeFromParent();}}));}public void rafraichir(Object nouvellesDonnees) {if (nouvellesDonnees instanceof Information) {Information info = (Information) nouvellesDonnees;String type = info.getType();if (type.equals("")) {}} else {Debug.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()));}}}