summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java')
-rw-r--r--dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java531
1 files changed, 531 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java b/dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java
new file mode 100644
index 00000000..4c6e5629
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java
@@ -0,0 +1,531 @@
+package gui.image;
+
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+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.net.URI;
+import java.net.URISyntaxException;
+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 models.Image;
+import models.Links;
+import models.person;
+
+import org.apache.thrift.TException;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import javax.swing.JScrollPane;
+
+@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;
+ private JTextArea textAreadesc;
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ private JPanel panel_2;
+ private JLabel lblNewLabel;
+ private JTextPane txtpnBitteWhlenSie;
+ private JPanel buttonPane;
+ private JButton backButton;
+ private JButton okButton;
+ private boolean textfieldsHaveContent = false; //no textfield is empty
+ private boolean nameIsOK = false; //imagename only contains letters
+ private boolean descriptionLengthOK = false; //description may not be longer than MAX_DESCRIPTION_LENGTH
+ private final int MAX_DESCRIPTION_LENGTH = 254;
+
+ /**
+ * Create the dialog.
+ */
+ public EditImageAllgemein_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung bei einem Klick auf das X
+ con.closeThriftConnection();
+ System.exit(0);
+ }
+ });
+ // Verhindert das vergroessern 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 - Image bearbeiten");
+
+ // Zentriert das Fenster in der Bildmitte
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+ 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, 23, 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, 23, 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, 48, 350, 55);
+ panel_1.add(txtrGebenSieBitte);
+
+ JLabel lblBeschreibung = new JLabel("Beschreibung: *");
+ lblBeschreibung.setBackground(SystemColor.menu);
+ lblBeschreibung.setBounds(10, 110, 125, 20);
+ panel_1.add(lblBeschreibung);
+
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane.setBounds(145, 110, 350, 60);
+ panel_1.add(scrollPane);
+
+ textAreadesc = new JTextArea();
+ textAreadesc.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ textAreadesc.setLineWrap(true);
+ textAreadesc.setText((String) null);
+ textAreadesc.setText(Image.image.getDesc());// null am Anfang, aber
+ // speichert die Eingabe,
+ // wenn man zurueck kommt
+ // zur Seite
+ scrollPane.setViewportView(textAreadesc);
+
+ JTextArea textArea = new JTextArea();
+ textArea.setText("Geben Sie bitte eine Beschreibung für das Image an.\r\nDiese soll jedoch recht spezifisch gehalten werden.\r\nBeispiel: \"Java-Enticklung mit eclipse und MySQL\"");
+ textArea.setLineWrap(true);
+ textArea.setFont(new Font("Tahoma", Font.PLAIN, 12));
+ textArea.setEditable(false);
+ textArea.setBackground(SystemColor.menu);
+ textArea.setBounds(145, 177, 350, 49);
+ panel_1.add(textArea);
+
+ 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 Hauptmenpue wird dieses Fenster
+ // unsichtbar und das Hauptmenue 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("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 verfuegbar
+ // Image.image.setImagename(imagename.getText());
+
+ SearchEditImage_GUI se = new SearchEditImage_GUI();
+ se.setVisible(true);
+ dispose();
+ }
+ });
+ backButton.setActionCommand("CANCEL");
+ buttonPane.add(backButton);
+
+ }
+ {
+ okButton = new JButton("Weiter");
+ okButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Prueft die Eingabe und leitet weiter zur naechsten
+ // Seite
+ if (checkContent() == true && checkNameIsLettersOrNumbers() == true && descriptionLenghtOK()== true) {
+
+ // setze Namen, egal ob alt oder nicht
+ Image.image.setImagename(imagename.getText());
+ Image.image.setDesc(textAreadesc.getText());
+ // Info
+ System.out
+ .println("Alle Eingaben in Ordnung. Imagename= \""
+ + Image.image.getImagename()
+ + "\", Imagebeschreibung=\""
+ + Image.image.getDesc()+"\"");
+
+
+ EditImageTechnisch_GUI ea = new EditImageTechnisch_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ } else {
+
+ }// 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");
+ mntmFaq.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mousePressed(MouseEvent arg0) {
+
+ OpenLinks open = new OpenLinks();
+
+ URI windows;
+ try {
+ windows = new URI(Links.getFAQ());
+
+ open.openWebpage(windows);
+
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+ mnNewMenu_1.add(mntmFaq);
+
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mntmOtrs.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mousePressed(MouseEvent arg0) {
+
+ OpenLinks open = new OpenLinks();
+
+ URI windows;
+ try {
+ windows = new URI(Links.getOTRS());
+
+ open.openWebpage(windows);
+
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ }
+ });
+ mnNewMenu_1.add(mntmOtrs);
+
+ JMenuItem menuItem = new JMenuItem("About");
+ menuItem.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(menuItem);
+ // 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);
+ }
+ System.out.println(map.get("template"));
+ if (map.get("template").equals("false")) {
+ Image.image.setVorlage(false);
+ } else {
+ Image.image.setVorlage(true);
+ }
+ Image.image.setImagename(map.get("name"));
+ Image.image.setRam(Integer.parseInt(map.get("ram")));
+ Image.image.setCpu(Integer.parseInt(map.get("cpu")));
+ Image.image.setImagepath(map.get("path"));
+ Image.image.setDesc(map.get("desc"));
+ Image.image.setFilesize(Long.parseLong(map.get("filesize")));
+ int mode=0;
+ if(map.get("shareMode").equals("only_local")){
+ mode=0;
+ }
+ else
+ {
+ mode=1;
+ }
+ Image.image.setShareMode(mode);
+ Image.image.setOS(map.get("os"));
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }//end initData()
+
+ public boolean checkNameIsLettersOrNumbers() {
+ nameIsOK = false;
+
+ //only allow letter from alphabet and nothing else
+ if (imagename.getText().matches("[a-zA-Z0-9]+")) {
+ nameIsOK = true;
+ } else {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Der Imagename darf keine Leer- oder Sonderzeichen enthalten.",
+ "Unerlaubte Zeichen",
+ JOptionPane.INFORMATION_MESSAGE);
+ }// if
+
+ return nameIsOK;
+ }// end nameIsOK
+
+ public boolean checkContent(){
+ textfieldsHaveContent=false;
+
+ //check if any textfield is empty
+ if(imagename.getText().isEmpty() == false
+ && textAreadesc.getText().isEmpty() == false
+ && Vorname.getText().isEmpty() == false
+ && Nachname.getText().isEmpty() == false
+ && Hochschule.getText().isEmpty() == false
+ && EMail.getText().isEmpty() == false) {
+ //all textfields have content
+ textfieldsHaveContent = true;
+ } else {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Bitte geben Sie alle notwendigen Daten an!",
+ "Daten unvollst\u00e4ndig",
+ JOptionPane.INFORMATION_MESSAGE);
+ }//end if
+
+ return textfieldsHaveContent;
+ }//end checkContent
+
+ public boolean descriptionLenghtOK(){
+ descriptionLengthOK=false;
+
+ //max length is 254 chars
+ if (textAreadesc.getText().length() >= MAX_DESCRIPTION_LENGTH) {
+ descriptionLengthOK=false;
+ JOptionPane
+ .showMessageDialog(null,
+ "Die Beschreibung darf max 254 Zeichen enthalten. Aktuell enthält sie "+textAreadesc.getText().length()+".",
+ "Beschreibung zu umfangreich",
+ JOptionPane.INFORMATION_MESSAGE);
+ }else {
+ descriptionLengthOK=true;
+
+ }
+
+ return descriptionLengthOK;
+ }// enddescriptionLenghtOK()
+
+}//end class