slam4:gui:jfacebinding

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
slam4:gui:jfacebinding [2013/03/28 01:21] – [2.2- Définition du binding] jcheronslam4:gui:jfacebinding [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1
Ligne 9: Ligne 9:
  
 <sxh java;title:net.model.AbstractModel> <sxh java;title:net.model.AbstractModel>
-public abstract class AbstractModelObject {+public abstract class AbstractModel {
  private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(  private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(
  this);  this);
Ligne 46: Ligne 46:
   * Appeler **firePropertyChange** sur la modification de ses membres   * Appeler **firePropertyChange** sur la modification de ses membres
 <sxh java;title:net.model.Utilisateur> <sxh java;title:net.model.Utilisateur>
-public class Utilisateur extends AbstractModelObject {+public class Utilisateur extends AbstractModel {
  private String nom;  private String nom;
  private int age;  private int age;
Ligne 98: Ligne 98:
  
 ===== -- Création d'une vue ===== ===== -- Création d'une vue =====
-Créer la classe FormUtilisateur, à partir de l'assistant **SWT/window Application**+ 
 +<html><div class="todo"><ul><li>Créer la classe <b>FormUtilisateur</b>, à partir de l'assistant <b>SWT/window Application</b></li> 
 +<li>Ajouter le membre <b>Utilisateur user</b></li> 
 +<li>Instancier le dans le constructeur</b></li> 
 +</ul></div></html>
  
 {{:slam4:gui:formutilisateurs.png|}} {{:slam4:gui:formutilisateurs.png|}}
- 
 ==== -- Implémentation du code ==== ==== -- Implémentation du code ====
 +<html><div class="todo">Implémenter les méthodes suivantes, puis tester l'interface</div></html>
 <sxh java;title:Bouton Créer par défaut> <sxh java;title:Bouton Créer par défaut>
  btnNewButton.addSelectionListener(new SelectionAdapter() {  btnNewButton.addSelectionListener(new SelectionAdapter() {
Ligne 123: Ligne 126:
 </sxh> </sxh>
 ==== -- Définition du binding ==== ==== -- Définition du binding ====
 +<html><div class="todo">Ajouter les bindings suivants :</div></html>
 {{:slam4:gui:utilisateurbinding.png}} {{:slam4:gui:utilisateurbinding.png}}
  
Ligne 144: Ligne 147:
  
  
-Tester l'interface créée et son comportement.+<html><div class="todo">Tester l'interface créée et son comportement</div></html> 
 + 
 +===== -- Binding sur listes d'objets ===== 
 + 
 +==== -- création du model ==== 
 + 
 +<html><div class="todo">Implémenter le model Utilisateurs, permettant de gérer une liste d'instances d'Utilisateur :</div></html> 
 + 
 +<sxh java;title:net.model.Utilisateurs> 
 +public class Utilisateurs extends AbstractModel { 
 + private final List<Utilisateur> items = new ArrayList<>(); 
 + 
 + public void add(Utilisateur utilisateur) { 
 + items.add(utilisateur); 
 + firePropertyChange("items", null, items); 
 +
 + 
 + public void remove(Utilisateur utilisateur) { 
 + items.remove(utilisateur); 
 + firePropertyChange("items", null, items); 
 +
 + 
 + /** 
 + * @return the items 
 + */ 
 + public List<Utilisateur> getItems() { 
 + return items; 
 +
 +
 +</sxh> 
 + 
 +==== -- Modification de la vue ==== 
 +<html><div class="todo"><ul><li>Ajouter à la vue les widgets manquants</li> 
 +<li>Ajouter le membre <b>Utilisateurs users</b></li> 
 +<li>Instancier le dans le constructeur</b></li> 
 +</ul></div></html> 
 + 
 +{{:slam4:gui:formutilisateurs2.png}} 
 + 
 +==== -- Implémentation du comportement ==== 
 +<html><div class="todo">Implémenter les méthodes suivantes, puis tester l'interface</div></html> 
 +<sxh java;title:Bouton Ajouter> 
 + btnAjouter.addSelectionListener(new SelectionAdapter() { 
 + @Override 
 + public void widgetSelected(SelectionEvent e) { 
 + users.add(new Utilisateur(textName.getText(), spinnerAge.getSelection())); 
 +
 + }); 
 +</sxh> 
 + 
 +<sxh java;title:Bouton Supprimer> 
 + btnSupprimer.addSelectionListener(new SelectionAdapter() { 
 + @Override 
 + public void widgetSelected(SelectionEvent e) { 
 + IStructuredSelection selection = (IStructuredSelection) listViewer.getSelection(); 
 + if (selection != null) 
 + for (Iterator it = selection.iterator(); it.hasNext();) { 
 + Utilisateur aUser = (Utilisateur) it.next(); 
 + users.remove(aUser); 
 +
 +
 + }); 
 +</sxh> 
 +==== -- Ajout du binding ==== 
 +<html><div class="todo">Ajouter les bindings suivants :</div></html> 
 +{{:slam4:gui:bindinglist.png}} 
 + 
 +<html><div class="todo">Tester l'interface</div></html>
  
  
  • slam4/gui/jfacebinding.1364430114.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)