appli.sqlplayer.util
Class Mediator

java.lang.Object
  extended byappli.sqlplayer.util.Mediator

public class Mediator
extends java.lang.Object

Title:

Description: Mediateur suivant le "mediator pattern" pour gerer la communication entre les composants d'une interface

Copyright: Copyright (c) 2003

Company:

Version:
1.0 July 2003 (SJ)
Author:
Sylvaine Jaehn

Field Summary
private  AppProperties appProperties
           
private  javax.swing.JTree catTree
           
private  CComboBox cbDatabase
           
private  javax.swing.JCheckBox chbExecTime
           
private  javax.swing.JCheckBox chbNbRows
           
private  javax.swing.JCheckBox chbSQLCmd
           
private  javax.swing.JCheckBox chbSQLCmdDescr
           
private static Chrono chrono
           
private  Sqlcmd curSqlcmd
           
private  Database database
           
private  java.awt.Frame mainFrame
           
private static Mediator mediator
           
private  int nbRows
           
private  CFontDefinitionPanel pFont
           
private  javax.swing.JRadioButton rbTable
           
private  javax.swing.JRadioButton rbTree
           
private  javax.swing.JTable resTable
           
private  javax.swing.tree.DefaultMutableTreeNode root
           
private  java.lang.String sqlcmdExecuted
           
private  SqlCommands sqlCommands
           
private  javax.swing.JTable sqlTable
           
private  javax.swing.JTable sqlTable2
           
private  CTabbedPane tabbedPane
           
 
Constructor Summary
private Mediator()
          Constructor.
 
Method Summary
 void addSons(java.util.ArrayList listCat, java.lang.String father, javax.swing.tree.DefaultMutableTreeNode node)
          Ajout des categories (noeuds fils) d'un arbre
 void calcColumnWidths(javax.swing.JTable table)
          Calcul de la taille ideale pour les colonnes d'une table.
 void clearResultTable(javax.swing.JTable table)
          Effacement des donnees d'une JTable dont le contenu repose sur un modele ResultSet
 void clearTable(javax.swing.JTable table)
          Effacement des donnees d'une JTable dont le contenu repose sur un modele
 void displayPartResultTable(javax.swing.JTable table, java.sql.ResultSet rs, int beg, int end)
          Affichage d'une partie des resultats dans une JTable
 void displayResultTable(javax.swing.JTable table, java.sql.ResultSet rs)
          Affichage de la totalite des resultats dans une JTable
 void displayResultText(javax.swing.JTextArea txtArea, DisplayResultFormat drf, int nbToDisplay, java.lang.Object resQuery)
          Affichage des resultats de la commande SQL au format texte dans une zone de texte
 void displayResultText(javax.swing.JTextArea txtArea, DisplayResultFormat drf, java.lang.Object resQuery)
          Affichage des resultats de la commande SQL au format texte dans une zone de texte
 void displayTable(javax.swing.JTable table, SqlCommands sqlcommands)
          Affichage de la liste des commandes sous forme d'une table
 void displayTree(SqlCommands sqlcommands)
          Creation of the category tree
 void executeAndDisplay()
          Execution de la commande SQL courante et affichage du resultat
 java.lang.Object executeCommand(java.lang.String cmdSQL)
          Execution d'une commande SQL
 AppProperties getAppProperties()
          Get application properties
 javax.swing.JCheckBox getChbExecTime()
           
 javax.swing.JCheckBox getChbNbRows()
           
 javax.swing.JCheckBox getChbSQLCmd()
           
 javax.swing.JCheckBox getChbSQLCmdDescr()
           
 Chrono getChrono()
          get the stop watch
 Sqlcmd getCurSqlcmd()
           
 Database getDatabase()
           
 java.awt.Frame getMainFrame()
          Get the main frame
static Mediator getMediator()
          Acquire the (unique) mediator.
 int getNbRows()
           
 CFontDefinitionPanel getPFont()
           
private  int getPreferredRowHeight(javax.swing.JTable table, int rowIndex, int margin)
          Calcule la hauteur ideale pour une table et une ligne donnees.
 javax.swing.JRadioButton getRbTable()
          Get the command table display Radio button
 javax.swing.JRadioButton getRbTree()
          Get the SQL command tree display Radio button
 javax.swing.JTable getResTable()
           
 javax.swing.tree.DefaultMutableTreeNode getRoot()
           
 java.lang.String getSqlcmdExecuted()
           
 SqlCommands getSqlCommands()
           
 javax.swing.JTable getSqlTable()
           
 javax.swing.JTable getSQLTable2()
           
 CTabbedPane getTabbedPane()
          Get TabbedPane
 java.util.ArrayList getValueList(java.lang.String sqlRequest)
          Queries the database with the submitted command.
 void packRows(javax.swing.JTable table, int margin)
          La hauteur de chaque ligne de la table est positionnee en fonction de la hauteur ideale de la plus haute cellule dans cette ligne.
 void packRows(javax.swing.JTable table, int start, int end, int margin)
          Pour chaque ligne de l'intervalle specifie par start et end, la hauteur est positionnee en fonction de la hauteur ideale de la plus haute cellule dans cette ligne.
 void registerAppProperties(AppProperties appProperties)
          Register application properties
 void registerCatTree(javax.swing.JTree catTree)
           
 void registerCbDatabase(CComboBox cbDatabase)
           
 void registerChbExecTime(javax.swing.JCheckBox chbExecTime)
          Register execution time display checkbox
 void registerChbNbRows(javax.swing.JCheckBox chbNbRows)
          Register row number display checkbox
 void registerChbSQLCmd(javax.swing.JCheckBox chbSQLCmd)
          Register SQL Command display checkbox
 void registerChbSQLCmdDescr(javax.swing.JCheckBox chbSQLCmdDescr)
          Register SQL Command description checkbox
 void registerDatabase(Database database)
           
 void registerJTable(javax.swing.JTable table)
           
 void registerMainFrame(java.awt.Frame fr)
          Register the application main frame
 void registerNbRows(int nbrows)
          Register number of rows to display simultaneously
 void registerPFont(CFontDefinitionPanel pfont)
          Register font definition panel
 void registerRbTable(javax.swing.JRadioButton rbTable)
          Register SQL command table display Radio button
 void registerRbTree(javax.swing.JRadioButton rbTree)
          Register SQL command tree display Radio button
 void registerResTable(javax.swing.JTable resTable)
           
 void registerRoot(javax.swing.tree.DefaultMutableTreeNode root)
           
 void registerSqlCommands(SqlCommands sqlCommands)
           
 void registerSqlTable2(javax.swing.JTable sqlTable2)
           
 void registerTabbedPane(CTabbedPane tabbedPane)
          Register the main tabbed pane
 void setCurSqlcmd(Sqlcmd curSqlcmd)
           
 void setDatabase(Database database)
           
 void setSqlcmdExecuted(java.lang.String sqlcmdExecuted)
           
 void setSqlCommands(SqlCommands sqlCommands)
           
 void writeResultText(java.io.OutputStream output, DisplayResultFormat drf, java.lang.Object resQuery)
          Affichage des resultats de la commande SQL au format texte dans une sortie outputstream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mediator

private static Mediator mediator

mainFrame

private java.awt.Frame mainFrame

appProperties

private AppProperties appProperties

chrono

private static Chrono chrono

rbTable

private javax.swing.JRadioButton rbTable

rbTree

private javax.swing.JRadioButton rbTree

chbSQLCmdDescr

private javax.swing.JCheckBox chbSQLCmdDescr

chbSQLCmd

private javax.swing.JCheckBox chbSQLCmd

chbExecTime

private javax.swing.JCheckBox chbExecTime

chbNbRows

private javax.swing.JCheckBox chbNbRows

pFont

private CFontDefinitionPanel pFont

nbRows

private int nbRows

tabbedPane

private CTabbedPane tabbedPane

sqlTable

private javax.swing.JTable sqlTable

sqlTable2

private javax.swing.JTable sqlTable2

resTable

private javax.swing.JTable resTable

cbDatabase

private CComboBox cbDatabase

catTree

private javax.swing.JTree catTree

root

private javax.swing.tree.DefaultMutableTreeNode root

database

private Database database

sqlCommands

private SqlCommands sqlCommands

curSqlcmd

private Sqlcmd curSqlcmd

sqlcmdExecuted

private java.lang.String sqlcmdExecuted
Constructor Detail

Mediator

private Mediator()
Constructor. Private: it is automatically created when first requested. The way to acquire (and eventually create) the mediator is
Mediator med = Mediator.getMediator();

Method Detail

getMediator

public static Mediator getMediator()
Acquire the (unique) mediator. If it does not yet exist, the first call creates it

Returns:
the application mediator object

registerAppProperties

public void registerAppProperties(AppProperties appProperties)
Register application properties

Parameters:
appProperties - application properties

getAppProperties

public AppProperties getAppProperties()
Get application properties

Returns:
application properties

registerMainFrame

public void registerMainFrame(java.awt.Frame fr)
Register the application main frame

Parameters:
fr - frame

getMainFrame

public java.awt.Frame getMainFrame()
Get the main frame

Returns:
the application main frame object

getChrono

public Chrono getChrono()
get the stop watch

Returns:
the stop watch object (class Chrono)

registerTabbedPane

public void registerTabbedPane(CTabbedPane tabbedPane)
Register the main tabbed pane

Parameters:
tabbedPane - general tabbed pane, containing all the tabs

getTabbedPane

public CTabbedPane getTabbedPane()
Get TabbedPane

Returns:
the general tabbed pane

registerRbTable

public void registerRbTable(javax.swing.JRadioButton rbTable)
Register SQL command table display Radio button

Parameters:
rbTable - radio button

getRbTable

public javax.swing.JRadioButton getRbTable()
Get the command table display Radio button

Returns:
rbTable radio button

registerRbTree

public void registerRbTree(javax.swing.JRadioButton rbTree)
Register SQL command tree display Radio button

Parameters:
rbTree - radio button

getRbTree

public javax.swing.JRadioButton getRbTree()
Get the SQL command tree display Radio button

Returns:
rbTree radi button

registerChbSQLCmdDescr

public void registerChbSQLCmdDescr(javax.swing.JCheckBox chbSQLCmdDescr)
Register SQL Command description checkbox

Parameters:
chbSQLCmdDescr - SQL Command description checkbox

getChbSQLCmdDescr

public javax.swing.JCheckBox getChbSQLCmdDescr()

registerChbSQLCmd

public void registerChbSQLCmd(javax.swing.JCheckBox chbSQLCmd)
Register SQL Command display checkbox

Parameters:
chbSQLCmd - SQL Command display checkbox

getChbSQLCmd

public javax.swing.JCheckBox getChbSQLCmd()

registerChbExecTime

public void registerChbExecTime(javax.swing.JCheckBox chbExecTime)
Register execution time display checkbox

Parameters:
chbExecTime - execution time display checkbox

getChbExecTime

public javax.swing.JCheckBox getChbExecTime()

registerChbNbRows

public void registerChbNbRows(javax.swing.JCheckBox chbNbRows)
Register row number display checkbox

Parameters:
chbNbRows - row number display checkbox

getChbNbRows

public javax.swing.JCheckBox getChbNbRows()

registerPFont

public void registerPFont(CFontDefinitionPanel pfont)
Register font definition panel

Parameters:
pfont - font definition panel

getPFont

public CFontDefinitionPanel getPFont()

registerNbRows

public void registerNbRows(int nbrows)
Register number of rows to display simultaneously

Parameters:
nbrows - number of rows to display simultaneously

getNbRows

public int getNbRows()

registerCbDatabase

public void registerCbDatabase(CComboBox cbDatabase)

registerJTable

public void registerJTable(javax.swing.JTable table)

registerCatTree

public void registerCatTree(javax.swing.JTree catTree)

registerSqlTable2

public void registerSqlTable2(javax.swing.JTable sqlTable2)

registerRoot

public void registerRoot(javax.swing.tree.DefaultMutableTreeNode root)

registerDatabase

public void registerDatabase(Database database)

registerSqlCommands

public void registerSqlCommands(SqlCommands sqlCommands)

registerResTable

public void registerResTable(javax.swing.JTable resTable)

getDatabase

public Database getDatabase()

getSqlCommands

public SqlCommands getSqlCommands()

getSqlTable

public javax.swing.JTable getSqlTable()

getSQLTable2

public javax.swing.JTable getSQLTable2()

getRoot

public javax.swing.tree.DefaultMutableTreeNode getRoot()

getCurSqlcmd

public Sqlcmd getCurSqlcmd()

getResTable

public javax.swing.JTable getResTable()

getSqlcmdExecuted

public java.lang.String getSqlcmdExecuted()

setSqlCommands

public void setSqlCommands(SqlCommands sqlCommands)

setDatabase

public void setDatabase(Database database)

setCurSqlcmd

public void setCurSqlcmd(Sqlcmd curSqlcmd)

setSqlcmdExecuted

public void setSqlcmdExecuted(java.lang.String sqlcmdExecuted)

displayTable

public void displayTable(javax.swing.JTable table,
                         SqlCommands sqlcommands)
Affichage de la liste des commandes sous forme d'une table

Parameters:
table - table dans laquelle sont affichees les commandes
sqlcommands - commandes SQL a afficher

clearTable

public void clearTable(javax.swing.JTable table)
Effacement des donnees d'une JTable dont le contenu repose sur un modele

Parameters:
table - JTable dont on veut effacer les donnees

clearResultTable

public void clearResultTable(javax.swing.JTable table)
Effacement des donnees d'une JTable dont le contenu repose sur un modele ResultSet

Parameters:
table - JTable dont on veut effacer les donnees

displayTree

public void displayTree(SqlCommands sqlcommands)
Creation of the category tree

Parameters:
sqlcommands - SqlCommands object used to display the tree

addSons

public void addSons(java.util.ArrayList listCat,
                    java.lang.String father,
                    javax.swing.tree.DefaultMutableTreeNode node)
Ajout des categories (noeuds fils) d'un arbre

Parameters:
listCat - liste des categories
father - chemin du noeud pere auquel sont rattaches les noeuds fils
node - noeud pere

executeCommand

public java.lang.Object executeCommand(java.lang.String cmdSQL)
Execution d'une commande SQL

Parameters:
cmdSQL - commande SQL a executer
Returns:
object contenant le resultat de la commande

displayResultText

public void displayResultText(javax.swing.JTextArea txtArea,
                              DisplayResultFormat drf,
                              java.lang.Object resQuery)
Affichage des resultats de la commande SQL au format texte dans une zone de texte

Parameters:
txtArea - zone de texte dans laquelle est effectue l'affichage
drf - strategie d'affichage
resQuery - objet a afficher

displayResultText

public void displayResultText(javax.swing.JTextArea txtArea,
                              DisplayResultFormat drf,
                              int nbToDisplay,
                              java.lang.Object resQuery)
Affichage des resultats de la commande SQL au format texte dans une zone de texte

Parameters:
txtArea - zone de texte dans laquelle est effectue l'affichage
drf - display mode
nbToDisplay - number of objects to display
resQuery - result set to display

displayResultTable

public void displayResultTable(javax.swing.JTable table,
                               java.sql.ResultSet rs)
Affichage de la totalite des resultats dans une JTable

Parameters:
table - JTable dans laquelle sont affiches les resultats

displayPartResultTable

public void displayPartResultTable(javax.swing.JTable table,
                                   java.sql.ResultSet rs,
                                   int beg,
                                   int end)
Affichage d'une partie des resultats dans une JTable

Parameters:
table - JTable dans laquelle sont affiches les resultats
beg - indice de debut d'affichage
end - indice de fin d'affichage

calcColumnWidths

public void calcColumnWidths(javax.swing.JTable table)
Calcul de la taille ideale pour les colonnes d'une table. (cf http://www.chka.de/swing/table/cell-sizes.html)

Parameters:
table - table dont on veut dimensionner les colonnes

packRows

public void packRows(javax.swing.JTable table,
                     int margin)
La hauteur de chaque ligne de la table est positionnee en fonction de la hauteur ideale de la plus haute cellule dans cette ligne. (cf http://javaalmanac.com/egs/javax.swing.table/RowHeight.html)

Parameters:
table - JTable pour laquelle on veut connaitre la hauteur ideale
margin - marge pour les lignes

packRows

public void packRows(javax.swing.JTable table,
                     int start,
                     int end,
                     int margin)
Pour chaque ligne de l'intervalle specifie par start et end, la hauteur est positionnee en fonction de la hauteur ideale de la plus haute cellule dans cette ligne. (cf http://javaalmanac.com/egs/javax.swing.table/RowHeight.html)

Parameters:
table - JTable pour laquelle on veut connaitre la hauteur ideale
start - indice de la 1ere ligne a traiter
end - indice de la derniere ligne a traiter (non comprise)
margin - marge pour les lignes

getPreferredRowHeight

private int getPreferredRowHeight(javax.swing.JTable table,
                                  int rowIndex,
                                  int margin)
Calcule la hauteur ideale pour une table et une ligne donnees. (cf http://javaalmanac.com/egs/javax.swing.table/RowHeight.html)
L'alignement vertical par defaut est "TOP"

Parameters:
table - JTable pour laquelle on veut connaitre la hauteur ideale
rowIndex - ligne pour laquelle on veut connaitre la hauteur ideale
margin - marge pour la ligne
Returns:
hauteur ideale pour la ligne de la table

writeResultText

public void writeResultText(java.io.OutputStream output,
                            DisplayResultFormat drf,
                            java.lang.Object resQuery)
Affichage des resultats de la commande SQL au format texte dans une sortie outputstream

Parameters:
output - OutputStream for writing
drf - strategie d'affichage
resQuery - objet a afficher

executeAndDisplay

public void executeAndDisplay()
Execution de la commande SQL courante et affichage du resultat


getValueList

public java.util.ArrayList getValueList(java.lang.String sqlRequest)
Queries the database with the submitted command. The result MUST be a list of items returned as a a single list

Parameters:
sqlRequest - SQL command. Its result MUST be a list of single items
Returns:
The arrayList of items