Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 1201 → Rev 1202

/branches/v1.0-syrah/src/org/tela_botanica/client/composants/InfoLogger.java
New file
0,0 → 1,43
package org.tela_botanica.client.composants;
import java.util.Vector;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.vues.FenetreJournal;
import org.tela_botanica.client.vues.StatutVue;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.fx.FxConfig;
import com.extjs.gxt.ui.client.widget.Info;
import com.extjs.gxt.ui.client.widget.InfoConfig;
 
public class InfoLogger {
/**
* La méthode permet de logger dans la fenêtre journal le message affiché.
* */
public static void display(String title, String text) {
Info.display(title, text);
InfoConfig info = new InfoConfig(title, text);
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).obtenirFenetreJournal().rafraichir(info);
}
public static void display(String title, String text, boolean estErreur) {
Info.display(title, text);
InfoConfig info = new InfoConfig(title, text);
((Mediateur) Registry.get(RegistreId.MEDIATEUR)).obtenirFenetreJournal().rafraichir(info);
}
/**
* Displays a message using the specified config.
*
* @param config the info config
*/
/* public static void display(InfoConfig config, boolean estErreur) {
StatutVue panneauSud = ((Mediateur) Registry.get(RegistreId.MEDIATEUR)).obtenirPanneauSud();
panneauSud.afficherMessage(config);
if (estErreur) {
panneauSud.afficherErreur();
}
}*/
}
/branches/v1.0-syrah/src/org/tela_botanica/client/vues/FenetreJournal.java
New file
0,0 → 1,105
package org.tela_botanica.client.vues;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.Valeur;
 
import com.extjs.gxt.ui.client.Style.SortDir;
import com.extjs.gxt.ui.client.core.XTemplate;
import com.extjs.gxt.ui.client.event.BaseEvent;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.InfoConfig;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
import com.extjs.gxt.ui.client.widget.grid.EditorGrid;
import com.extjs.gxt.ui.client.widget.grid.Grid;
import com.extjs.gxt.ui.client.widget.grid.GridSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.RowExpander;
import com.extjs.gxt.ui.client.widget.grid.RowNumberer;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.Dictionary;
 
public class FenetreJournal extends Dialog implements Rafraichissable{
 
private int id = 0;
private EditorGrid<Valeur> grille;
private int nbLogs = Integer.valueOf(((Dictionary) Dictionary.getDictionary("configuration")).get("nbLogs"));
private ListStore<Valeur> store;
public FenetreJournal(Mediateur mediateur) {
this.setHeading(mediateur.i18nC.titreJournal());
this.setWidth(500);
this.setHeight(500);
setLayout(new FitLayout());
// Définition des colomnes de la grille:
RowNumberer numeroPlugin = new RowNumberer();
numeroPlugin.setHeader("#");
XTemplate infoTpl = XTemplate.create("<p>"+
"<b>" + mediateur.i18nC.heureMessage() + " : </b>{heure}<br />" +
"<b>" + mediateur.i18nC.message() + " : </b>{description}<br />" +
"</p>");
RowExpander expansionPlugin = new RowExpander();
expansionPlugin.setTemplate(infoTpl);
List<ColumnConfig> lstColumns = new ArrayList<ColumnConfig>();
lstColumns.add(expansionPlugin);
lstColumns.add(new ColumnConfig("nom", mediateur.i18nC.publicationTitre(), 200));
lstColumns.add(new ColumnConfig("description", mediateur.i18nC.message() , 400));
 
ColumnModel modeleColonnes = new ColumnModel(lstColumns);
store = new ListStore<Valeur>();
grille = new EditorGrid<Valeur>(store, modeleColonnes);
grille.addPlugin(expansionPlugin);
grille.setAutoExpandColumn("description");
grille.getView().setAutoFill(true);
grille.getView().setForceFit(true);
store.sort("id", SortDir.DESC);
add(grille);
}
@Override
public void rafraichir(Object nouvellesDonnees) {
if (nouvellesDonnees instanceof InfoConfig) {
InfoConfig info = (InfoConfig) nouvellesDonnees;
id++;
Valeur v = new Valeur(String.valueOf(id), info.title, null, info.text);
v.set("heure", getDate());
store.add(v);
if (store.getModels().size() > nbLogs) {
store.remove(store.getAt(nbLogs));
}
}
}
public String getDate() {
Date date = new Date();
return String.valueOf(DateTimeFormat.getFormat("HH:mm:ss").format(date));
}
@Override
protected void createButtons() {
//Pas de boutons, merci
}
 
}