Class
As show in the properties section,
if you want save or load data you must be create a class and declare
this in the file as this :
Classe.Chargement=tableloader.MemberLoader
This class must extend ITableInOut, the save and
load function receive the parameter ATable _control.
The parameter allow to add or get a line of the table. The next
example is the class associated to the file in the properties
section.
Class to load/save :
/****************************************************
* 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;
}
}
|