Les classes utiles
Comme indiqué dans la section properties,
si on veut charger ou sauvegarder des données de la table il faut
créer une classe qui ensuite est declaré dans le fichier
avec la directive suivante :
Classe.Chargement=tableloader.MemberLoader
Cette classe doit hériter de ITableInOut, les fonctions
save et load recoivent un paramètre ATable _control.
Ce paramètre permet d'agir avec la table afin de récuperer
des données ou d'en ajouter. L'exemple suivant corespond au fichier
properties étudié dans la section properties.
Classe de chargement/sauvegarde :
/****************************************************
* auteur : Noël Perez *
* date : 21 septembre 2002 *
* fichier : MembreLoader.java *
****************************************************/
package tableloader;
import perenono.pac.easytable.ITableInOut;
import perenono.pac.easytable.ATable;
import noyau.structure.JNClass;
import noyau.structure.JNClassMembre;
/**
* <br>
* s'occupe de charger les valeurs des parametres d'une methode dans la table
*
* @author Noël Perez
*/
public class MembreLoader implements ITableInOut
{
//----------------------------------------------------------------------------
/**
* Constructeur par défaut de la classe MembreLoader
*
* @author Noël Perez
*/
//----------------------------------------------------------------------------
public MembreLoader(){}
//----------------------------------------------------------------------------
/**
* Methode permettant de decharger les données utiles contenues dans _o dans la table
*
* @param _control conteneur des données affichées
* @param _o donnée à charger ( dans ce cas, cela doit être une instance de "JNClass" )
* @author Noël Perez
*/
//----------------------------------------------------------------------------
public void load(ATable _control, Object _o)
{
//on commence par s'assurer que l'objet _o est du type voulu
if(_o !=null && _o instanceof JNClass)
{
//je recupere les objets à charger JNClassMembre[] membresTemp = (JNClassMembre[])((JNClass)_o).getMembres();
int size = membresTemp.length;
//pour chaque objet je crée une ligne dans la table
for(int i=0; i<size;i++)
{
String[] temp = new String[4];
temp[0] = membresTemp[i].getPortee();
temp[1] = membresTemp[i].getType();
temp[2] = membresTemp[i].getNom();
temp[3] = membresTemp[i].getComment();
//j'ajoute la ligne à la table
_control.addValue(temp);
}
}
else if(_o!=null) System.out.println("ce n'est pas un JNClass "+_o);
}
//----------------------------------------------------------------------------
/**
* Methode permettant de récuperer les données de la table
*
* @param _control conteneur des données affichées
* @return un tableau à deux dimensions contenant
* les noms des paramètres ainsi que les commentaires et type associés
* @author Noël Perez
*/
//----------------------------------------------------------------------------
public Object[] save(ATable _control)
{
//je recupere le nombre de ligne de la table
int size = _control.getSize();
//je crée des tableaux du type des objets que je veux en sortie
JNClassMembre[] param = new JNClassMembre[size];
//je parcours les lignes de la table
for(int i=0;i<size;i++)
{
//je recupere les valeurs de la ligne i
String[] temp = _control.getValue(i);
//je crée l'objet
param[i] = new JNClassMembre(temp[0],temp[1],temp[2],temp[3]);
}
return param;
}
}
|