All pastes #496600 Raw Edit

oldclient

public java v1 · immutable
·published 2007-05-19 10:18 UTC
rendered paste body
package gui;import gui.PersonGui.ContentsInitialiser;import java.awt.Color;import java.awt.Cursor;import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Vector;import javax.swing.Box;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import client.ClientInterface.UnableToConnectToHostException;import actors.Person;/** * @class GuiClient * @author Dirk, PJ  */public class GuiClient {	PersonGui gui;		/**	 * Default constructor.	 * initialiseert een PersonGui aan de hand van een OnderwijsCommissie als actor	 */	public GuiClient(){			gui = new PersonGui(new Person());		gui.drawApplication(new LoginScreen());	}		private void determineType ( String type ) throws Exception{		if ( type.equals("student") ){			gui = new StudentGui(gui.getActor(), gui.geefApplication());		}		else if ( type.equals("studiebegeleider") ){			gui = new StudieBegeleiderGui(gui.getActor(), gui.geefApplication());							}		else if ( type.equals("systeembeheerder") ){			gui = new SysteemBeheerderGui(gui.getActor(), gui.geefApplication());		}		else if ( type.equals("professor") ){			gui = new ProfGui(gui.getActor(), gui.geefApplication());		}		else if ( type.equals("secretariaat") ){			gui = new SecretariaatGui(gui.getActor(), gui.geefApplication());		}		else if (type.equals("onderwijscommissie")) {			gui = new OCGui(gui.getActor(), gui.geefApplication());		}		else{			throw new Exception("U hebt geen rechten om in te loggen.");		}		}		/**	 * @class LoginActionListener	 * De klasse LoginActionListener is een action-listener die gebruikt wordt voor	 * het login-gebeuren te controleren.	 * @author Dirk, Tony	 */	private class LoginActionListener implements ActionListener{		private JTextField user;		private JPasswordField pass;				/**		 * Constructor met initialisatie-waarden		 * @param username -> Het text-field waaruit de gebruikersnaam gelezen kan worden		 * @param password -> Het password-field waaruit het password gelezen kan worden		 */		public LoginActionListener(JTextField username,JPasswordField password){			this.user = username;			this.pass = password;		}				/**		 * Method die uitgevoerd wordt wanneer er een actie optreedt (enter, button-klik)		 * Deze methode is verplicht aangezien het een abstracte methode is in ActionListener		 * @param event -> Het event dat gebeurt.		 */		public void actionPerformed(ActionEvent event){			try{				//if ( user.getText().length() > 0 && new String(pass.getPassword()).length() > 0 ){					//gui.getActor().logIn(user.getText(),new String(pass.getPassword()));					//if (gui.getActor().getConnection()!= null ){						//Vector<String> persoon = gui.getActor().getConnection().getClearances();						//bepaal persoon						Vector<String> persoon = new Vector<String>();						persoon.add("student");//deze lijn maakt dus alles hardcoded een studnet, zie boven						persoon.add("secretariaat");						persoon.add("systeembeheerder");						persoon.add("onderwijscommissie");						persoon.add("professor");						persoon.add("studiebegeleider");												if ( persoon.size() > 1 ){							//laat de persoon kiezen uit functies							gui.setContentsFrame(new PickType(persoon), "");						}						else if ( persoon.size() == 1 ){							determineType ( persoon.get(0) );						}						else{							throw new Exception("U hebt geen rechten om in te loggen.");						}						/*}								else{												throw new Exception("Er is een fout bij het opzetten van de connectie.");					}				}				else{					throw new Exception("Gelieve een login en paswoord in te vullen.");				}*/			}			catch(RuntimeException ex){				gui.getActor().closeConnection();				gui.createWarningPopup("Fout", "Er is een fout op getreden met volgende boodschap:\n" + ex.getMessage());			}			catch(Throwable ex){				gui.getActor().closeConnection();				gui.createWarningPopup("Fout", "Er is een fout op getreden met volgende boodschap:\n" + ex.getMessage());			}		}	}		/**	 * De klass loginscreen implementeert de interface ContentsInitialiser	 * Het creëert een login-scherm op het doel-paneel.	 * @author Dirk, Tony, Pieter-Jan	 */	protected class LoginScreen implements ContentsInitialiser{					// deze methode wordt opgeroepen wanneer het target gezet moet worden om te tekenen.		public void init(JPanel target,String errorMessage){			// Zet de layout op GridBagLayout			target.setLayout(new GridBagLayout());			// Via de GridBagConstraints kunnen vele parameters voor componenten gezet worden (zie Java API)			GridBagConstraints cons = new GridBagConstraints();			cons.fill = GridBagConstraints.NONE;						//top label al dan niet met error msg			JLabel tempLabel;			cons.gridwidth = 5;			cons.gridx = 0;			cons.gridy = 0;				if(!errorMessage.equals("")){				// Er is een errormessage die getoond moet worden, Deze wordt bovenaan in het rood getoond				tempLabel = new JLabel(errorMessage);				tempLabel.setForeground(Color.red);							}			else{				tempLabel = new JLabel();			}			target.add(tempLabel,cons);			cons.gridwidth = 1;						//de velden moeten hier worden gezet want we hebben ze nodig vooor de action listeners			JTextField username = new JTextField(12);			JPasswordField password = new JPasswordField(12);						//loginnaam lbl						cons.gridx = 1;			cons.gridy = 1;			cons.anchor = GridBagConstraints.LAST_LINE_END;			tempLabel = new JLabel("Gebruikersnaam: ");			tempLabel.setForeground(Color.black);			target.add(tempLabel,cons);						//login input veld									cons.gridx = 3;			cons.gridy = 1;			cons.anchor = GridBagConstraints.FIRST_LINE_END;			username.setCursor(new Cursor(Cursor.TEXT_CURSOR));			username.setEditable(true);			username.setBackground(Color.black);			username.setForeground(Color.white);			username.setName("Log in");			target.add(username,cons);						cons.gridx = 2;			cons.gridy = 1;			target.add(Box.createRigidArea(new Dimension(5, 10)),cons);						//maak een spatie tussen de login en paswd			cons.gridwidth = 5;			cons.gridx = 0;			cons.gridy = 2;			target.add(Box.createRigidArea(new Dimension(10, 10)),cons);			cons.gridwidth = 1;						// label voor het wachtwoord wordt gezet			cons.gridx = 1;			cons.gridy = 3;			cons.anchor = GridBagConstraints.LAST_LINE_START;			tempLabel = new JLabel("Wachtwoord : ");			tempLabel.setForeground(Color.black);			target.add(tempLabel,cons);						cons.gridx = 2;			cons.gridy = 3;			target.add(Box.createRigidArea(new Dimension(5, 10)),cons);							// input-veld voor het wachtwoord wordt gezet			cons.gridx = 3;			cons.gridy = 3;			cons.anchor = GridBagConstraints.FIRST_LINE_START;			password.setCursor(new Cursor(Cursor.TEXT_CURSOR));			password.setEditable(true);			password.setBackground(Color.black);			password.setForeground(Color.white);			password.setName("Log in");			target.add(password,cons);						//maak een spatie tussen de login knop en paswoord			cons.gridwidth = 5;			cons.gridx = 0;			cons.gridy = 4;			target.add(Box.createRigidArea(new Dimension(10, 10)),cons);									// Er wordt een button toegevoegd			cons.gridwidth = 3;			cons.gridx = 1;			cons.gridy = 5;			cons.anchor = GridBagConstraints.CENTER;			JButton login = gui.createButton("Log in",new LoginActionListener(username,password));			login.setBackground(Color.black);			login.setForeground(Color.white);			login.setEnabled(true);			target.add(login,cons);						tempLabel = new JLabel();			cons.gridwidth = 5;			cons.gridx = 0;			cons.gridy = 6;			target.add(tempLabel,cons);			}	}		/**	 * @class PickTypeActionListener 	 * De klasse  PickTypeActionListener  is een action-listener die gebruikt wordt voor	 * de functie te selecteren.	 * @author Pieter-Jan	 */	private class PickTypeActionListener implements ActionListener{		private JComboBox functionlist;				public PickTypeActionListener( JComboBox functionlist ){			this.functionlist = functionlist;		}				public void actionPerformed(ActionEvent arg0) {			try{				String result = (String)functionlist.getSelectedItem();				if ( result != null ){					determineType ( result );				}				else{					throw new Exception("U hebt geen rechten om in te loggen.");				}			}			catch(Throwable ex){				gui.getActor().closeConnection();				ex.printStackTrace();				gui.createWarningPopup( "Fout", "Er is een fout op getreden met volgende boodschap:\n" + ex.getMessage() );			}		}			}		/**	 * De klass PickType implementeert de interface ContentsInitialiser	 * Het creëert een drop down box zodat de gebruiker zijn fucntie kan kiezen.	 * @author Pieter-Jan	 */	protected class PickType implements ContentsInitialiser{		Vector<String> functies;						public PickType( Vector<String> functies ) {			this.functies = functies;					}				public void init(JPanel target,String errorMessage){			// Zet de layout op GridBagLayout			target.setLayout(new GridBagLayout());			// Via de GridBagConstraints kunnen vele parameters voor componenten gezet worden (zie Java API)			GridBagConstraints cons = new GridBagConstraints();			cons.fill = GridBagConstraints.NONE;						//top label			JLabel tempLabel;			cons.gridwidth = 3;			cons.gridx = 0;			cons.gridy = 0;				tempLabel = new JLabel("Kies de functie waarmee u wil inloggen:");			tempLabel.setBackground(Color.black);			tempLabel.setForeground(Color.white);			target.add(tempLabel,cons);						//drop down box			cons.gridwidth = 1;			cons.gridx = 1;			cons.gridy = 1;				cons.weightx = 0.5;			JComboBox functionlist = new JComboBox(functies.toArray());			functionlist.setBackground(Color.black);			functionlist.setForeground(Color.white);			functionlist.setSelectedIndex(1);						target.add(functionlist,cons);			//knop			cons.gridwidth = 1;			cons.gridx = 1;			cons.gridy = 2;					JButton confirm = gui.createButton("OK",new PickTypeActionListener( functionlist ));			target.add(confirm,cons);						//top label			cons.gridwidth = 3;			cons.gridx = 0;			cons.gridy = 0;				tempLabel = new JLabel();			target.add(tempLabel,cons);		}	}	/**	 * Deze methode is verplicht om af te leiden (abstracte methode in parent-class).	 * Hierin kun je het menu van de applicatie zetten door behulp van de protected	 * methode addMenuItem, die een string meekrijgt, welke het label is dat op de 	 * menu-button zal komen, en een ContentsInitialiser.	 * Een ContentsInitialiser is een protected interface van de parent-klasse, en	 * moet minstens 1 methode bevatten, namelijk init, die een JPanel meekrijgt en	 * een eventuele foutcode. De ContentsInitialiser initialiseert alle elementen	 * die op het panel zullen moeten komen. Het Panel in kwestie is het inhouds-	 * veld van de applicatie.	 */	public void initMenuItems() {		//niks	}	}