Line 3... |
Line 3... |
3 |
import java.util.ArrayList;
|
3 |
import java.util.ArrayList;
|
4 |
import java.util.List;
|
4 |
import java.util.List;
|
Line 5... |
Line 5... |
5 |
|
5 |
|
6 |
import org.tela_botanica.client.Mediateur;
|
6 |
import org.tela_botanica.client.Mediateur;
|
- |
|
7 |
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
|
7 |
import org.tela_botanica.client.composants.ChampComboBoxMultiSelect;
|
8 |
import org.tela_botanica.client.composants.ChampComboBoxRechercheTempsReelPaginable;
|
- |
|
9 |
import org.tela_botanica.client.composants.InfoLogger;
|
- |
|
10 |
import org.tela_botanica.client.composants.pagination.ProxyCommentaires;
|
8 |
import org.tela_botanica.client.composants.InfoLogger;
|
11 |
import org.tela_botanica.client.composants.pagination.ProxyPublications;
|
9 |
import org.tela_botanica.client.images.Images;
|
12 |
import org.tela_botanica.client.images.Images;
|
10 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
13 |
import org.tela_botanica.client.interfaces.Rafraichissable;
|
11 |
import org.tela_botanica.client.modeles.Information;
|
14 |
import org.tela_botanica.client.modeles.Information;
|
12 |
import org.tela_botanica.client.modeles.Valeur;
|
15 |
import org.tela_botanica.client.modeles.Valeur;
|
Line 15... |
Line 18... |
15 |
import org.tela_botanica.client.modeles.collection.Collection;
|
18 |
import org.tela_botanica.client.modeles.collection.Collection;
|
16 |
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
|
19 |
import org.tela_botanica.client.modeles.collection.CollectionACommentaire;
|
17 |
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
|
20 |
import org.tela_botanica.client.modeles.collection.CollectionACommentaireListe;
|
18 |
import org.tela_botanica.client.modeles.commentaire.Commentaire;
|
21 |
import org.tela_botanica.client.modeles.commentaire.Commentaire;
|
19 |
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
|
22 |
import org.tela_botanica.client.modeles.commentaire.CommentaireListe;
|
- |
|
23 |
import org.tela_botanica.client.modeles.publication.Publication;
|
20 |
import org.tela_botanica.client.synchronisation.Sequenceur;
|
24 |
import org.tela_botanica.client.synchronisation.Sequenceur;
|
21 |
import org.tela_botanica.client.util.Debug;
|
25 |
import org.tela_botanica.client.util.Debug;
|
22 |
import org.tela_botanica.client.vues.FenetreForm;
|
26 |
import org.tela_botanica.client.vues.FenetreForm;
|
23 |
import org.tela_botanica.client.vues.Formulaire;
|
27 |
import org.tela_botanica.client.vues.Formulaire;
|
24 |
import org.tela_botanica.client.vues.FormulaireBarreValidation;
|
28 |
import org.tela_botanica.client.vues.FormulaireBarreValidation;
|
25 |
import org.tela_botanica.client.vues.FormulaireOnglet;
|
29 |
import org.tela_botanica.client.vues.FormulaireOnglet;
|
26 |
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
|
30 |
import org.tela_botanica.client.vues.commentaire.CommentaireForm;
|
Line 27... |
Line 31... |
27 |
|
31 |
|
- |
|
32 |
import com.extjs.gxt.ui.client.Style.SortDir;
|
- |
|
33 |
import com.extjs.gxt.ui.client.data.ModelData;
|
28 |
import com.extjs.gxt.ui.client.Style.SortDir;
|
34 |
import com.extjs.gxt.ui.client.data.ModelType;
|
29 |
import com.extjs.gxt.ui.client.event.BaseEvent;
|
35 |
import com.extjs.gxt.ui.client.event.BaseEvent;
|
30 |
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
36 |
import com.extjs.gxt.ui.client.event.ButtonEvent;
|
31 |
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
37 |
import com.extjs.gxt.ui.client.event.ComponentEvent;
|
32 |
import com.extjs.gxt.ui.client.event.Events;
|
38 |
import com.extjs.gxt.ui.client.event.Events;
|
Line 40... |
Line 46... |
40 |
import com.extjs.gxt.ui.client.widget.Info;
|
46 |
import com.extjs.gxt.ui.client.widget.Info;
|
41 |
import com.extjs.gxt.ui.client.widget.Text;
|
47 |
import com.extjs.gxt.ui.client.widget.Text;
|
42 |
import com.extjs.gxt.ui.client.widget.button.Button;
|
48 |
import com.extjs.gxt.ui.client.widget.button.Button;
|
43 |
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
|
49 |
import com.extjs.gxt.ui.client.widget.button.ButtonBar;
|
44 |
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
50 |
import com.extjs.gxt.ui.client.widget.form.ComboBox;
|
- |
|
51 |
import com.extjs.gxt.ui.client.widget.form.Field;
|
45 |
import com.extjs.gxt.ui.client.widget.form.FormPanel;
|
52 |
import com.extjs.gxt.ui.client.widget.form.FormPanel;
|
- |
|
53 |
import com.extjs.gxt.ui.client.widget.form.Validator;
|
46 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
54 |
import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction;
|
47 |
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
|
55 |
import com.extjs.gxt.ui.client.widget.grid.CellEditor;
|
48 |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
56 |
import com.extjs.gxt.ui.client.widget.grid.ColumnConfig;
|
49 |
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
|
57 |
import com.extjs.gxt.ui.client.widget.grid.ColumnData;
|
50 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
58 |
import com.extjs.gxt.ui.client.widget.grid.ColumnModel;
|
Line 70... |
Line 78... |
70 |
private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
|
78 |
private ChampComboBoxMultiSelect<Valeur> typeCombo = null;
|
Line 71... |
Line 79... |
71 |
|
79 |
|
72 |
private CollectionACommentaireListe commentairesAjoutes = null;
|
80 |
private CollectionACommentaireListe commentairesAjoutes = null;
|
73 |
private CollectionACommentaireListe commentairesModifies = null;
|
81 |
private CollectionACommentaireListe commentairesModifies = null;
|
74 |
private CollectionACommentaireListe commentairesSupprimes = null;
|
82 |
private CollectionACommentaireListe commentairesSupprimes = null;
|
75 |
private ComboBox<Commentaire> commentairesSaisisComboBox = null;
|
83 |
private ChampComboBoxRechercheTempsReelPaginable commentairesSaisisComboBox = null;
|
76 |
private Button commentairesBoutonSupprimer = null;
|
84 |
private Button commentairesBoutonSupprimer = null;
|
Line 77... |
Line 85... |
77 |
private Button commentairesBoutonModifier = null;
|
85 |
private Button commentairesBoutonModifier = null;
|
78 |
|
86 |
|
Line 271... |
Line 279... |
271 |
}
|
279 |
}
|
272 |
});
|
280 |
});
|
273 |
return bouton;
|
281 |
return bouton;
|
274 |
}
|
282 |
}
|
Line 275... |
Line 283... |
275 |
|
283 |
|
- |
|
284 |
private ChampComboBoxRechercheTempsReelPaginable creerComboBoxCommentairesSaisies() {
|
- |
|
285 |
|
276 |
private ComboBox<Commentaire> creerComboBoxCommentairesSaisies() {
|
286 |
ModelType modelTypeCommentaires = new ModelType();
|
- |
|
287 |
modelTypeCommentaires.setRoot("commentaires");
|
277 |
ListStore<Commentaire> commentairesSaisiesStore = new ListStore<Commentaire>();
|
288 |
modelTypeCommentaires.setTotalName("nbElements");
|
- |
|
289 |
modelTypeCommentaires.addField("ccm_id_commentaire");
|
- |
|
290 |
modelTypeCommentaires.addField("ccm_ce_pere");
|
- |
|
291 |
modelTypeCommentaires.addField("ccm_ce_projet");
|
- |
|
292 |
modelTypeCommentaires.addField("ccm_titre");
|
- |
|
293 |
modelTypeCommentaires.addField("ccm_texte");
|
- |
|
294 |
modelTypeCommentaires.addField("ccm_ponderation");
|
278 |
commentairesSaisiesStore.add(new ArrayList<Commentaire>());
|
295 |
modelTypeCommentaires.addField("ccm_mark_public");
|
279 |
|
296 |
|
280 |
ComboBox<Commentaire> comboBox = new ComboBox<Commentaire>();
|
297 |
String displayNameCommentaires = "ccm_titre";
|
- |
|
298 |
ProxyCommentaires<ModelData> proxyCommentaires = new ProxyCommentaires<ModelData>(null);
|
- |
|
299 |
|
281 |
comboBox.setWidth(200);
|
300 |
final ChampComboBoxRechercheTempsReelPaginable commentairesCombo = new ChampComboBoxRechercheTempsReelPaginable(proxyCommentaires, modelTypeCommentaires, displayNameCommentaires);
|
282 |
comboBox.setEmptyText(i18nC.chercherCommentaireSaisi());
|
301 |
commentairesCombo.getCombo().setTabIndex(tabIndex++);
|
- |
|
302 |
commentairesCombo.getCombo().setForceSelection(true);
|
283 |
comboBox.setTriggerAction(TriggerAction.ALL);
|
303 |
|
284 |
comboBox.setEditable(true);
|
304 |
commentairesCombo.getCombo().setValidator(new Validator() {
|
285 |
comboBox.setDisplayField("titre");
|
305 |
public String validate(Field<?> field, String value) {
|
286 |
comboBox.setStore(commentairesSaisiesStore);
|
306 |
String retour = null;
|
287 |
comboBox.addKeyListener(new KeyListener() {
|
307 |
if (field.getRawValue().equals("")) {
|
288 |
public void componentKeyUp(ComponentEvent ce) {
|
308 |
field.setValue(null);
|
- |
|
309 |
} else if (commentairesCombo.getStore().findModel("ccm_titre", field.getRawValue()) == null) {
|
289 |
if (commentairesSaisisComboBox.getRawValue() != null && commentairesSaisisComboBox.getRawValue().length() > 0) {
|
310 |
String contenuBrut = field.getRawValue();
|
- |
|
311 |
field.setValue(null);
|
290 |
if (!ce.isNavKeyPress()) {
|
312 |
field.setRawValue(contenuBrut);
|
291 |
obtenirCommentairesSaisis(commentairesSaisisComboBox.getRawValue());
|
- |
|
292 |
}
|
313 |
retour = "Veuillez sélectionner une valeur ou laisser le champ vide";
|
- |
|
314 |
}
|
293 |
}
|
315 |
return retour;
|
294 |
}
|
316 |
}
|
- |
|
317 |
});
|
295 |
});
|
318 |
|
296 |
comboBox.addListener(Events.Select, new Listener<BaseEvent>() {
|
319 |
commentairesCombo.getCombo().addListener(Events.Select, new Listener<BaseEvent>() {
|
297 |
public void handleEvent(BaseEvent be) {
|
320 |
public void handleEvent(BaseEvent be) {
|
298 |
if (commentairesSaisisComboBox.getValue() instanceof Commentaire) {
|
321 |
if (commentairesSaisisComboBox.getValeur() instanceof ModelData) {
|
299 |
Commentaire commentaireSaisiSelectionnee = commentairesSaisisComboBox.getValue();
|
322 |
Commentaire commentaireSaisiSelectionnee = new Commentaire(commentairesSaisisComboBox.getValeur());
|
300 |
ajouterDansGrille(commentaireSaisiSelectionnee);
|
323 |
ajouterDansGrille(commentaireSaisiSelectionnee);
|
301 |
commentairesSaisisComboBox.setValue(null);
|
324 |
commentairesSaisisComboBox.getCombo().setValue(null);
|
302 |
}
|
325 |
}
|
303 |
}
|
326 |
}
|
- |
|
327 |
});
|
304 |
});
|
328 |
|
305 |
return comboBox;
|
329 |
return commentairesCombo;
|
Line 306... |
Line 330... |
306 |
}
|
330 |
}
|
307 |
|
331 |
|
308 |
private void ajouterDansGrille(Commentaire commentaire) {
|
332 |
private void ajouterDansGrille(Commentaire commentaire) {
|
Line 471... |
Line 495... |
471 |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
|
495 |
ValeurListe listeValeurs = (ValeurListe) nouvellesDonnees;
|
472 |
rafraichirValeurListe(listeValeurs);
|
496 |
rafraichirValeurListe(listeValeurs);
|
473 |
} else if (nouvellesDonnees instanceof Information) {
|
497 |
} else if (nouvellesDonnees instanceof Information) {
|
474 |
Information info = (Information) nouvellesDonnees;
|
498 |
Information info = (Information) nouvellesDonnees;
|
475 |
rafraichirInformation(info);
|
499 |
rafraichirInformation(info);
|
476 |
} else if (nouvellesDonnees instanceof CommentaireListe) {
|
- |
|
477 |
CommentaireListe listeCommentaires = (CommentaireListe) nouvellesDonnees;
|
- |
|
478 |
rafraichirCommentairesListe(listeCommentaires);
|
- |
|
479 |
} else {
|
500 |
} else {
|
480 |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
|
501 |
GWT.log(Mediateur.i18nM.erreurRafraichir(nouvellesDonnees.getClass(), this.getClass()), null);
|
481 |
}
|
502 |
}
|
Line 482... |
Line 503... |
482 |
|
503 |
|
Line 545... |
Line 566... |
545 |
InfoLogger.display("Ajout des notes liées à la collection", info.toString());
|
566 |
InfoLogger.display("Ajout des notes liées à la collection", info.toString());
|
546 |
initialiserGestionCommentaires();
|
567 |
initialiserGestionCommentaires();
|
547 |
}
|
568 |
}
|
548 |
}
|
569 |
}
|
Line 549... |
Line -... |
549 |
|
- |
|
550 |
private void rafraichirCommentairesListe(CommentaireListe listeCommentaires) {
|
- |
|
551 |
commentairesSaisisComboBox.getStore().removeAll();
|
- |
|
552 |
commentairesSaisisComboBox.getStore().add(listeCommentaires.toList());
|
- |
|
553 |
commentairesSaisisComboBox.expand();
|
- |
|
554 |
}
|
- |
|
555 |
|
570 |
|
556 |
public void peupler() {
|
571 |
public void peupler() {
|
557 |
grille.getStore().removeAll();
|
572 |
grille.getStore().removeAll();
|
558 |
grille.getStore().add(collection.getCommentairesLiees().toList());
|
573 |
grille.getStore().add(collection.getCommentairesLiees().toList());
|
559 |
grille.recalculate();
|
574 |
grille.recalculate();
|
Line 598... |
Line 613... |
598 |
mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
|
613 |
mediateur.supprimerCollectionACommentaire(this, commentairesSupprimes);
|
599 |
}
|
614 |
}
|
600 |
}
|
615 |
}
|
601 |
}
|
616 |
}
|
Line 602... |
Line -... |
602 |
|
- |
|
603 |
private void obtenirCommentairesSaisis(String titre) {
|
- |
|
604 |
mediateur.selectionnerCommentaireParTitre(this, titre+"%", null);
|
- |
|
605 |
}
|
- |
|
606 |
|
617 |
|
607 |
private void actualiserGrille() {
|
618 |
private void actualiserGrille() {
|
608 |
if (mode.equals(Formulaire.MODE_MODIFIER)) {
|
619 |
if (mode.equals(Formulaire.MODE_MODIFIER)) {
|
609 |
mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null);
|
620 |
mediateur.selectionnerCollectionACommentaire(this, collection.getId(), null);
|
610 |
} else {
|
621 |
} else {
|