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