diff options
Diffstat (limited to 'dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java | 531 |
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 |
