Subversion Repositories eFlore/Applications.coel

Compare Revisions

Ignore whitespace Rev 101 → Rev 102

/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;