package gui;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Map;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import org.apache.thrift.TException;
import models.Image;
import models.person;
import server.Server.Client;
import thrift.ThriftConnection;
//import org.eclipse.wb.swing.FocusTraversalOnArray;
import java.awt.Component;
@SuppressWarnings("serial")
public class EditImageAllgemein_GUI extends JFrame {
private final JPanel contentPanel = new JPanel();
String[] result;
private JTextField Vorname;
private JTextField Nachname;
private JTextField Hochschule;
private JTextField EMail;
private JTextField imagename;
ThriftConnection con=new ThriftConnection();
Client client=con.getThriftConnection();
private JPanel panel_2;
private JLabel lblNewLabel;
private JTextPane txtpnBitteWhlenSie;
private JPanel buttonPane;
private JButton backButton;
private JButton okButton;
/**
* Create the dialog.
*/
public EditImageAllgemein_GUI() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent arg0) {
//Beendet die Anwendung bei einem Klick auf das X
System.exit(0);
}
});
//Verhindert das vergrößern des Fensters
setResizable(false);
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException
| IllegalAccessException | UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//Setzt den Fenstertitel
setTitle("bwLehrpool Suite *Prototyp*");
//Zentriert das Fenster in der Bildmitte
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int top=(screenSize.height - 722) / 2;
int left=(screenSize.width - 603) / 2;
setBounds(left, top, 603, 722);
initData();
getContentPane().setLayout(null);
{
panel_2 = new JPanel();
panel_2.setBackground(SystemColor.menu);
panel_2.setBounds(10, 11, 577, 57);
getContentPane().add(panel_2);
panel_2.setLayout(null);
{
lblNewLabel = new JLabel("Bearbeiten Ihrer Daten");
lblNewLabel.setBounds(10, 11, 509, 22);
panel_2.add(lblNewLabel);
lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
}
txtpnBitteWhlenSie = new JTextPane();
txtpnBitteWhlenSie.setEditable(false);
txtpnBitteWhlenSie.setBackground(SystemColor.menu);
txtpnBitteWhlenSie.setText("Geben Sie hier bitte einen sprechenden Imagename sowie Ihre Kontaktdaten an");
txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
panel_2.add(txtpnBitteWhlenSie);
}
contentPanel.setBounds(10, 85, 577, 493);
contentPanel.setBackground(SystemColor.menu);
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel);
contentPanel.setLayout(null);
JPanel panel_1 = new JPanel();
panel_1.setBackground(SystemColor.menu);
panel_1.setBorder(new TitledBorder(null, "Informationen zum Besitzer", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel_1.setBounds(10, 66, 557, 369);
contentPanel.add(panel_1);
panel_1.setLayout(null);
JLabel label = new JLabel("Vorname: *");
label.setBackground(SystemColor.menu);
label.setBounds(10, 245, 125, 20);
panel_1.add(label);
Vorname = new JTextField();
Vorname.setEditable(false);
Vorname.setEnabled(false);
Vorname.setBackground(Color.WHITE);
Vorname.setText(person.verantwortlicher.getVorname());
Vorname.setColumns(10);
Vorname.setBounds(145, 245, 350, 20);
panel_1.add(Vorname);
JLabel label_7 = new JLabel("Nachname: *");
label_7.setBackground(SystemColor.menu);
label_7.setBounds(10, 276, 125, 20);
panel_1.add(label_7);
Nachname = new JTextField();
Nachname.setEnabled(false);
Nachname.setEditable(false);
Nachname.setBackground(Color.WHITE);
Nachname.setText(person.verantwortlicher.getName());
Nachname.setColumns(10);
Nachname.setBounds(145, 276, 350, 20);
panel_1.add(Nachname);
JLabel label_8 = new JLabel("Hochschule: *");
label_8.setBackground(SystemColor.menu);
label_8.setBounds(10, 307, 125, 20);
panel_1.add(label_8);
Hochschule = new JTextField();
Hochschule.setEnabled(false);
Hochschule.setEditable(false);
Hochschule.setBackground(Color.WHITE);
Hochschule.setText(person.verantwortlicher.getHochschule());
Hochschule.setColumns(10);
Hochschule.setBounds(145, 307, 350, 20);
panel_1.add(Hochschule);
JLabel label_9 = new JLabel("E-Mail: *");
label_9.setBackground(SystemColor.menu);
label_9.setBounds(10, 338, 125, 20);
panel_1.add(label_9);
EMail = new JTextField();
EMail.setEnabled(false);
EMail.setEditable(false);
EMail.setBackground(Color.WHITE);
EMail.setText(person.verantwortlicher.getEMail());
EMail.setColumns(10);
EMail.setBounds(145, 338, 350, 20);
panel_1.add(EMail);
JLabel lblImagename = new JLabel("Imagename: *");
lblImagename.setBackground(SystemColor.menu);
lblImagename.setBounds(10, 31, 125, 20);
panel_1.add(lblImagename);
imagename = new JTextField();
imagename.setToolTipText("Bitte geben Sie hier den Namen des Image ein, z.B. \"Programmieren\".");
imagename.setBackground(Color.WHITE);
imagename.setText(Image.image.getImagename());
imagename.setColumns(10);
imagename.setBounds(145, 31, 350, 20);
panel_1.add(imagename);
JTextArea txtrGebenSieBitte = new JTextArea();
txtrGebenSieBitte.setBackground(SystemColor.menu);
txtrGebenSieBitte.setLineWrap(true);
txtrGebenSieBitte.setFont(new Font("Tahoma", Font.PLAIN, 12));
txtrGebenSieBitte.setText("Geben Sie bitte einen sprechenden Namen f\u00FCr das Image an.\r\nDieser soll jedoch recht allgemein gehalten werden.\r\nBeispiel: \"Programmieren\", nicht \"Programmieren 1\"");
txtrGebenSieBitte.setBounds(145, 62, 350, 110);
panel_1.add(txtrGebenSieBitte);
JPanel panel = new JPanel();
panel.setBounds(10, 402, 577, 33);
contentPanel.add(panel);
panel.setLayout(null);
panel.setBorder(new EmptyBorder(5, 5, 5, 5));
panel.setBackground(SystemColor.menu);
JLabel lblPflichtfelder = new JLabel("* Pflichtfelder");
lblPflichtfelder.setBounds(10, 442, 136, 14);
contentPanel.add(lblPflichtfelder);
JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
lblHauptmen.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
//Durch den Klick auf Button Hauptmenpü wird dieses Fenster unsichtbar und das Hauptmenü sichtbar
EditImageAllgemein_GUI.this.setVisible(false);
MainMenue_GUI main=new MainMenue_GUI();
main.setVisible(true);
}
});
lblHauptmen.setForeground(Color.BLUE);
lblHauptmen.setBounds(10, 11, 61, 14);
contentPanel.add(lblHauptmen);
JLabel label_1 = new JLabel(">");
label_1.setBounds(69, 11, 13, 14);
contentPanel.add(label_1);
JLabel lblVlimage = new JLabel("VL-Image");
lblVlimage.setForeground(Color.BLUE);
lblVlimage.setBounds(81, 11, 45, 14);
contentPanel.add(lblVlimage);
JLabel label_2 = new JLabel(">");
label_2.setBounds(133, 11, 13, 14);
contentPanel.add(label_2);
JLabel lblNewLabel_1 = new JLabel("Bearbeiten");
lblNewLabel_1.setBounds(146, 11, 71, 14);
contentPanel.add(lblNewLabel_1);
{
buttonPane = new JPanel();
buttonPane.setBounds(0, 640, 597, 33);
buttonPane.setBackground(SystemColor.menu);
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane);
{
backButton = new JButton("Zur\u00FCck");
backButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Setzen der Eingabe im Model, dadurch bleiben die Daten bei einem erneuten Aufruf verfügbar
//Image.image.setImagename(imagename.getText());
MainMenue_GUI sr=new MainMenue_GUI();
sr.setVisible(true);
dispose();
}
});
backButton.setActionCommand("CANCEL");
buttonPane.add(backButton);
}
{
okButton = new JButton("Weiter");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.out.println("text length="+imagename.getText().length());
//Setzen der Eingabe im Model, dadurch bleiben die Daten bei einem erneuten Aufruf verfügbar
//TODO
//Prüfung ob alle notwendigen Felder ausgefüllt sind --> funktioniert aktuell nicht
//der Button wechselt beim Klick auf die nächste Seite, selbst wenn kein handler implementiert ist... WTF???
if(imagename.getText().length() <= 0){
JOptionPane.showMessageDialog(null,
"Bitte geben Sie einen Labornamen ein.",
"Daten nicht vollständig",
JOptionPane.WARNING_MESSAGE);
} else {
Image.image.setNewName(imagename.getText());
con.closeThriftConnection();
EditImageTechnisch_GUI ea=new EditImageTechnisch_GUI();
ea.setVisible(true);
dispose();
}//end else
}
});
okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
}
JSeparator separator = new JSeparator();
separator.setBounds(0, 78, 597, 2);
getContentPane().add(separator);
JSeparator separator_1 = new JSeparator();
separator_1.setBounds(0, 627, 597, 2);
getContentPane().add(separator_1);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnNewMenu_1 = new JMenu("Hilfe");
menuBar.add(mnNewMenu_1);
JMenuItem mntmFaq = new JMenuItem("FAQ");
mnNewMenu_1.add(mntmFaq);
JMenuItem mntmOtrs = new JMenuItem("OTRS");
mnNewMenu_1.add(mntmOtrs);
//setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{getContentPane(), panel_2, lblNewLabel, txtpnBitteWhlenSie, contentPanel, panel_1, label, Vorname, label_7, Nachname, label_8, Hochschule, label_9, EMail, lblImagename, imagename, txtrGebenSieBitte, panel, lblPflichtfelder, lblHauptmen, label_1, lblVlimage, label_2, lblNewLabel_1, buttonPane, backButton, okButton, separator, separator_1, menuBar, mnNewMenu_1, mntmFaq, mntmOtrs}));
}
public void initData(){
try {
Map<String,String> map=client.getImageData(Image.image.getImageId(),Image.image.getVersion());
if(map.get("internet").equals("0")){
Image.image.setInternet(false);
}
else
{
Image.image.setInternet(true);
}
if(map.get("license").equals("0")){
Image.image.setLicensed(false);
}
else{
Image.image.setLicensed(true);
}
Image.image.setImagename(map.get("name"));
Image.image.setRam(Integer.parseInt(map.get("ram")));
Image.image.setCpu(Integer.parseInt(map.get("cpu")));
} catch (TException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}