[queryviewer-devel] queryviewer/src/net/sourceforge/queryviewer/ui/event AbstractControler.java,NONE
Status: Alpha
Brought to you by:
avdyk
|
From: <av...@us...> - 2003-06-16 07:46:18
|
Update of /cvsroot/queryviewer/queryviewer/src/net/sourceforge/queryviewer/ui/event
In directory sc8-pr-cvs1:/tmp/cvs-serv12467
Added Files:
AbstractControler.java CloseControler.java
ControlerFactory.java OpenControler.java QueryActions.java
QueryControler.java QuitControler.java
Log Message:
ajout des controleurs
--- NEW FILE: AbstractControler.java ---
package net.sourceforge.queryviewer.ui.event;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import net.sourceforge.queryviewer.Query;
import net.sourceforge.queryviewer.ui.ViewInfo;
/**
* Classe mère de tous les contrôles du QueryViewer.
* Pour que les sous-classe fonctionnent correctement, il va mettre à jour le Map tel que:
* <ul>
* <li><b>NAME</b> la clé pour stocker le nom de l'action (utilisé pour menu ou bouton).</li>
* <li><b>SHORT_DESCRIPTION</b> la clé pour stocker une description courte de l'action.
* C'est utilisé pour les texte 'tooltip'.</li>
* <li><b>LONG_DESCRIPTION</b> la clé pour stocker une description plus longue.
* Cela peut être utilisé pour l'aide contextuelle.</li>
* <li><b>SMALL_ICON</b> la clé pour stocker une petite icône (toolbar).</li>
* <li><b>ACTION_COMMAND_KEY</b> la clé pour déterminer la chaîne de commande pour l'{@link java.awt.event.ActionEvent}
* qui sera créée quand l'action aura lieu et qu'elle notifiera
* en tant que résultat d'une clé associée avec un JComponent.</li>
* <li><b>ACCELERATOR_KEY</b> la clé pour stocker l'association de touches utilisée comme raccourci
* pour lancer une action.</li>
* </ul>
*
* Created: Fri Jun 13 14:27:09 2003
*
* @author <a href="mailto:arn...@ul...">Arnaud Vandyck</a>
* @version $Id: AbstractControler.java,v 1.1 2003/06/16 07:46:14 avdyk Exp $
*/
public class AbstractControler extends AbstractAction {
protected Query query;
protected ViewInfo viewInfo;
public AbstractControler(Query query) {
super();
this.query = query;
} // AbstractControler constructor
/**
* Get the Query value.
* @return the Query value.
*/
public Query getQuery() {
return this.query;
}
/**
* Set the Query value.
* @param newQuery The new Query value.
*/
public void setQuery(Query newQuery) {
super.firePropertyChange( "Query", this.query, newQuery );
this.query = newQuery;
}
/**
* Get the ViewInfo value.
* @return the ViewInfo value.
*/
public ViewInfo getViewInfo() {
return this.viewInfo;
}
/**
* Set the ViewInfo value.
* @param newViewInfo The new ViewInfo value.
*/
public void setViewInfo(ViewInfo newViewInfo) {
super.firePropertyChange( "ViewInfo", this.viewInfo, newViewInfo );
this.viewInfo = newViewInfo;
}
/**
* Méthode héritée de {@link java.awt.event.ActionListener}.
*
* @param action l'action qui vient d'avoir lieu
*/
public void actionPerformed(ActionEvent action);
} // AbstractControler
--- NEW FILE: CloseControler.java ---
package net.sourceforge.queryviewer.ui.event;
import java.awt.Event;
import java.awt.event.ActionEvent;
import javax.swing.Action;
import javax.swing.KeyStroke;
import net.sourceforge.queryviewer.Connection;
import net.sourceforge.queryviewer.Query;
/**
* Action de fermer une connexion.
*
*
* Created: Sat Jun 14 15:46:42 2003
*
* @author <a href="mailto:arn...@ul...">Arnaud Vandyck</a>
* @version $Id: CloseControler.java,v 1.1 2003/06/16 07:46:14 avdyk Exp $
*/
public class CloseControler extends AbstractControler {
/**
* Création d'une action fermeture de connexion.
*
* @param query l'objet requête que l'on va fermer.
*/
public CloseControler(Query query) {
super(query);
super.putValue( Action.NAME, "Fermer la connexion" );
super.putValue( Action.SHORT_DESCRIPTION, "Fermeture de la connexion à la source de données" );
super.putValue( Action.LONG_DESCRIPTION, "Choisissez cette option pour clôturer\n"
+ "la connexion à la source de données" );
//super.putValue( Action.SMALL_ICON, );
super.putValue( Action.ACTION_COMMAND_KEY, KeyStroke.getKeyStroke( new Character( 'w' ), Event.CTRL_MASK ) );
super.putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( new Character( 'w' ), Event.CTRL_MASK ) );
} // CloseConnection constructor
public void actionPerformed(ActionEvent action) {
Connection connection = super.query.getConnection();
try {
connection.close();
super.query.setConnection(null);
} catch(QueryException qe) {
// passer l'exception à la vue?
}
}
} // CloseControler
--- NEW FILE: ControlerFactory.java ---
package net.sourceforge.queryviewer.ui.event;
import java.util.Map;
import java.util.HashMap;
import javax.swing.Action;
import net.sourceforge.queryviewer.Query;
/**
* Fabricateur de contrôles. Cette classe va générer une requête et donner vie aux contrôleurs
* qui vont réagir aux événements des utilisateurs. Chaque contrôleur va étendre {@link javax.swing.Action}
* même si les sous-classe n'implémentent pas toutes les méthodes. Les vues appelleront la méthode {@link getAction(String,ViewInfo)}
* qui leur renverra une instance {@link javax.swing.Action} prette à l'emploi en fonction de l'action qui doit être gérée par cette vue.
* toutes les actions possible sont définies sous forme de constantes dans l'interface {@link QueryActions}.
*
* Created: Fri Jun 13 09:12:32 2003
*
* @author <a href="mailto:arn...@ul...">Arnaud Vandyck</a>
* @version $Id: ControlerFactory.java,v 1.1 2003/06/16 07:46:14 avdyk Exp $
* @since 0.2
*/
public class ControlerFactory {
/** Ouvrir une connexion */
public static final String OPEN_CONNECTION = "openconnection";
/** Fermer une connexion */
public static final String CLOSE_CONNECTION = "closeconnection";
/** Quitter le programme */
public static final String QUIT = "quit";
/** Exécuter une requête */
public static final String EXECUTE_QUERY = "executequery";
protected Map actions;
/** Constructeur par défaut.
* Construction de l'objet {@link Query} qui sera connu de tous les controleurs.
* Construction de tous les contrôleurs.
*/
public ControlerFactory() {
Query q = new Query();
this.actions = new HasMap();
this.actions.put( ControlerFactory.OPEN_CONNECTION, new OpenConnectionControler( q ) );
this.actions.put( ControlerFactory.CLOSE_CONNECTION, new CloseConnectionControler( q ) );
this.actions.put( ControlerFactory.QUIT, new QuitControler( q ) );
this.actions.put( ControlerFactory.EXECUTE_QUERY, new QueryControler( q ) );
} // ControlerFactory constructor
/**
* Retourne un contrôleur en n'oubliant pas de lui fournir la vue pour qu'il puisse l'interroger.
* @param action une représentation du contrôleur que l'on désire
* @param viewInfo la vue qui pourra fournir les entrées de l'utilisateur.
* @return le contrôleur.
*/
public Action getAction( String action, ViewInfo viewInfo ) {
AbstractControler controler = (AbstractControler) this.actions.get( action );
controler.setViewInfo( viewInfo );
return (Action)controler;
}
} // ControlerFactory
--- NEW FILE: OpenControler.java ---
package net.sourceforge.queryviewer.ui.event;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.util.Map;
import javax.swing.Action;
import javax.swing.KeyStroke;
import net.sourceforge.queryviewer.Connection;
import net.sourceforge.queryviewer.JDBCConnectionImpl;
import net.sourceforge.queryviewer.Query;
import net.sourceforge.queryviewer.ui.ViewInfo;
import net.sourceforge.queryviewer.ui.event.QueryActions;
/**
* Action d'ouvrir une connexion.
*
*
* Created: Sat Jun 14 15:46:42 2003
*
* @author <a href="mailto:arn...@ul...">Arnaud Vandyck</a>
* @version $Id: OpenControler.java,v 1.1 2003/06/16 07:46:14 avdyk Exp $
*/
public class OpenControler extends AbstractControler {
/**
* Création d'une action fermeture de connexion.
*
* @param query l'objet requête que l'on va ouvrir.
*/
public OpenControler(Query query) {
super(query);
super.putValue( Action.NAME, "Ouvrir la connexion" );
super.putValue( Action.SHORT_DESCRIPTION, "Ouverture de la connexion à la source de données" );
super.putValue( Action.LONG_DESCRIPTION, "Choisissez cette option pour ouvrir\n"
+ "la connexion à la source de données" );
//super.putValue( Action.SMALL_ICON, );
super.putValue( Action.ACTION_COMMAND_KEY, KeyStroke.getKeyStroke( new Character( 'o' ), Event.CTRL_MASK ) );
super.putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( new Character( 'o' ), Event.CTRL_MASK ) );
} // CloseConnection constructor
public void actionPerformed(ActionEvent action) {
try {
// pour l'instant, on ne peut ouvrir qu'une JDBCConnectionImpl
// récupérer les informations de la vue
if( super.getViewInfo()!=null ) {
ViewInfo vi = super.getViewInfo();
Map map = vi.getuserInputs();
String driver = map.get( QueryActions.TF_JDBC_DRIVER );
String url = map.get( QueryActions.TF_JDBC_URL );
String username = map.get( QueryActions.TF_JDBC_USERNAME );
String password = map.get( QueryActions.TF_JDBC_PASSWORD );
Connection connection = new JDBCConnectionImpl( driver,
url,
username,
password );
super.query.setConnection( connection );
} catch(QueryException qe) {
// passer l'exception à la vue?
}
}
} // OpenControler
--- NEW FILE: QueryActions.java ---
package net.sourceforge.queryviewer.ui.event;
/**
* QueryActions.java
*
*
* Created: Sat Jun 14 16:51:27 2003
*
* @author <a href="mailto:arn...@ul...">Arnaud Vandyck</a>
* @version $Id: QueryActions.java,v 1.1 2003/06/16 07:46:14 avdyk Exp $
*/
public interface QueryActions {
public static final String TF_JDBC_DRIVER ="tfjdbcdriver";
public static final String TF_JDBC_URL ="tfjdbcurl";
public static final String TF_JDBC_USERNAME ="tfjdbcusername";
public static final String TF_JDBC_PASSWORD ="tfjdbcpassword";
public static final String TF_QUERY_STRING ="tfquerystring";
}// QueryActions
--- NEW FILE: QueryControler.java ---
package net.sourceforge.queryviewer.ui.event;
import java.awt.Event;
import java.awt.event.ActionEvent;
import javax.swing.Action;
import javax.swing.KeyStroke;
import net.sourceforge.queryviewer.Connection;
import net.sourceforge.queryviewer.Query;
/**
* Action d'exécuter une requête.
*
*
* Created: Sat Jun 14 15:46:42 2003
*
* @author <a href="mailto:arn...@ul...">Arnaud Vandyck</a>
* @version $Id: QueryControler.java,v 1.1 2003/06/16 07:46:14 avdyk Exp $
*/
public class QueryControler extends AbstractControler {
/**
* Création d'une action d'exécution d'une requête.
*
* @param query l'objet requête que l'on va fermer.
*/
public QueryControler(Query query) {
super(query);
super.putValue( Action.NAME, "Exécuter une requête" );
super.putValue( Action.SHORT_DESCRIPTION, "Exécution d'une requête sur la source de données" );
super.putValue( Action.LONG_DESCRIPTION, "Choisissez cette option pour exécuter\n"
+ "une requête sur la source de données" );
//super.putValue( Action.SMALL_ICON, );
super.putValue( Action.ACTION_COMMAND_KEY, KeyStroke.getKeyStroke( new Character( 'e' ), Event.CTRL_MASK ) );
super.putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( new Character( 'e' ), Event.CTRL_MASK ) );
} // CloseConnection constructor
public void actionPerformed(ActionEvent action) {
try {
// récupérer les informations de la vue
if( super.getViewInfo()!=null ) {
ViewInfo vi = super.getViewInfo();
Map map = vi.getuserInputs();
String queryString = map.get( QueryActions.TF_QUERY_STRING );
super.query.setQuery( queryString );
// et automatiquement, la requête est effectuée ;-)
}
} catch(QueryException qe) {
// passer l'exception à la vue?
}
}
} // QueryControler
--- NEW FILE: QuitControler.java ---
package net.sourceforge.queryviewer.ui.event;
import java.awt.Event;
import java.awt.event.ActionEvent;
import java.util.Map;
import javax.swing.Action;
import javax.swing.KeyStroke;
import net.sourceforge.queryviewer.Connection;
import net.sourceforge.queryviewer.JDBCConnectionImpl;
import net.sourceforge.queryviewer.Query;
import net.sourceforge.queryviewer.ui.ViewInfo;
import net.sourceforge.queryviewer.ui.event.QueryActions;
/**
* Action de fermer l'application.
*
*
* Created: Sat Jun 14 15:46:42 2003
*
* @author <a href="mailto:arn...@ul...">Arnaud Vandyck</a>
* @version $Id: QuitControler.java,v 1.1 2003/06/16 07:46:14 avdyk Exp $
*/
public class QuitControler extends AbstractControler {
/**
* Création d'une action fermeture de connexion.
*
* @param query l'objet requête que l'on va ouvrir.
*/
public QuitControler(Query query) {
super(query);
super.putValue( Action.NAME, "Quitter" );
super.putValue( Action.SHORT_DESCRIPTION, "Quitter le programme" );
super.putValue( Action.LONG_DESCRIPTION, "Quitter le programme" );
//super.putValue( Action.SMALL_ICON, );
super.putValue( Action.ACTION_COMMAND_KEY, KeyStroke.getKeyStroke( new Character( 'q' ), Event.CTRL_MASK ) );
super.putValue( Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke( new Character( 'q' ), Event.CTRL_MASK ) );
} // CloseConnection constructor
public void actionPerformed(ActionEvent action) {
// il faudrait peut-être gentillement appeler
// l'action de fermeture de connexion
System.exit( 0 );
}
} // QuitControler
|