[queryviewer-devel] queryviewer/src/net/sourceforge/queryviewer/ui/swing ConnectionTab.java,1.10,1.1
Status: Alpha
Brought to you by:
avdyk
From: Arnaud V. <av...@us...> - 2004-06-24 09:44:06
|
Update of /cvsroot/queryviewer/queryviewer/src/net/sourceforge/queryviewer/ui/swing In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7441 Modified Files: ConnectionTab.java Log Message: améliorations du layout avec un gridbaglayout Index: ConnectionTab.java =================================================================== RCS file: /cvsroot/queryviewer/queryviewer/src/net/sourceforge/queryviewer/ui/swing/ConnectionTab.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** ConnectionTab.java 5 Nov 2003 15:56:21 -0000 1.10 --- ConnectionTab.java 24 Jun 2004 09:43:55 -0000 1.11 *************** *** 2,138 **** */ package net.sourceforge.queryviewer.ui.swing; - - import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; ! import java.awt.GridLayout; import java.util.HashMap; import java.util.Map; - - import javax.swing.Box; - import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; - import net.sourceforge.queryviewer.ui.ViewInfo; import net.sourceforge.queryviewer.ui.event.AbstractControler; import net.sourceforge.queryviewer.ui.event.ControlerFactory; import net.sourceforge.queryviewer.ui.event.QueryActions; - /** * * @author arnaud <a href="mailto:arn...@ul...">Arnaud Vandyck</a> * @version $Id$ ! */ ! public class ConnectionTab extends JPanel implements ViewInfo { ! ! protected Map userInputs; ! ! /** ! * ! */ ! public ConnectionTab( ControlerFactory controler ) { ! super( new BorderLayout( 1, 1 ) ); ! this.userInputs = new HashMap(); ! super.add( this.getNorth( controler ), BorderLayout.NORTH ); ! super.add( this.getCenter( controler ), BorderLayout.CENTER ); ! ! AbstractControler openConnection = (AbstractControler)controler.getAction( ControlerFactory.OPEN_CONNECTION ); ! openConnection.setViewInfo( this ); ! AbstractControler closeConnection = (AbstractControler)controler.getAction( ControlerFactory.CLOSE_CONNECTION ); ! closeConnection.setViewInfo( this ); ! ! // TODO ! /* ! exemple pour un driver jdbc +------------------------------------------------+ ! | +---------------------------------------+ | ! | | liste des types de connexions \/ | | ! | +---------------------------------------+ | +------------------------------------------------+ | | | | ! | JDBC Driver: ___________________ | ! | URL : ___________________ | ! | Username : ___________________ | ! | Password : ___________________ | ! | | ! | | ! | | ! | | | | +------------------------------------------------+ ! */ ! } ! ! protected Container getNorth( ControlerFactory controler ) { ! JPanel result = new JPanel( new FlowLayout( FlowLayout.CENTER ) ); ! result.add( new JLabel( "JDBC Driver") ); return result; } ! ! protected Container getCenter( ControlerFactory controler ) { //TODO here is a cardLayout! ! return getJDBCPanel( controler ); } ! protected Container getJDBCPanel( ControlerFactory controler ) { ! /* ! JDBC Driver: ___________________ ! URL : ___________________ ! Username : ___________________ ! Password : ___________________ ! */ ! /* ! this.userInputs.put( QueryActions.TF_JDBC_DRIVER, new JTextField( 25 ) ); ! this.userInputs.put( QueryActions.TF_JDBC_URL, new JTextField( 30 ) ); ! this.userInputs.put( QueryActions.TF_JDBC_USERNAME, new JTextField( 20 ) ); ! this.userInputs.put( QueryActions.TF_JDBC_PASSWORD, new JTextField( 20 ) ); ! */ ! this.userInputs.put( QueryActions.TF_JDBC_DRIVER, new JTextField( "org.postgresql.Driver", 25 ) ); ! this.userInputs.put( QueryActions.TF_JDBC_URL, new JTextField( "jdbc:postgresql://vbstefi60.fapse.ulg.ac.be:5432/lcp", 30 ) ); ! this.userInputs.put( QueryActions.TF_JDBC_USERNAME, new JTextField( "lcp", 20 ) ); ! this.userInputs.put( QueryActions.TF_JDBC_PASSWORD, new JTextField( "lcpass", 20 ) ); ! JPanel result = new JPanel( new GridLayout( 1, 1 ) ); ! Container b = new Box( BoxLayout.Y_AXIS ); ! //Container bDriver = new Box( BoxLayout.X_AXIS ); ! Container bDriver = new JPanel(); ! JLabel lDriver = new JLabel( "Pilote JDBC: " ); ! bDriver.add( lDriver ); ! bDriver.add( new JPanel().add( (JTextField)this.userInputs.get( QueryActions.TF_JDBC_DRIVER ) ) ); ! b.add( bDriver ); ! //Container bURL = new Box( BoxLayout.X_AXIS ); ! Container bURL = new JPanel(); ! JLabel lURL = new JLabel( "URL de la base de donnees: " ); ! bURL.add( lURL ); ! bURL.add( (JTextField)this.userInputs.get( QueryActions.TF_JDBC_URL ) ); ! b.add( bURL ); ! //Container bUsername = new Box( BoxLayout.X_AXIS ); ! Container bUsername = new JPanel(); ! JLabel lUsername = new JLabel( "Utilisateur: " ); ! bUsername.add( lUsername ); ! bUsername.add( (JTextField)this.userInputs.get( QueryActions.TF_JDBC_USERNAME ) ); ! b.add( bUsername ); ! //Container bPassword = new Box( BoxLayout.X_AXIS ); ! Container bPassword = new JPanel(); ! JLabel lPassword = new JLabel( "Mot de passe: " ); ! bPassword.add( lPassword ); ! bPassword.add( (JTextField)this.userInputs.get( QueryActions.TF_JDBC_PASSWORD ) ); ! b.add( bPassword ); ! Container bBoutons = new Box( BoxLayout.X_AXIS ); ! JButton oCon = new JButton( controler.getAction( ControlerFactory.OPEN_CONNECTION ) ); ! JButton cCon = new JButton( controler.getAction( ControlerFactory.CLOSE_CONNECTION ) ); ! bBoutons.add( oCon ); ! bBoutons.add( cCon ); ! b.add( bBoutons ); - result.add( b ); return result; } - /** * Retourne le texte qu'il y a dans le composant <b>clé</b>. --- 2,232 ---- */ package net.sourceforge.queryviewer.ui.swing; import java.awt.Container; import java.awt.FlowLayout; ! import java.awt.GridBagConstraints; ! import java.awt.GridBagLayout; ! import java.awt.Insets; import java.util.HashMap; import java.util.Map; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; + import javax.swing.JPasswordField; import javax.swing.JTextField; import net.sourceforge.queryviewer.ui.ViewInfo; import net.sourceforge.queryviewer.ui.event.AbstractControler; import net.sourceforge.queryviewer.ui.event.ControlerFactory; import net.sourceforge.queryviewer.ui.event.QueryActions; /** * * @author arnaud <a href="mailto:arn...@ul...">Arnaud Vandyck</a> * @version $Id$ ! * ! * exemple de ce que donnera la vue ConnectionTab ! * exemple pour un driver jdbc +------------------------------------------------+ ! | | ! | JDBC Driver | ! | | +------------------------------------------------+ | | | | ! | Pilote JDBC : ___________________ | ! | URL BD : ___________________ | ! | Utilisateur : ___________________ | ! | Mot de passe : ___________________ | | | + | ----------------------------------------------- | + | +----------------+ +----------------+ | + | |ouvrir connexion| |fermer connexion| | + | +----------------+ +----------------+ | +------------------------------------------------+ + */ + public class ConnectionTab extends JPanel implements ViewInfo + { + protected Map userInputs; + /** + * Constructeur de la classe + * + * ce constructeur crée le panel connexion + * @param ControlerFactory controler - + */ + public ConnectionTab(ControlerFactory controler) + { + this.userInputs= new HashMap(); + //création du layout principal + GridBagLayout bagLayout = new GridBagLayout(); + this.setLayout(bagLayout); + //création d'un objet qui spécifiera les contraintes des composants + GridBagConstraints constraints = new GridBagConstraints(); + + constraints.gridx=0;//positionne le composant sur l'axe des x + constraints.gridy=0;//positionne le composant sur l'axe des y + constraints.gridheight=1;//définit la heuteur du composant + constraints.gridwidth=4;//définit la largeur du composant + constraints.insets = new Insets(2,2,2,2);//définit l'espace entre le composant et + //ceux qui l'entoure : Insets(haut,gauche,bas,droite) + JPanel result = (JPanel) this.getNorth(controler); + //application des contraintes pour le composant dans ce layout + bagLayout.setConstraints(result,constraints); + //ajout du panel à son panel parent + this.add(result); + + constraints.fill=GridBagConstraints.BOTH;// cette contrainte donne la grandeur maximum + //qu'il peut avoir par rapport aux autres panels + constraints.gridx=0; + constraints.gridy=1; + constraints.gridheight=5; + constraints.gridwidth=4; + constraints.weighty=1; + JPanel center = (JPanel) this.getCenter(controler); + bagLayout.setConstraints(center,constraints); + this.add(center); + + constraints.fill=GridBagConstraints.NONE;// cette contrainte donne la grandeur minimum + //qu'il peut avoir par rapport aux autres panels(c'est la valeur par défaut). + constraints.gridx=2; + constraints.gridy=6; + constraints.gridheight=1; + constraints.gridwidth=2; + constraints.weighty=0; + JPanel panelButton = (JPanel) this.getSouth(controler); + bagLayout.setConstraints(panelButton,constraints); + this.add(panelButton); + + AbstractControler openConnection=(AbstractControler) controler.getAction(ControlerFactory.OPEN_CONNECTION); + openConnection.setViewInfo(this); + AbstractControler closeConnection=(AbstractControler) controler.getAction(ControlerFactory.CLOSE_CONNECTION); + closeConnection.setViewInfo(this); ! } ! /** ! * cette méthode ajoute les boutons 'open connection et 'close connection' et leur panel ! * @param controler ! * @return bBoutons : les boutons et leur JPanel ! */ ! private Container getSouth(ControlerFactory controler) ! { ! JPanel bBoutons = new JPanel(); ! JButton oCon=new JButton(controler.getAction(ControlerFactory.OPEN_CONNECTION)); ! JButton cCon=new JButton(controler.getAction(ControlerFactory.CLOSE_CONNECTION)); ! bBoutons.add(oCon); ! bBoutons.add(cCon); ! return bBoutons; ! } ! ! /** ! * cette méthode ajoute le label 'JDBC Driver' et son panel ! * @param controler ! * @return result le label 'JDBC Driver' ! */ ! protected Container getNorth(ControlerFactory controler) ! { ! JPanel result= new JPanel(new FlowLayout(FlowLayout.CENTER)); ! JLabel labelD = new JLabel("JDBC Driver"); ! result.add(labelD); return result; } ! ! /** ! * cette méthode appel la méthode getJDBCPanel qui créera le panel du centre ! * @param controler ! * @return getJDBCPanel(controler) ! */ ! protected Container getCenter(ControlerFactory controler) ! { //TODO here is a cardLayout! ! return getJDBCPanel(controler); } + + /** + * cette méthode créer le panel du centre avec comme composants: + * - un JLabel et un JTextField pour le pilote + * - un JLabel et un JTextField pour l'url de la bes de données + * - un JLabel et un JTextField pour le nom de l'utilisateur + * - un JLabel et un JPasswordField pour le mot de passe + * @param controler + * @return getJDBCPanel(controler) + */ + protected Container getJDBCPanel(ControlerFactory controler) + { + this.userInputs.put(QueryActions.TF_JDBC_DRIVER,new JTextField("org.postgresql.Driver", 25)); + this.userInputs.put(QueryActions.TF_JDBC_URL,new JTextField("jdbc:postgresql://vbstefi60.fapse.ulg.ac.be:5432/lcp",30)); + this.userInputs.put(QueryActions.TF_JDBC_USERNAME,new JTextField("lcp", 20)); + //le texte lcpass est affiché par des ****** + this.userInputs.put(QueryActions.TF_JDBC_PASSWORD,new JPasswordField("lcpass", 20)); + + JPanel result= new JPanel(); + + GridBagLayout bagLayoutCenter = new GridBagLayout(); + result.setLayout(bagLayoutCenter); + GridBagConstraints constraintsCenter = new GridBagConstraints(); + constraintsCenter.fill=GridBagConstraints.BOTH; + + JLabel lDriver= new JLabel("Pilote JDBC: ",JLabel.RIGHT); //alignement du texte du + //Jlabel à droite + constraintsCenter.gridx=0; + constraintsCenter.gridy=0; + constraintsCenter.gridheight=1; + constraintsCenter.gridwidth=1; + constraintsCenter.insets = new Insets(5,5,5,5); + bagLayoutCenter.setConstraints(lDriver,constraintsCenter); + result.add(lDriver); + + constraintsCenter.gridx=1; + constraintsCenter.gridy=0; + constraintsCenter.gridheight=1; + constraintsCenter.gridwidth=3; + bagLayoutCenter.setConstraints((JTextField) this.userInputs.get(QueryActions.TF_JDBC_DRIVER),constraintsCenter); + result.add((JTextField) this.userInputs.get(QueryActions.TF_JDBC_DRIVER)); ! JLabel lURL= new JLabel("URL de la base de donnees: ",JLabel.RIGHT); ! constraintsCenter.gridx=0; ! constraintsCenter.gridy=1; ! constraintsCenter.gridheight=1; ! constraintsCenter.gridwidth=1; ! bagLayoutCenter.setConstraints(lURL,constraintsCenter); ! result.add(lURL); ! ! constraintsCenter.gridx=1; ! constraintsCenter.gridy=1; ! constraintsCenter.gridheight=1; ! constraintsCenter.gridwidth=3; ! bagLayoutCenter.setConstraints((JTextField) this.userInputs.get(QueryActions.TF_JDBC_URL),constraintsCenter); ! result.add((JTextField) this.userInputs.get(QueryActions.TF_JDBC_URL)); ! ! JLabel lUsername= new JLabel("Utilisateur: ",JLabel.RIGHT); ! constraintsCenter.gridx=0; ! constraintsCenter.gridy=2; ! constraintsCenter.gridheight=1; ! constraintsCenter.gridwidth=1; ! bagLayoutCenter.setConstraints(lUsername,constraintsCenter); ! result.add(lUsername); ! constraintsCenter.gridx=1; ! constraintsCenter.gridy=2; ! constraintsCenter.gridheight=1; ! constraintsCenter.gridwidth=3; ! bagLayoutCenter.setConstraints((JTextField) this.userInputs.get(QueryActions.TF_JDBC_USERNAME),constraintsCenter); ! result.add((JTextField) this.userInputs.get(QueryActions.TF_JDBC_USERNAME)); ! ! JLabel lPassword= new JLabel("Mot de passe: ",JLabel.RIGHT); ! constraintsCenter.gridx=0; ! constraintsCenter.gridy=3; ! constraintsCenter.gridheight=1; ! constraintsCenter.gridwidth=1; ! bagLayoutCenter.setConstraints(lPassword,constraintsCenter); ! result.add(lPassword); ! ! constraintsCenter.gridx=1; ! constraintsCenter.gridy=3; ! constraintsCenter.gridheight=1; ! constraintsCenter.gridwidth=3; ! bagLayoutCenter.setConstraints((JPasswordField) this.userInputs.get(QueryActions.TF_JDBC_PASSWORD),constraintsCenter); ! // JPasswordField remplace les lettres par des étoiles ! result.add((JPasswordField) this.userInputs.get(QueryActions.TF_JDBC_PASSWORD)); return result; } /** * Retourne le texte qu'il y a dans le composant <b>clé</b>. *************** *** 140,152 **** * @return la valeur qu'il y a dans le composant */ ! public String getUserValue(String key) { ! String result = null; ! JTextField jt = (JTextField)this.userInputs.get(key); ! if ( jt != null ) { ! result = jt.getText(); } // end of if () return result; } - /** * Mise à jour des valeurs dans les composants de texte. --- 234,247 ---- * @return la valeur qu'il y a dans le composant */ ! public String getUserValue(String key) ! { ! String result= null; ! JTextField jt= (JTextField) this.userInputs.get(key); ! if (jt != null) ! { ! result= jt.getText(); } // end of if () return result; } /** * Mise à jour des valeurs dans les composants de texte. *************** *** 154,164 **** * @param value la valeur à mettre à jour dans le composant */ ! public void putUserValue(String key, String value) { ! JTextField jt = (JTextField)this.userInputs.get(key); ! if ( jt != null ) { ! jt.setText( value ); } // end of if () - } - } --- 249,259 ---- * @param value la valeur à mettre à jour dans le composant */ ! public void putUserValue(String key, String value) ! { ! JTextField jt= (JTextField) this.userInputs.get(key); ! if (jt != null) ! { ! jt.setText(value); } // end of if () } } |