package simpleexplorer.model; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import simpleexplorer.Activator; import simpleexplorer.db.DbBean; import simpleexplorer.db.ProcStock; import simpleexplorer.db.Query; /** * Classe Singleton permetant de fournir les objets metiers : * - une collection de TableRow. * - une liste d'entête de colonnes ainsi que leur types * @author idjoumes032409 * */ public class ModelProvider { /*** mon singleton */ //private static ModelProvider content; /*** liste à passer au viewer par la suite */ private List tblRows; /*** */ private DbBean myDbBean; /*** requête */ private Query myQuery; /*** les noms des colonnes*/ private String[] headers; /*** les types des colonnes*/ private String[] types; /** * Constructeur du modele. C'est là que j'ouvre ma connexion, recupère mes données * remplie ma liste et ferme la connexion */ public ModelProvider(Query query) { tblRows = new ArrayList(); myQuery = new Query(query.getName()); TableRow tblRow ; int rowNumber = 0; Object[] dataRow = null; ResultSet rs = null; ResultSetMetaData metaData = null; int colCount = 0; // ouverture de la connexion try { //myDbBean = new DbBean(); // Activator.getDefault().getDbBean(); myDbBean = Activator.getDefault().getDbBeanInstance(); myDbBean.connect(); } catch (Exception e) { e.printStackTrace(); } // on récupère le résulSset try { rs = myDbBean.executeProc(getQuery().getName()); metaData = rs.getMetaData(); colCount = metaData.getColumnCount(); int j = 0; headers = new String[colCount]; types = new String[colCount]; //Remplissage de titles for (j = 0 ; j < colCount ; j++){ headers[j] = metaData.getColumnName(j+1); types[j] = metaData.getColumnTypeName(j+1); } while (rs.next()){ dataRow = new Object[colCount]; for(int i=0; i getTblRows() { return tblRows; } public String[] getHearders() { return headers; } public String[] getTypes() { return types; } public void setQuery(Query query) { myQuery = query; } public Query getQuery() { return myQuery; } }