Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 101 → Rev 102

/trunk/src/org/tela_botanica/client/modeles/Personne.java
New file
0,0 → 1,62
package org.tela_botanica.client.modeles;
 
import java.util.Iterator;
import java.util.Set;
 
import com.google.gwt.json.client.JSONObject;
 
public class Personne extends aDonnee {
 
/**
* Constructeur avec un objet JSON
*
* @param image
*/
public Personne(JSONObject liste) {
// l'objet JSON est une table de hachage
Set<String> im = liste.keySet();
 
// Parcourt pour chaque clé
for (Iterator<String> it = im.iterator(); it.hasNext();) {
// Si elle est associée à une valeur, nous l'ajoutons
String cle = it.next();
// Suppression de l'abréviation du champ. Inutile dans le contexte d'un objet
String cleObjet = cle.replaceFirst("^cp_", "");
if (liste.get(cle).isString() != null) {
String valeur = liste.get(cle).isString().stringValue();
this.set(cleObjet, valeur);
} else {
// Sinon, nous ajoutons la clé avec une valeur vide
String valeur = " ";
this.set(cleObjet, valeur);
}
}
}
/**
* Constructeur avec la fonction à passer en paramètre
*
* @param image
*/
public Personne(String fonction) {
this.set("ce_truk_fonction", fonction);
this.set("mark_contact", false);
}
public String getId() {
return (String) renvoyerValeurCorrecte("id_personne");
}
public String getFonction() {
String fonction = (String) renvoyerValeurCorrecte("ce_truk_fonction");
if (fonction.equals(Valeur.FONCTION_DIRECTEUR)) {
return "Directeur";
} else if (fonction.equals(Valeur.FONCTION_CONSERVATEUR)) {
return "Conservateur";
} else {
return "";
}
}
 
}
/trunk/src/org/tela_botanica/client/modeles/PersonneListe.java
New file
0,0 → 1,82
package org.tela_botanica.client.modeles;
 
import java.util.LinkedHashMap;
 
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONNumber;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
 
/**
* Table de hachage composée d'informations sur les Valeurs des listes, renvoyé par un objet de type DAO
* La clé est le nom de l'entite + le nom de l'entite parente
*
* @author david delon
*
*/
public class PersonneListe extends LinkedHashMap<String, Valeur> {
/**
* Identifiant pour sérialisé l'objet...
*/
private static final long serialVersionUID = 7784635999621813450L;
private int id = 0;
/**
* Constructeur sans paramètres
*/
public PersonneListe() {
super();
}
/**
* Constructeur avec paramètre
* @param taille la taille de la table de hachage
*/
public PersonneListe(int taille) {
super(taille);
}
/**
* Constructeur pour une liste de personne
* @param dates
*/
public PersonneListe(JSONArray liste) {
super(liste.size());
this.constuireObjet(liste);
}
 
public PersonneListe(JSONString listeId, JSONArray listePersonnes) {
super(listePersonnes.size());
this.setId(Integer.parseInt(listeId.stringValue()));
this.constuireObjet(listePersonnes);
}
 
private void constuireObjet(JSONArray liste)
{
final int taillemax = liste.size();
for (int i = 0; i < taillemax; i++) {
JSONObject listeValeur = liste.get(i).isObject() ;
if (listeValeur != null) {
Valeur valeur = new Valeur(listeValeur);
this.put(valeur.getId(), valeur);
}
}
}
/**
* @param id l'identifiant à définir
*/
public void setId(int id) {
this.id = id;
}
 
/**
* @return l'identifiant de la liste
*/
public Integer getId() {
return id;
}
}
/trunk/src/org/tela_botanica/client/modeles/Valeur.java
6,7 → 6,10
import com.google.gwt.json.client.JSONObject;
 
public class Valeur extends aDonnee {
 
public static final String FONCTION_DIRECTEUR = "2028";
public static final String FONCTION_CONSERVATEUR = "2029";
/**
* Constructeur avec un objet JSON
*
/trunk/src/org/tela_botanica/client/Coel.java
26,5 → 26,8
Registry.register(RegistreId.CONFIG, new Configuration());
 
new Mediateur();
// J'appelle directement la page où je travaille
Mediateur mediat = Registry.get(RegistreId.MEDIATEUR);
mediat.clicAjouterStructure();
}
}
/trunk/src/org/tela_botanica/client/vues/FormStructureVue.java
1,12 → 1,9
package org.tela_botanica.client.vues;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
 
import org.tela_botanica.client.Mediateur;
import org.tela_botanica.client.Modele;
import org.tela_botanica.client.RegistreId;
import org.tela_botanica.client.interfaces.Rafraichissable;
13,26 → 10,16
import org.tela_botanica.client.modeles.Configuration;
import org.tela_botanica.client.modeles.InterneValeur;
import org.tela_botanica.client.modeles.InterneValeurListe;
import org.tela_botanica.client.modeles.Structure;
import org.tela_botanica.client.modeles.StructureListe;
import org.tela_botanica.client.modeles.Personne;
import org.tela_botanica.client.modeles.Valeur;
import org.tela_botanica.client.modeles.ValeurListe;
 
import com.extjs.gxt.ui.client.Registry;
import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.data.BasePagingLoadResult;
import com.extjs.gxt.ui.client.data.BasePagingLoader;
import com.extjs.gxt.ui.client.data.JsonReader;
import com.extjs.gxt.ui.client.data.ListLoadResult;
import com.extjs.gxt.ui.client.data.ModelData;
import com.extjs.gxt.ui.client.data.ModelType;
import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.extjs.gxt.ui.client.data.PagingLoader;
import com.extjs.gxt.ui.client.data.ScriptTagProxy;
import com.extjs.gxt.ui.client.event.SelectionChangedEvent;
import com.extjs.gxt.ui.client.event.SelectionChangedListener;
import com.extjs.gxt.ui.client.store.ListStore;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.TabItem;
import com.extjs.gxt.ui.client.widget.TabPanel;
41,12 → 28,17
import com.extjs.gxt.ui.client.widget.form.DateField;
import com.extjs.gxt.ui.client.widget.form.FieldSet;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.Radio;
import com.extjs.gxt.ui.client.widget.form.RadioGroup;
import com.extjs.gxt.ui.client.widget.form.NumberField;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
import com.extjs.gxt.ui.client.widget.form.DateField.DateFieldMessages;
import com.extjs.gxt.ui.client.widget.form.FormPanel.LabelAlign;
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
import com.extjs.gxt.ui.client.widget.grid.CheckBoxSelectionModel;
import com.extjs.gxt.ui.client.widget.grid.CheckColumnConfig;
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.layout.ColumnData;
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
53,8 → 45,12
import com.extjs.gxt.ui.client.widget.layout.FlowLayout;
import com.extjs.gxt.ui.client.widget.layout.FormData;
import com.extjs.gxt.ui.client.widget.layout.FormLayout;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.NumberFormat;
 
public class FormStructureVue extends LayoutContainer implements Rafraichissable {
 
90,7 → 86,8
panel.setLayout(new FlowLayout());
 
// Création des onglets
TabPanel onglets = new TabPanel();
TabPanel onglets = new TabPanel();
onglets.setAutoHeight(true);
//tabs.setDeferredRender(false);
//+-----------------------------------------------------------------------------------------------------------+
138,6 → 135,7
comboAcronyme.setTypeAhead(true);
comboAcronyme.setTriggerAction(TriggerAction.ALL);
comboAcronyme.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
@Override
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
String acronymeAbr = se.getSelectedItem().getAbr();
if (acronymeAbr.equals("IH")) {
202,6 → 200,7
comboTypeStructure.setTypeAhead(true);
comboTypeStructure.setTriggerAction(TriggerAction.ALL);
comboTypeStructure.addSelectionChangedListener(new SelectionChangedListener<InterneValeur>() {
@Override
public void selectionChanged(SelectionChangedEvent<InterneValeur> se) {
String typeAbr = se.getSelectedItem().getAbr();
if (typeAbr.equals("stpu")) {
365,10 → 364,17
//+-----------------------------------------------------------------------------------------------------------+
// Onlget formulaire PERSONNEL
TabItem personnelOnglet = new TabItem();
personnelOnglet.setText("Personnel");
personnelOnglet.setLayout(new FormLayout());
 
personnelOnglet.setText("Personnel");
FormLayout personnelOngletLayout = new FormLayout();
personnelOngletLayout.setLabelWidth(400);
personnelOnglet.setLayout(personnelOngletLayout);
TextField<String> nbreTotalPersonneStructureChp = new TextField<String>();
nbreTotalPersonneStructureChp.setFieldLabel("Nombre de personne travaillant dans l'institution");
personnelOnglet.add(nbreTotalPersonneStructureChp);
personnelOnglet.add(this.creerGrillePersonnel());
onglets.add(personnelOnglet);
//+-----------------------------------------------------------------------------------------------------------+
391,25 → 397,7
//+-----------------------------------------------------------------------------------------------------------+
// Gestion du FORMULAIRE GÉNÉRAL
// Ajout du type
LayoutContainer typeConteneur = new LayoutContainer();
layoutDroite = new FormLayout();
layoutDroite.setLabelWidth(50);
layoutDroite.setPadding(5);
typeConteneur.setLayout(layoutDroite);
RadioGroup group = new RadioGroup();
group.setFieldLabel("Type");
Radio structureRadio = new Radio();
structureRadio.setBoxLabel("Structure");
structureRadio.setValue(true);
group.add(structureRadio);
Radio particulierRadio = new Radio();
particulierRadio.setBoxLabel("Particulier");
group.add(particulierRadio);
typeConteneur.add(group);
panel.add(typeConteneur);
// Ajout des onglets
panel.add(onglets);
423,6 → 411,84
add(panel);
}
 
private ContentPanel creerGrillePersonnel() {
List<Personne> personnes = new ArrayList<Personne>();
personnes.add(new Personne(Valeur.FONCTION_DIRECTEUR));
personnes.add(new Personne(Valeur.FONCTION_CONSERVATEUR));
List<ColumnConfig> configs = new ArrayList<ColumnConfig>();
 
CheckBoxSelectionModel<Personne> sm = new CheckBoxSelectionModel<Personne>();
configs.add(sm.getColumn());
 
ColumnConfig column = new ColumnConfig();
column.setId("ce_truk_fonction");
column.setHeader("Fonction");
column.setWidth(100);
configs.add(column);
column = new ColumnConfig();
column.setId("prenom");
column.setHeader("Prénom");
column.setWidth(100);
configs.add(column);
column = new ColumnConfig();
column.setId("nom");
column.setHeader("Nom");
column.setWidth(75);
TextField<String> text = new TextField<String>();
text.setAllowBlank(false);
text.setAutoValidate(true);
column.setEditor(new CellEditor(text));
configs.add(column);
 
column = new ColumnConfig("tel", "Téléphone", 100);
configs.add(column);
 
column = new ColumnConfig("fax", "Fax", 100);
configs.add(column);
column = new ColumnConfig("tps_w", "Temps travail", 0);
column.setNumberFormat(NumberFormat.getDecimalFormat());
column.setEditor(new CellEditor(new NumberField()));
configs.add(column);
column = new ColumnConfig("specialites", "Spécialités botaniques", 200);
configs.add(column);
CheckColumnConfig checkColumn = new CheckColumnConfig("mark_contact", "Contact ?", 55);
configs.add(checkColumn);
ContentPanel cp = new ContentPanel();
cp.setHeading("Personnes travaillant sur les collections");
cp.setFrame(true);
cp.setIconStyle("icon-table");
cp.setLayout(new FitLayout());
ToolBar toolBar = new ToolBar();
toolBar.add(new TextToolItem("Ajouter", "icon-add"));
toolBar.add(new SeparatorToolItem());
toolBar.add(new TextToolItem("Supprimer", "icon-delete"));
cp.setTopComponent(toolBar);
 
ListStore<Personne> store = new ListStore<Personne>();
store.add(personnes);
 
ColumnModel cm = new ColumnModel(configs);
EditorGrid<Personne> grid = new EditorGrid<Personne>(store, cm);
grid.setBorders(true);
grid.setSelectionModel(sm);
grid.addPlugin(sm);
//grid.setAutoExpandColumn("nom");
grid.addPlugin(checkColumn);
grid.setHeight(400);
cp.add(grid);
return cp;
}
public void rafraichir(Object nouvelleDonnees) {
if (nouvelleDonnees instanceof ValeurListe) {
ValeurListe listeValeurs = (ValeurListe) nouvelleDonnees;