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