diff options
| author | Jonathan Bauer | 2014-09-11 15:04:50 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2014-09-11 15:04:50 +0200 |
| commit | e90286005f1cbedc77bfff91f867cb6aec25a595 (patch) | |
| tree | 361faf449e987518ffe33757d64af69539f0ef5c /dozentenmodul/src/main/java/gui/intro/Login_GUI.java | |
| parent | lower case names for folder please (diff) | |
| download | tutor-module-e90286005f1cbedc77bfff91f867cb6aec25a595.tar.gz tutor-module-e90286005f1cbedc77bfff91f867cb6aec25a595.tar.xz tutor-module-e90286005f1cbedc77bfff91f867cb6aec25a595.zip | |
oops
Diffstat (limited to 'dozentenmodul/src/main/java/gui/intro/Login_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/intro/Login_GUI.java | 434 |
1 files changed, 434 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/gui/intro/Login_GUI.java b/dozentenmodul/src/main/java/gui/intro/Login_GUI.java new file mode 100644 index 00000000..b27c7179 --- /dev/null +++ b/dozentenmodul/src/main/java/gui/intro/Login_GUI.java @@ -0,0 +1,434 @@ +package gui.intro; + +import java.awt.Color; +import java.awt.EventQueue; +import java.awt.Image; +import java.awt.SystemColor; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.File; +import java.io.IOException; + +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JPasswordField; +import javax.swing.JTextField; +import javax.swing.SwingConstants; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.border.EmptyBorder; + +import models.SessionData; +import models.person; + +import org.apache.thrift.TException; +import org.ini4j.InvalidFileFormatException; +import org.ini4j.Wini; + +import org.openslx.imagemaster.thrift.iface.ImageServer.Client; +import thrift.MasterThriftConnection; +import thrift.ThriftConnection; +import org.openslx.imagemaster.thrift.iface.UserInfo; +import util.GuiOrganizer; +import config.config_file; +import javax.swing.JCheckBox; + +@SuppressWarnings("serial") +public class Login_GUI extends JFrame { + + private JPanel contentPane; + private JTextField lblusername; + private JPasswordField lblpass; + JLabel lblConnectionInfo = new JLabel(""); + boolean isClientReturnedCorrectly = false; + boolean login; + String masterServerIP = MasterThriftConnection.MASTERSERVERIP; + MasterThriftConnection thrift; + Client client; + String token; + JCheckBox chckbxBenutzernameSpeichern; + + /** + * Launch the application. + */ + public static void main(String[] args) { + EventQueue.invokeLater(new Runnable() { + public void run() { + try { + // Pruefe und Erzeuge gegebenfalls Config + config_file cf = new config_file(); + boolean conf = cf.createConfig(); + if (conf == true) { + // Aufruf und Anzeige des Login Fensters + Login_GUI frame = new Login_GUI(); + frame.setVisible(true); + } else { + JOptionPane.showMessageDialog(null, + "Fehler beim erzeugen der Konfigurationsfile", + "Message", JOptionPane.ERROR_MESSAGE); + } + + } catch (Exception e) { + e.printStackTrace(); + JOptionPane.showMessageDialog(null, e.getStackTrace(), + "Message", JOptionPane.ERROR_MESSAGE); + } + } + }); + } + + /** + * Create the frame. + */ + public Login_GUI() { + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + System.exit(0); + } + }); + + // Fenster darf nicht vergroessert werden + setResizable(false); + + try { + // Setzt das Look and Feel auf System + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (ClassNotFoundException | InstantiationException + | IllegalAccessException | UnsupportedLookAndFeelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // Titel des Fensters setzen + setTitle("bwLehrpool Suite"); + // Aktion die beim Schliessen durchgefuehrt werden soll + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + //Größe setzen und mittig ausrichten + setBounds(0, 0, 603, 400); + GuiOrganizer.centerGUI(this); + + + + // Erzeugen eines Panels + contentPane = new JPanel(); + // Hintergrund Farbe des Panels setzen + contentPane.setBackground(SystemColor.menu); + // Rahmen des Fensters setzen + contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); + setContentPane(contentPane); + // Layout setzen + contentPane.setLayout(null); + // Label fuer das Logo erzeugen + JLabel imgLabel = new JLabel(); + // Groesse und Position des Logos festelegen + imgLabel.setBounds(150, 11, 350, 142); + // Pfadangabe des Logos + + ImageIcon icon = new ImageIcon(getClass().getResource( + "/img/Logo_bwLehrpool.png"), "Logo"); + // Skalierung des Logos + Image scaled = icon.getImage().getScaledInstance(270, 64, 0); + imgLabel.setIcon(new ImageIcon(scaled)); + // Hinzufuegen des Logos in das Fenster + contentPane.add(imgLabel); + + chckbxBenutzernameSpeichern = new JCheckBox("Benutzername speichern"); + chckbxBenutzernameSpeichern.setBounds(292, 222, 237, 23); + contentPane.add(chckbxBenutzernameSpeichern); + + // Erzeugen und Hinzufuegen des Labels + JLabel LabelUser = new JLabel("bwIDM-Benutzername:"); + LabelUser.setBounds(111, 164, 134, 20); + contentPane.add(LabelUser); + + // Erzeugen und Hinzufuegen des Passwortfeldes + lblpass = new JPasswordField(); + lblpass.setToolTipText("Bitte geben Sie Ihr bwIDM-Passwort ein."); + lblpass.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + performLogin(); + } + }); + lblpass.setBounds(292, 195, 237, 20); + contentPane.add(lblpass); + + // Erzeugen und Hinzufuegen des Textfeldes + lblusername = new JTextField(); + lblusername + .setToolTipText("Bitte geben Sie Ihren bwIDM-Benutzernamen ein."); + try { + Wini ini = new Wini( + new File( + "C:\\Users\\" + + System.getProperty("user.name") + + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini")); + if(ini.get("main", "Benutzername").isEmpty()){ + + }else{ + lblusername.setText(ini.get("main", "Benutzername").toString()); + + } + + if(ini.get("main", "Benutzername speichern", Boolean.class)==true){ + chckbxBenutzernameSpeichern.setSelected(true); + + } + } catch (InvalidFileFormatException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } catch (IOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + lblusername.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + performLogin(); + } + }); + lblusername.setBounds(292, 164, 237, 20); + contentPane.add(lblusername); + lblusername.setColumns(10); + + // Erzeugen und Hinzufuegen des Labels + JLabel LabelPass = new JLabel("bwIDM-Passwort:"); + LabelPass.setBounds(111, 195, 134, 20); + contentPane.add(LabelPass); + + lblConnectionInfo.setHorizontalAlignment(SwingConstants.LEFT); + lblConnectionInfo.setBounds(111, 290, 418, 20); + lblConnectionInfo.setEnabled(true); + lblConnectionInfo.setText("Info: Bereit f\u00FCr Login"); + + contentPane.add(lblConnectionInfo); + + // Erzeugen, Hinzufuegen und definierung der Aktion des Buttons + JButton BtnLogin = new JButton("Login"); + BtnLogin.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + + performLogin(); + }// end actionPerformed + }); + + BtnLogin.setBounds(292, 252, 237, 23); + contentPane.add(BtnLogin); + + + + + + + //GuiOrganizer.centerGUI(this); + }// end LoginGUI() + + // Versuche den Benutzer einzuloggen + public void performLogin() { + + login = false; + thrift = new MasterThriftConnection(); + client = thrift.getMasterThriftConnection(); + token = null; + org.openslx.imagemaster.thrift.iface.SessionData result = null; + + try { + + login = true; + String passText = new String(lblpass.getPassword()); + // check if client has received a connection with information or a + // null package + if (checkClientPackage() == true) { + + // package has information + //User-Info + + System.out.println("Authentifiziere - warte auf Masterserver"); + lblConnectionInfo.setForeground(Color.black); + + lblConnectionInfo.setText("Authentifiziere - warte auf Antwort von Server..."); + + result = client.authenticate(lblusername.getText(), passText); + + //User-Info + System.out.println("Authentifizierung erfolgreich"); + lblConnectionInfo.setForeground(Color.green); + lblConnectionInfo.setText("Authentifizierung erfolgreich"); + + //set Information + SessionData.session.setAuthToken(result.authToken); + SessionData.session.setSessionID(result.sessionId); + SessionData.session.setServerAdress(result.serverAddress); + + + //User-Info + lblConnectionInfo.setForeground(Color.black); + lblConnectionInfo.setText("Hole Verbindungsdaten von Server..."); + System.out.println("warte auf Masterserver"); + // set connection to bwLehrpoolSuiteServer + ThriftConnection bwthrift = new ThriftConnection(); + server.Server.Client bwClient = bwthrift.getThriftConnection(); + models.Client.clientcon.setClient(bwClient); + + //User-Info + System.out.println("Client macht weiter"); + System.out.println("Session-ID: " + result.sessionId + + "\nToken: " + result.authToken); + lblConnectionInfo.setForeground(Color.green); + lblConnectionInfo.setText("Daten erhalten."); + + if (login == true) { + //Daten speichern + if (SessionData.session.getAuthToken() == null) { + System.out.println("Token ist null"); + JOptionPane.showMessageDialog(null, + "Error: Token ist null", "Token defekt", + JOptionPane.ERROR_MESSAGE); + } + System.out.println("Arbeite ab jetzt mit Infos aus SessionData."); + UserInfo user = client.getUserFromToken(SessionData.session + .getAuthToken()); + + String hochschule = user.eMail.substring(user.eMail + .indexOf("@") + 1); + + person.verantwortlicher.setUsername(lblusername.getText() + .substring(0, lblusername.getText().indexOf("@"))); + person.verantwortlicher.setName(user.lastName); + person.verantwortlicher.setVorname(user.firstName); + person.verantwortlicher.setEMail(user.eMail); + person.verantwortlicher.setHochschule(hochschule); + + + //Sp�ter �ber result.getRole zum Beispiel die Rolle holen + person.verantwortlicher.setRole("Dozent"); + //person.verantwortlicher.setRole("Admin"); + //person.verantwortlicher.setRole("Student"); + //person.verantwortlicher.setRole("GetToTheChopper!"); + + + try { + // Lege config File an und entscheide welches Fenster + // als naechstes geoeffnet wird + Wini ini = new Wini( + new File( + "C:\\Users\\" + + System.getProperty("user.name") + + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini")); + if(lblusername.getText().equals(ini.get("main","Benutzername",String.class))==true){ + if(chckbxBenutzernameSpeichern.isSelected()){ + ini.put("main", "Benutzername", lblusername.getText()); + ini.put("main", "Benutzername speichern", true); + ini.store(); + } + else{ + ini.put("main", "Benutzername", ""); + ini.put("main", "Benutzername speichern", false); + ini.store(); + } + }else{ + + if(chckbxBenutzernameSpeichern.isSelected()){ + ini.put("main", "Benutzername", lblusername.getText()); + ini.put("main", "Benutzername speichern", true); + ini.put("main", "BillOfRights",false); + ini.put("main", "vmware",false); + ini.store(); + } + else{ + ini.put("main", "Benutzername", ""); + ini.put("main", "Benutzername speichern", false); + ini.put("main", "BillOfRights",false); + ini.put("main", "vmware",false); + ini.store(); + } + } + + // Pruefe ob Bills Of Rights schon akzeptiert wurden, + // wenn + // nicht zeige diese an + if (ini.get("main", "BillOfRights", boolean.class) == false) { + // Erstellen einer Instanz der Aktionsauswahl + BillOfRights_GUI re = new BillOfRights_GUI(); + re.setVisible(true); + // Schliessen des Fensters nach erfolgreichen Login + setVisible(false); + } else { + // Pruefe ob die Links zu vmware angezeigt werden + // sollen + if (ini.get("main", "vmware", boolean.class) == false) { + VmWareLink_GUI vm = new VmWareLink_GUI(); + vm.setVisible(true); + setVisible(false); + } else { + + // oeffne das Hauptmenue + MainMenue_GUI main = new MainMenue_GUI(); + main.setVisible(true); + setVisible(false); + } + } + + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + + } + + } else { + JOptionPane.showMessageDialog(null, "Login denied!", + "Message", JOptionPane.INFORMATION_MESSAGE); + } + + } else { + // package from server is null + login = false; + lblConnectionInfo.setForeground(Color.red); + lblConnectionInfo + .setText("Fehler: Client nicht mit Server verbunden."); + + } + + } catch (org.openslx.imagemaster.thrift.iface.AuthenticationException e) { + lblConnectionInfo.setForeground(Color.red); + lblConnectionInfo + .setText("Fehler: Falscher Benutzername oder Passwort."); + System.out + .println("Authentifizierung fehlgeschlagen: " + e.message); + JOptionPane + .showMessageDialog( + null, + "Benutzeranmeldung fehlgeschlagen: Bitte Benutzername und Passwort \u00fcberpr\u00fcfen.", + "Anmeldung fehlgeschlagen", + JOptionPane.ERROR_MESSAGE); + e.printStackTrace(); + return; + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + + } + }// end performLogin + + public boolean checkClientPackage() { + // check if client is null or has been returned with information + System.out.println("Prüfe Eingangsdaten"); + if (client != null) { + // client contains information + isClientReturnedCorrectly = true; + System.out.println("Verbindungsdaten erhalten"); + } else { + // client has returned with error + isClientReturnedCorrectly = false; + System.out + .println("Fehler: Keine korrekten Verbindungsdaten erhalten."); + } + + return isClientReturnedCorrectly; + }// end checkServerConnection() +}// end class |
