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:20] – [2.1- Implémentation du code] 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 113: Ligne 116:
  });  });
 </sxh> </sxh>
-==== -- Définition du binding ==== 
  
 +<sxh java;title:Bouton Afficher>
 + btnAfficher.addSelectionListener(new SelectionAdapter() {
 + @Override
 + public void widgetSelected(SelectionEvent e) {
 + lblUtilisateur.setText(user.toString());
 + }
 + });
 +</sxh>
 +==== -- Définition du binding ====
 +<html><div class="todo">Ajouter les bindings suivants :</div></html>
 {{:slam4:gui:utilisateurbinding.png}} {{:slam4:gui:utilisateurbinding.png}}
  
Ligne 133: Ligne 145:
  }  }
 </sxh> </sxh>
 +
 +
 +<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.1364430001.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)