summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/gui/image
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/gui/image')
-rw-r--r--dozentenmodul/src/main/java/gui/image/CreateImageAllgemein_GUI.java464
-rw-r--r--dozentenmodul/src/main/java/gui/image/CreateImageFreigabe_GUI.java258
-rw-r--r--dozentenmodul/src/main/java/gui/image/CreateImageTechnisch_GUI.java473
-rw-r--r--dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java1180
-rw-r--r--dozentenmodul/src/main/java/gui/image/EditImageAllgemein_GUI.java531
-rw-r--r--dozentenmodul/src/main/java/gui/image/EditImageFreigabe_GUI.java256
-rw-r--r--dozentenmodul/src/main/java/gui/image/EditImageTechnisch_GUI.java518
-rw-r--r--dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java659
-rw-r--r--dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java590
-rw-r--r--dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java664
-rw-r--r--dozentenmodul/src/main/java/gui/image/FTPSearchDownloader_GUI.java635
-rw-r--r--dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java552
-rw-r--r--dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java504
-rw-r--r--dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java1055
-rw-r--r--dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java963
15 files changed, 9302 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/CreateImageAllgemein_GUI.java b/dozentenmodul/src/main/java/gui/image/CreateImageAllgemein_GUI.java
new file mode 100644
index 00000000..06835167
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/CreateImageAllgemein_GUI.java
@@ -0,0 +1,464 @@
+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 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 util.GuiOrganizer;
+import util.OpenLinks;
+import javax.swing.JScrollPane;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+
+
+@SuppressWarnings("serial")
+public class CreateImageAllgemein_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;
+ private boolean textfieldsHaveContent = false; // no textfield is empty
+ private boolean descriptionLengthOK = false; //description may not be longer than 254 chars
+ private boolean nameIsOK = false; // imagename only contains letters
+ private final int MAX_DESCRIPTION_LENGTH = 254;
+ private JTextArea txtrGebenSieBitte_1;
+
+ /**
+ * Create the dialog.
+ */
+ public CreateImageAllgemein_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet das Fenster auf X
+ System.exit(0);
+ }
+
+ @Override
+ public void windowOpened(WindowEvent arg0) {
+ imagename.requestFocusInWindow();
+ }
+ });
+ // Verhindert das Vergroessern des Fensters
+ setResizable(false);
+
+ try {
+ // setzt das Look & Feel
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ // Setzt den Titel
+ setTitle("bwLehrpool Suite - Image erzeugen");
+ // Zentriert das Fenster
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Eingabe Ihrer Daten");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("Geben Sie hier bitte einen sprechenden Imagenamen sowie Ihre Kontaktdaten an");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.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.setEnabled(false);
+ Vorname.setEditable(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.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ textAreadesc.requestFocusInWindow();
+ }
+ });
+ imagename.setBackground(Color.WHITE);
+ imagename.setText((String) null);
+ imagename.setColumns(10);
+ imagename.setBounds(145, 23, 350, 20);
+ imagename.setText(Image.image.getImagename()); // null am Anfang, aber
+ // speichert die
+ // Eingabe, wenn man
+ // zurueck kommt zur
+ // Seite
+ panel_1.add(imagename);
+
+ JTextArea txtrGebenSieBitte = new JTextArea();
+ txtrGebenSieBitte.setEditable(false);
+ 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, 49);
+ 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);
+
+ txtrGebenSieBitte_1 = new JTextArea();
+ txtrGebenSieBitte_1
+ .setText("Geben Sie bitte eine Beschreibung f\u00FCr das Image an.\r\nDiese soll jedoch recht spezifisch gehalten werden.\r\nBeispiel: \"Java-Enticklung mit eclipse und MySQL\"");
+ txtrGebenSieBitte_1.setLineWrap(true);
+ txtrGebenSieBitte_1.setFont(new Font("Tahoma", Font.PLAIN, 12));
+ txtrGebenSieBitte_1.setEditable(false);
+ txtrGebenSieBitte_1.setBackground(SystemColor.menu);
+ txtrGebenSieBitte_1.setBounds(145, 177, 350, 49);
+ panel_1.add(txtrGebenSieBitte_1);
+
+ 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) {
+ // oeffnet das Hauptmenue
+ CreateImageAllgemein_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("Neu");
+ lblNewLabel_1.setBounds(146, 11, 46, 14);
+ contentPanel.add(lblNewLabel_1);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton backButton = new JButton("Zur\u00FCck");
+ backButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ Image.image.setImagename(imagename.getText());
+ Image.image.setDesc(textAreadesc.getText());
+ MainMenue_GUI sr = new MainMenue_GUI();
+ sr.setVisible(true);
+ dispose();
+ }
+ });
+ backButton.setActionCommand("Cancel");
+ buttonPane.add(backButton);
+ }
+ {
+ JButton continueButton = new JButton("Weiter");
+ continueButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // Prueft die Eingabe und leitet weiter zur naechsten
+ // Seite
+ if (checkContent() == true
+ && checkNameIsLettersOrNumbers() == true && descriptionLenghtOK() == true) {
+ // Schreibt die Daten in das Model
+ 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()+"\"");
+ CreateImageTechnisch_GUI ea = new CreateImageTechnisch_GUI();
+ ea.setVisible(true);
+ dispose();
+ } else {
+
+ }
+ }
+ });
+ continueButton.setActionCommand("OK");
+ buttonPane.add(continueButton);
+ getRootPane().setDefaultButton(continueButton);
+ }
+ }
+
+ 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 arg0) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(menuItem);
+
+ }// end main
+
+ public boolean checkNameIsLettersOrNumbers() {
+ nameIsOK = false;
+
+ // only allow letter from alphabet and numbers
+ 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
diff --git a/dozentenmodul/src/main/java/gui/image/CreateImageFreigabe_GUI.java b/dozentenmodul/src/main/java/gui/image/CreateImageFreigabe_GUI.java
new file mode 100644
index 00000000..dea785d3
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/CreateImageFreigabe_GUI.java
@@ -0,0 +1,258 @@
+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.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.swing.ButtonGroup;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+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 util.GuiOrganizer;
+import util.OpenLinks;
+
+@SuppressWarnings("serial")
+public class CreateImageFreigabe_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ private final ButtonGroup buttonGrouplicense = new ButtonGroup();
+ private final ButtonGroup buttonGroupInternet = new ButtonGroup();
+ JComboBox comboBox;
+
+ /**
+ * Create the dialog.
+ */
+ public CreateImageFreigabe_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ System.exit(0);
+ }
+ });
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ setTitle("bwLehrpool Suite - Image erzeugen");
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Image Freigabe");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("W\u00E4hlen Sie bitte hier die von Ihnen gew\u00FCnschte Freigabe f\u00FCr Ihr Image aus.");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.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, "Freigabe",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 51, 557, 124);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Freigabemodus:");
+ lblNewLabel_2.setBounds(10, 55, 250, 20);
+ panel_1.add(lblNewLabel_2);
+
+ comboBox = new JComboBox();
+ comboBox.setModel(new DefaultComboBoxModel(new String[] {
+ "Lokal (Eigene Hochschule)",
+ "\u00D6ffentlich (Alle Hochschulen)" }));
+ comboBox.setSelectedIndex(0);
+ comboBox.setBounds(270, 55, 250, 20);
+ panel_1.add(comboBox);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+
+ CreateImageFreigabe_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("Neu");
+ lblNewLabel_1.setBounds(146, 11, 46, 14);
+ contentPanel.add(lblNewLabel_1);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton cancelButton = new JButton("Zur\u00FCck");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ Image.image.setShareMode(comboBox.getSelectedIndex());
+ CreateImageTechnisch_GUI sr = new CreateImageTechnisch_GUI();
+ sr.setVisible(true);
+ dispose();
+ }
+ });
+ cancelButton.setActionCommand("OK");
+ buttonPane.add(cancelButton);
+ // getRootPane().setDefaultButton(cancelButton);
+ }
+ {
+ JButton continueButton = new JButton("Weiter");
+ continueButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ Image.image.setShareMode(comboBox.getSelectedIndex());
+ PermissionCreateImage_GUI ea = new PermissionCreateImage_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ continueButton.setActionCommand("Cancel");
+ buttonPane.add(continueButton);
+ getRootPane().setDefaultButton(continueButton);
+ }
+ }
+
+ 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);
+
+ }
+}
diff --git a/dozentenmodul/src/main/java/gui/image/CreateImageTechnisch_GUI.java b/dozentenmodul/src/main/java/gui/image/CreateImageTechnisch_GUI.java
new file mode 100644
index 00000000..a6b19c6c
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/CreateImageTechnisch_GUI.java
@@ -0,0 +1,473 @@
+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.List;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JSeparator;
+import javax.swing.JSpinner;
+import javax.swing.JTextArea;
+import javax.swing.JTextPane;
+import javax.swing.SpinnerNumberModel;
+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 server.Server.Client;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import javax.swing.JComboBox;
+
+import org.apache.thrift.TException;
+
+@SuppressWarnings("serial")
+public class CreateImageTechnisch_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ JSpinner spinnerCPU;
+ JSpinner spinnerRam;
+ //JRadioButton rdbtnlicenseJa;
+ //JRadioButton rdbtnlicenseNein;
+ //JRadioButton rdbtnInternetJa;
+ //JRadioButton rdbtnInternetNein;
+ //JRadioButton radioButtonVorlageJa;
+ //JRadioButton radioButtonVorlageNein;
+ private JCheckBox chckbxIsTemplate;
+ private JCheckBox chckbxIsLicensed;
+ private JCheckBox chckbxIsInternetBlocked;
+ JComboBox comboBox;
+ private final ButtonGroup buttonGrouplicense = new ButtonGroup();
+ private final ButtonGroup buttonGroupInternet = new ButtonGroup();
+ private final ButtonGroup buttonGroupVorlage = new ButtonGroup();
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+
+
+ /**
+ * Create the dialog.
+ */
+ public CreateImageTechnisch_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ System.exit(0);
+ }
+ });
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ setTitle("bwLehrpool Suite - Image erzeugen");
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Eingabe technischer Daten");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie.setText("Geben Sie hier bitte einige technische Daten ein");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 531);
+ 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 Image", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 36, 557, 166);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+
+ JLabel lblInternetIstInnerhalb = new JLabel("Internet ist f\u00FCr dieses Image gesperrt:");
+ lblInternetIstInnerhalb.setBounds(10, 106, 250, 20);
+ panel_1.add(lblInternetIstInnerhalb);
+
+ JButton btnInternetSettings = new JButton("Einstellungen...");
+ btnInternetSettings.setEnabled(false);
+ btnInternetSettings.setBounds(439, 105, 108, 23);
+ panel_1.add(btnInternetSettings);
+
+
+ JLabel lblNewLabel_2 = new JLabel("Image enth\u00E4lt lizenzpflichtige Software:");
+ lblNewLabel_2.setBounds(10, 78, 250, 20);
+ panel_1.add(lblNewLabel_2);
+
+ chckbxIsTemplate = new JCheckBox("");
+ chckbxIsTemplate.setBounds(266, 50, 97, 23);
+ panel_1.add(chckbxIsTemplate);
+
+ chckbxIsLicensed = new JCheckBox("");
+ chckbxIsLicensed.setSelected(true);
+ chckbxIsLicensed.setBounds(266, 76, 97, 23);
+ panel_1.add(chckbxIsLicensed);
+
+ chckbxIsInternetBlocked = new JCheckBox("");
+ chckbxIsInternetBlocked.setBounds(266, 104, 97, 23);
+ panel_1.add(chckbxIsInternetBlocked);
+
+ JLabel lblLizenzserverEintragen = new JLabel("Lizenzserver eintragen:");
+ lblLizenzserverEintragen.setBounds(10, 133, 250, 20);
+ panel_1.add(lblLizenzserverEintragen);
+
+ JButton btnLicenseServer = new JButton("Server-Adresse...");
+ btnLicenseServer.setEnabled(false);
+ btnLicenseServer.setBounds(266, 132, 157, 23);
+ panel_1.add(btnLicenseServer);
+
+ JLabel lblImageIstEine = new JLabel("Image ist eine Vorlage:");
+ lblImageIstEine.setBounds(10, 52, 250, 20);
+ panel_1.add(lblImageIstEine);
+
+
+ JLabel lblBetriebssystem = new JLabel("Betriebssystem:");
+ lblBetriebssystem.setBounds(10, 21, 250, 20);
+ panel_1.add(lblBetriebssystem);
+
+ if (Image.image.isVorlage() == true) {
+ //radioButtonVorlageJa.setSelected(true);
+ chckbxIsTemplate.setSelected(true);
+ } else {
+ //radioButtonVorlageNein.setSelected(true);
+ chckbxIsTemplate.setSelected(false);
+ }
+
+ if(Image.image.isInternet() == true ){
+ chckbxIsInternetBlocked.setSelected(true);
+ } else {
+ chckbxIsInternetBlocked.setSelected(false);
+ }
+
+ /* TODO deprecated, as checked is default in new image
+ if (Image.image.isLicensed() == true) {
+ //rdbtnlicenseJa.setSelected(true);
+ chckbxIsLicensed.setSelected(true);
+ chckbxIsLicensed.isSelected();
+ } else {
+ //rdbtnlicenseNein.setSelected(true);
+ chckbxIsLicensed.setSelected(false);
+ }
+ */
+
+ comboBox = new JComboBox();
+ try {
+ List<String> os=client.getAllOS();
+
+ for(int i=0; i<os.size();i++){
+ comboBox.addItem(os.get(i).toString());
+ }
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ comboBox.setBounds(270, 21, 277, 20);
+ panel_1.add(comboBox);
+
+ JPanel panel_2 = new JPanel();
+ panel_2.setLayout(null);
+ panel_2.setBorder(new TitledBorder(null, "Empfehlung bez\u00fcglich Ressourcen", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_2.setBackground(SystemColor.menu);
+ panel_2.setBounds(10, 207, 557, 324);
+ contentPanel.add(panel_2);
+
+ JLabel lblGbyte = new JLabel("GByte");
+ lblGbyte.setBounds(424, 91, 46, 20);
+ panel_2.add(lblGbyte);
+
+ spinnerCPU = new JSpinner();
+ spinnerCPU.setModel(new SpinnerNumberModel(1, 1, 4, 1));
+ spinnerCPU.setBounds(385, 188, 29, 20);
+ panel_2.add(spinnerCPU);
+
+ JTextArea txtrBeispielWindows = new JTextArea();
+ txtrBeispielWindows.setText("Beispiel:\r\nWindows 7 32/64 Bit: 2 GByte\r\nLinux/Unix 32/64 Bit: 1 GByte");
+ txtrBeispielWindows.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ txtrBeispielWindows.setBackground(SystemColor.menu);
+ txtrBeispielWindows.setBounds(10, 122, 280, 55);
+ panel_2.add(txtrBeispielWindows);
+
+
+
+ JLabel lblKerne = new JLabel("Kerne");
+ lblKerne.setBounds(424, 191, 46, 20);
+ panel_2.add(lblKerne);
+
+ JLabel lblWieVieleCpus = new JLabel("Wie viele CPUs empfehlen Sie f\u00FCr das Image:");
+ lblWieVieleCpus.setBounds(10, 191, 280, 20);
+ panel_2.add(lblWieVieleCpus);
+
+ spinnerRam = new JSpinner();
+ spinnerRam.setModel(new SpinnerNumberModel(1, 1, 8, 1));
+ spinnerRam.setBounds(385, 88, 29, 20);
+ panel_2.add(spinnerRam);
+
+ JLabel label_3 = new JLabel("mindestens");
+ label_3.setBounds(315, 191, 60, 20);
+ panel_2.add(label_3);
+
+ JLabel lblMindestens = new JLabel("mindestens");
+ lblMindestens.setBounds(315, 91, 60, 20);
+ panel_2.add(lblMindestens);
+
+ JTextArea txtrBeispielWindows_1 = new JTextArea();
+ txtrBeispielWindows_1.setText("Beispiel:\r\nWindows 7 32/64 Bit: 1 Kern\r\nLinux/Unix 32/64 Bit: 1 Kern");
+ txtrBeispielWindows_1.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ txtrBeispielWindows_1.setBackground(SystemColor.menu);
+ txtrBeispielWindows_1.setBounds(10, 222, 280, 55);
+ panel_2.add(txtrBeispielWindows_1);
+
+ JLabel lblNewLabel_3 = new JLabel("Wie viel Arbeitsspeicher empfehlen Sie f\u00FCr das Image:");
+ lblNewLabel_3.setBounds(10, 91, 280, 20);
+ panel_2.add(lblNewLabel_3);
+
+ JTextArea txtrHinweisSolltenSie = new JTextArea();
+ txtrHinweisSolltenSie.setBackground(SystemColor.menu);
+ txtrHinweisSolltenSie.setFont(new Font("Tahoma", Font.PLAIN, 13));
+ txtrHinweisSolltenSie.setText("Hinweis: Sollten Sie keine Software einsetzen, die viele Ressourcen ben\u00F6tigt,\r\nk\u00F6nnen Sie sich an den Beispielwerten orientieren.");
+ txtrHinweisSolltenSie.setBounds(10, 25, 537, 55);
+ panel_2.add(txtrHinweisSolltenSie);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+
+ CreateImageTechnisch_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("Neu");
+ lblNewLabel_1.setBounds(146, 11, 46, 14);
+ contentPanel.add(lblNewLabel_1);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton cancelButton = new JButton("Zur\u00FCck");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ if(chckbxIsInternetBlocked.isSelected()==true)
+ {
+ Image.image.setInternet(true);
+ }
+ else
+ {
+ Image.image.setInternet(false);
+ }
+
+ if(chckbxIsLicensed.isSelected()==true)
+ {
+ Image.image.setLicensed(true);
+ }
+ else
+ {
+ Image.image.setLicensed(false);
+ }
+
+ if(chckbxIsTemplate.isSelected() == true){
+ Image.image.setVorlage(true);
+ } else {
+ Image.image.setVorlage(false);
+ }
+
+ Image.image.setCpu(Integer.valueOf(spinnerCPU.getValue().toString()).intValue());
+ Image.image.setRam(Integer.valueOf(spinnerRam.getValue().toString()).intValue());
+ Image.image.setOS(comboBox.getSelectedItem().toString());
+ CreateImageAllgemein_GUI sr=new CreateImageAllgemein_GUI();
+ sr.setVisible(true);
+ dispose();
+ }
+ });
+ cancelButton.setActionCommand("OK");
+ buttonPane.add(cancelButton);
+ //getRootPane().setDefaultButton(cancelButton);
+ }
+ {
+ JButton continueButton = new JButton("Weiter");
+ continueButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ if(chckbxIsInternetBlocked.isSelected()==true)
+ {
+ Image.image.setInternet(true);
+ }
+ else
+ {
+ Image.image.setInternet(false);
+ }
+
+ if(chckbxIsLicensed.isSelected()==true)
+ {
+ Image.image.setLicensed(true);
+ }
+ else
+ {
+ Image.image.setLicensed(false);
+ }
+ if(chckbxIsTemplate.isSelected()==true)
+ {
+ Image.image.setVorlage(true);
+ }
+ else
+ {
+ Image.image.setVorlage(false);
+ }
+ Image.image.setCpu(Integer.valueOf(spinnerCPU.getValue().toString()).intValue());
+ Image.image.setRam(Integer.valueOf(spinnerRam.getValue().toString()).intValue());
+ Image.image.setOS(comboBox.getSelectedItem().toString());
+ System.out.println("Betriebssystem: "+Image.image.getOS()+", istVorlage: "+Image.image.isVorlage()+", Lizenzpflichtig: "+Image.image.isLicensed()+", Internetsperre: "+Image.image.isInternet()+", CPU: "+Image.image.getCpu()+", RAM: "+Image.image.getRam());
+ CreateImageFreigabe_GUI ea=new CreateImageFreigabe_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ continueButton.setActionCommand("Cancel");
+ buttonPane.add(continueButton);
+ getRootPane().setDefaultButton(continueButton);
+ }
+ }
+
+ 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);
+
+ }
+}
diff --git a/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java b/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java
new file mode 100644
index 00000000..3b4cc3ba
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java
@@ -0,0 +1,1180 @@
+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.HeadlessException;
+import java.awt.SystemColor;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+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.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+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.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.JTextPane;
+import javax.swing.ListSelectionModel;
+import javax.swing.RowFilter;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+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.JTextArea;
+
+@SuppressWarnings("serial")
+public class DeleteImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ JLabel labelName;
+ JLabel labelUpdate;
+ JLabel labelVerantwortlicher;
+ JLabel labelWeitereVerantwortliche;
+ JLabel labelVorlage;
+ JLabel labelLizenzSoftware;
+ JLabel labelInternet;
+ JLabel labelRam;
+ JLabel labelCPU;
+ JLabel labelID;
+ JLabel labelVersion;
+ JTextArea textAreadesc;
+ private JLabel labelOS;
+ String[] result;
+ JRadioButton rdbtnInternetJa;
+ JRadioButton rdbtnInternetNein;
+ JComboBox<String> comboBox;
+ JTable tableAllImages;
+ JTable tablemyImages;
+ JTable tablePublicVorlagen;
+ private JTextField textFieldName;
+ JTabbedPane tabbedPane;
+ boolean activeSearch = false;
+ String[] titles = { "Name", "Lizenzpflichtig", "OS", "Veranstaltung",
+ "Verantwortlicher", "Letztes Update", "ID", "Version", "Template" }; // Angezeigt
+ // werden
+ // aber
+ // nur
+ // Name
+ // (0),
+ // OS
+ // (2),
+ // Verantwortlicher
+ // (4),
+ // Letztes
+ // Update
+ // (5)
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ final DefaultTableModel modelAll = new DefaultTableModel(titles, 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final DefaultTableModel modelPublicVorlagen = new DefaultTableModel(titles,
+ 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(
+ modelAll);
+ final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>(
+ modelMyImages);
+ final TableRowSorter<TableModel> rowSorterPublicVorlagen = new TableRowSorter<TableModel>(
+ modelPublicVorlagen);
+ private JLabel lblBeschreibung_1;
+ private JTextField textField;
+
+ /**
+ * Create the dialog.
+ */
+ public DeleteImage_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung nach klick auf X
+ con.closeThriftConnection();
+ System.exit(0);
+ }
+
+ @Override
+ public void windowOpened(WindowEvent arg0) {
+ initTableModel(modelAll);
+ initTableModel(modelMyImages);
+ initTableModel(modelPublicVorlagen);
+
+ // auszublendende Angaben
+ // 1=Lizenzpflichtig
+ // 3=Veranstaltung
+ // 6=ID
+ // 7=Version
+ // 8=Template
+ tablemyImages.getColumnModel().getColumn(1).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(1).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(1).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setMaxWidth(0);
+
+ tablePublicVorlagen.getColumnModel().getColumn(1).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(1)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(1)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7)
+ .setMaxWidth(0);
+
+ tableAllImages.getColumnModel().getColumn(1).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(1).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(1).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setMaxWidth(0);
+ // bis hier
+ textFieldName.requestFocusInWindow();
+ }
+ });
+ // Verhindert das Vergroessern Des Fensters
+ setResizable(false);
+
+ try {
+ // Setzt das Look & Feel auf System
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // Setzt den Fenstertitel
+ setTitle("bwLehrpool Suite - Image l\u00F6schen");
+ // Zentriert das Fenster in die Bildmitte
+ setBounds(0, 0, 918, 722);
+ GuiOrganizer.centerGUI(this);
+
+ final DefaultTableModel model = new DefaultTableModel(titles, 0);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 892, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel(
+ "Zu l\u00F6schendes Image w\u00E4hlen");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("W\u00E4hlen Sie bitte aus der unten stehenden Liste das zu l\u00F6schende Image aus.");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 531);
+ 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, "Filterfunktionen",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 49, 557, 98);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Name:");
+ lblNewLabel_2.setBounds(10, 30, 80, 20);
+ panel_1.add(lblNewLabel_2);
+
+ JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:");
+ lblInternetIstInnerhalb.setBounds(10, 58, 80, 20);
+ panel_1.add(lblInternetIstInnerhalb);
+
+ textFieldName = new JTextField();
+ // Key Listener der Tastatureingabe registriert
+ textFieldName.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyReleased(KeyEvent e) {
+ // Textfield eingabe auslesen
+ String stext = textFieldName.getText();
+
+ // Wenn Textfield nicht leer
+ if (stext != "") {
+ activeSearch = true;
+ // Filtere nach der Eingabe
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+
+ } else {
+ activeSearch = false;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ rowSorterAll.setRowFilter(null);
+ }
+ }
+ });
+
+ textFieldName.setBounds(96, 30, 166, 20);
+ panel_1.add(textFieldName);
+ textFieldName.setColumns(10);
+
+ comboBox = new JComboBox<String>();
+ try {
+ // Holt sich eine Liste aller verf\u00FCgbaren Betriebssysteme vom
+ // Server
+ List<String> list = client.getAllOS();
+ // Leeres Item hinzufuegen
+ comboBox.addItem("");
+ for (int i = 0; i < list.size(); i++) {
+ // Hinzufuegen der verfuegbaren Betriebssysteme
+ comboBox.addItem(list.get(i));
+ }
+ } catch (TException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e2.getCause() + "\n" + e2.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ // Registriert Auswahlaenderungen der Box
+ comboBox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Prueft das die Auswahl nicht leer ist
+ if (comboBox.getSelectedItem().toString() != "") {
+ activeSearch = true;
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox
+ .getSelectedItem().toString(), 2));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ } else {
+ activeSearch = false;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ rowSorterAll.setRowFilter(null);
+ }
+ }
+
+ });
+ comboBox.setBounds(96, 58, 166, 20);
+ panel_1.add(comboBox);
+
+ lblBeschreibung_1 = new JLabel("Beschreibung:");
+ lblBeschreibung_1.setBounds(291, 30, 80, 20);
+ panel_1.add(lblBeschreibung_1);
+
+ textField = new JTextField();
+ textField.setColumns(10);
+ textField.setBounds(381, 30, 166, 20);
+ panel_1.add(textField);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+
+ // oeffnet das Hauuetmenue
+ con.closeThriftConnection();
+
+ // oeffnet das Hauuetmenue
+
+ DeleteImage_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(115, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Imageauswahl");
+ lblNewLabel_1.setBounds(128, 11, 85, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ tabbedPane = new JTabbedPane(JTabbedPane.TOP);
+ tabbedPane.addChangeListener(new ChangeListener() {
+ public void stateChanged(ChangeEvent arg0) {
+ // System.out.println(tabbedPane.getSelectedIndex());
+ if (tabbedPane.getSelectedIndex() == 0 && activeSearch == false) {
+
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ } else if (tabbedPane.getSelectedIndex() == 1
+ && activeSearch == false) {
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ } else if (tabbedPane.getSelectedIndex() == 2
+ && activeSearch == false) {
+ rowSorterAll.setRowFilter(null);
+ }
+
+ }
+ });
+
+ tabbedPane.setBounds(10, 158, 557, 339);
+ contentPanel.add(tabbedPane);
+
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ tablemyImages = new JTable();
+ tablemyImages.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ String imageid = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 6)
+ .toString();
+ // System.out.println(imageid);
+ String version = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 7)
+ .toString();
+ // System.out.println(version);
+ writeImageData(imageid, version);
+ }
+ });
+ tablemyImages.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ tablemyImages.setModel(modelMyImages);
+ tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(5).sizeWidthToFit();
+ tablemyImages.setRowSorter(rowSorterMyImages);
+
+ scrollPaneMyImage.setViewportView(tablemyImages);
+ tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null);
+
+ JScrollPane scrollPaneCoopImages = new JScrollPane();
+ JTable tableCoopImages = new JTable();
+ tableCoopImages.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ tableCoopImages.setModel(model);
+ tableCoopImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(5).sizeWidthToFit();
+
+ JScrollPane scrollPanePublicVorlagen = new JScrollPane();
+ tablePublicVorlagen = new JTable();
+ tablePublicVorlagen.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ String imageid = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 6)
+ .toString();
+ // System.out.println(imageid);
+ String version = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 7)
+ .toString();
+ // System.out.println(version);
+ writeImageData(imageid, version);
+ }
+ });
+ tablePublicVorlagen.setModel(modelPublicVorlagen);
+ tablePublicVorlagen
+ .setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+
+ tablePublicVorlagen.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(5).sizeWidthToFit();
+ tablePublicVorlagen.setRowSorter(rowSorterPublicVorlagen);
+ scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
+ tabbedPane.addTab("Vorlagen", null, scrollPanePublicVorlagen, null);
+
+ JScrollPane scrollPaneAllImages = new JScrollPane();
+ tableAllImages = new JTable();
+ tableAllImages.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+
+ String imageid = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 6)
+ .toString();
+ // System.out.println(imageid);
+ String version = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 7)
+ .toString();
+ // System.out.println(version);
+ writeImageData(imageid, version);
+
+ }
+ });
+ tableAllImages.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ tableAllImages.setModel(modelAll);
+ tableAllImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(5).sizeWidthToFit();
+ tableAllImages.setRowSorter(rowSorterAll);
+
+ scrollPaneAllImages.setViewportView(tableAllImages);
+ tabbedPane.addTab("Alle", null, scrollPaneAllImages, null);
+
+ scrollPaneCoopImages.setViewportView(tableCoopImages);
+ tabbedPane.addTab("bwLehrpool", null, scrollPaneCoopImages, null);
+ tabbedPane.setEnabledAt(3, false);
+
+ JButton btnDelete = new JButton("L\u00F6schen");
+ btnDelete.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+
+ String imageid = "";
+ String imageversion = "";
+ int eingabe;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ if (tablemyImages.getSelectedRowCount() != 0) {
+
+ // frage, soll das selektierte Daten geloescht werden?
+ eingabe = JOptionPane.showConfirmDialog(null,
+ "Wollen Sie diese Daten l\u00f6schen?",
+ "L\u00f6schen?", JOptionPane.YES_NO_OPTION);
+
+ if (eingabe == JOptionPane.YES_OPTION) {
+
+ imageid = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 6)
+ .toString();
+
+ imageversion = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 7)
+ .toString();
+
+ // TODO
+ // Image darf nur geloescht werden, wenn keine
+ // Veranstaltung mehr auf das Image verweist.
+ // Unbdingt abfragen!
+
+ try {
+ if (!client.connectedToLecture(imageid,
+ imageversion)) {
+ // System.out.println(imageid);
+ // System.out.println(imageversion);
+ try {
+ client.deleteImageServer(imageid,
+ imageversion);
+ if (client.deleteImageData(imageid,
+ imageversion)) {
+ // if (client.deleteImageServer(imageid
+ // ,imageversion)) {
+
+ DeleteImage_GUI di = new DeleteImage_GUI();
+ di.setVisible(true);
+ dispose();
+
+ /*
+ * } else {
+ *
+ * JOptionPane.showConfirmDialog(null,
+ * "Loeschen vom Server hat leider nicht geklappt!!"
+ * , imageversion,
+ * JOptionPane.OK_CANCEL_OPTION); }
+ */
+
+ } else {
+
+ JOptionPane
+ .showConfirmDialog(
+ null,
+ "L\u00f6schen von der DB hat leider nicht geklappt!!",
+ "Fehler",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ } catch (HeadlessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e.getCause() + "\n"
+ + e.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e.getCause() + "\n"
+ + e.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+ } else {
+
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Image kann nicht gel\u00f6scht werden, da mindestens eine Veranstaltung mit diesem Image verlinkt ist.",
+ "Verlinkung vorhanden",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, e.getCause()
+ + "\n" + e.getStackTrace(),
+ "Debug-Message", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+ } else if (tablePublicVorlagen.getSelectedRowCount() != 0
+ && modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 4)
+ .equals(username)) {
+
+ // frage, soll das selektierte Daten geloescht werden?
+ eingabe = JOptionPane.showConfirmDialog(null,
+ "Wollen Sie diese Daten l\u00f6schen?",
+ "L\u00f6schen?", JOptionPane.YES_NO_OPTION);
+
+ if (eingabe == JOptionPane.YES_OPTION) {
+
+ imageid = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 6)
+ .toString();
+
+ imageversion = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 7)
+ .toString();
+
+ // TODO
+ // Image darf nur geloescht werden, wenn keine
+ // Veranstaltung mehr auf das Image verweist.
+ // Unbdingt abfragen!
+
+ try {
+ if (!client.connectedToLecture(imageid,
+ imageversion)) {
+ // System.out.println(imageid);
+ // System.out.println(imageversion);
+ try {
+ client.deleteImageServer(imageid,
+ imageversion);
+ if (client.deleteImageData(imageid,
+ imageversion)) {
+ // if (client.deleteImageServer(imageid
+ // ,imageversion)) {
+
+ DeleteImage_GUI di = new DeleteImage_GUI();
+ di.setVisible(true);
+ dispose();
+
+ /*
+ * } else {
+ *
+ * JOptionPane.showConfirmDialog(null,
+ * "Loeschen vom Server hat leider nicht geklappt!!"
+ * , imageversion,
+ * JOptionPane.OK_CANCEL_OPTION); }
+ */
+
+ } else {
+
+ JOptionPane
+ .showConfirmDialog(
+ null,
+ "L\u00f6schen von der DB hat leider nicht geklappt!!",
+ "Fehler",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ } catch (HeadlessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e.getCause() + "\n"
+ + e.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e.getCause() + "\n"
+ + e.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+ } else {
+
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Image kann nicht gel\u00f6scht werden, da mindestens eine Veranstaltung mit diesem Image verlinkt ist.",
+ "Verlinkung vorhanden",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, e.getCause()
+ + "\n" + e.getStackTrace(),
+ "Debug-Message", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+ } else if (tableAllImages.getSelectedRowCount() != 0
+ && modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 4).equals(
+ username)) {
+
+ // frage, soll das selektierte Daten geloescht werden?
+ eingabe = JOptionPane.showConfirmDialog(null,
+ "Wollen Sie diese Daten l\u00f6schen?",
+ "L\u00f6schen?", JOptionPane.YES_NO_OPTION);
+
+ if (eingabe == JOptionPane.YES_OPTION) {
+
+ imageid = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 6)
+ .toString();
+
+ imageversion = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 7)
+ .toString();
+
+ // TODO
+ // Image darf nur geloescht werden, wenn keine
+ // Veranstaltung mehr auf das Image verweist.
+ // Unbdingt abfragen!
+
+ try {
+ if (!client.connectedToLecture(imageid,
+ imageversion)) {
+ // System.out.println(imageid);
+ // System.out.println(imageversion);
+ try {
+ client.deleteImageServer(imageid,
+ imageversion);
+ if (client.deleteImageData(imageid,
+ imageversion)) {
+ // if (client.deleteImageServer(imageid
+ // ,imageversion)) {
+
+ DeleteImage_GUI di = new DeleteImage_GUI();
+ di.setVisible(true);
+ dispose();
+
+ /*
+ * } else {
+ *
+ * JOptionPane.showConfirmDialog(null,
+ * "Loeschen vom Server hat leider nicht geklappt!!"
+ * , imageversion,
+ * JOptionPane.OK_CANCEL_OPTION); }
+ */
+
+ } else {
+
+ JOptionPane
+ .showConfirmDialog(
+ null,
+ "L\u00f6schen von der DB hat leider nicht geklappt!!",
+ "Fehler",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ } catch (HeadlessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e.getCause() + "\n"
+ + e.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e.getCause() + "\n"
+ + e.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+ } else {
+
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Image kann nicht gel\u00f6scht werden, da mindestens eine Veranstaltung mit diesem Image verlinkt ist.",
+ "Verlinkung vorhanden",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null, e.getCause()
+ + "\n" + e.getStackTrace(),
+ "Debug-Message", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+ } else {
+
+ JOptionPane.showMessageDialog(null,
+ "Bitte w\u00e4hlen Sie ein eigenes Image aus",
+ "Message", JOptionPane.INFORMATION_MESSAGE);
+ }
+
+ }
+ });
+ btnDelete.setBounds(449, 508, 118, 23);
+ contentPanel.add(btnDelete);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 902, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton okButton = new JButton("Zur\u00FCck");
+ okButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ // oeffnet das Hauptmen\u00FC
+ con.closeThriftConnection();
+
+ // oeffnet das Hauptmenue
+
+ MainMenue_GUI main = new MainMenue_GUI();
+ main.setVisible(true);
+ dispose();
+ }
+ });
+ okButton.setActionCommand("OK");
+ buttonPane.add(okButton);
+ getRootPane().setDefaultButton(okButton);
+ }
+ }
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 912, 1);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 912, 2);
+ getContentPane().add(separator_1);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBorder(new TitledBorder(null, "Detailinformationen",
+
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(586, 85, 316, 531);
+ getContentPane().add(panel);
+
+ JLabel lblName = new JLabel("Name:");
+ lblName.setBounds(10, 87, 130, 14);
+ panel.add(lblName);
+
+ labelName = new JLabel("");
+ labelName.setBounds(10, 102, 296, 14);
+ panel.add(labelName);
+
+ JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:");
+ lblVerantwortlicher.setBounds(10, 259, 130, 14);
+ panel.add(lblVerantwortlicher);
+
+ labelOS = new JLabel("");
+ labelOS.setBounds(10, 216, 296, 14);
+ panel.add(labelOS);
+
+ JLabel lblWeitereVerantwortliche = new JLabel("Betriebssystem:");
+ lblWeitereVerantwortliche.setBounds(10, 202, 130, 14);
+ panel.add(lblWeitereVerantwortliche);
+
+ labelVerantwortlicher = new JLabel("");
+ labelVerantwortlicher.setBounds(10, 272, 296, 14);
+ panel.add(labelVerantwortlicher);
+
+ JLabel label = new JLabel("Weitere Verantwortliche:");
+ label.setBounds(10, 284, 130, 14);
+ panel.add(label);
+
+ labelWeitereVerantwortliche = new JLabel("");
+ labelWeitereVerantwortliche.setBounds(10, 297, 296, 14);
+ panel.add(labelWeitereVerantwortliche);
+
+ labelUpdate = new JLabel("");
+ labelUpdate.setBounds(10, 245, 296, 14);
+ panel.add(labelUpdate);
+
+ JLabel lblLetztesUpdate = new JLabel("Letztes Update:");
+ lblLetztesUpdate.setBounds(10, 231, 130, 14);
+ panel.add(lblLetztesUpdate);
+
+ JLabel lblImageIstVorlage = new JLabel("Image ist Vorlage:");
+ lblImageIstVorlage.setBounds(10, 336, 130, 14);
+ panel.add(lblImageIstVorlage);
+
+ labelVorlage = new JLabel("");
+ labelVorlage.setBounds(10, 350, 296, 14);
+ panel.add(labelVorlage);
+
+ labelLizenzSoftware = new JLabel("");
+ labelLizenzSoftware.setBounds(10, 383, 296, 14);
+ panel.add(labelLizenzSoftware);
+
+ JLabel lblLizenzpflichtigeSoftware = new JLabel(
+ "Lizenzpflichtige Software:");
+ lblLizenzpflichtigeSoftware.setBounds(10, 367, 130, 14);
+ panel.add(lblLizenzpflichtigeSoftware);
+
+ JLabel lblInternet = new JLabel("Internetsperre vorhanden:");
+ lblInternet.setBounds(10, 400, 130, 14);
+ panel.add(lblInternet);
+
+ labelInternet = new JLabel("");
+ labelInternet.setBounds(10, 417, 296, 14);
+ panel.add(labelInternet);
+
+ JLabel lblEmpfehlungRam = new JLabel("Empfehlung RAM:");
+ lblEmpfehlungRam.setBounds(10, 432, 130, 14);
+ panel.add(lblEmpfehlungRam);
+
+ labelRam = new JLabel("");
+ labelRam.setBounds(10, 455, 296, 14);
+ panel.add(labelRam);
+
+ JLabel lblEmpfehlungCpu = new JLabel("Empfehlung CPU:");
+ lblEmpfehlungCpu.setBounds(10, 469, 130, 14);
+ panel.add(lblEmpfehlungCpu);
+
+ labelCPU = new JLabel("");
+ labelCPU.setBounds(10, 487, 296, 14);
+ panel.add(labelCPU);
+
+ JLabel lblTechnischeDaten = new JLabel("Technische Daten:");
+ lblTechnischeDaten.setBounds(10, 322, 296, 14);
+ panel.add(lblTechnischeDaten);
+
+ JLabel lblId = new JLabel("ID:");
+ lblId.setBounds(10, 23, 296, 14);
+ panel.add(lblId);
+
+ labelID = new JLabel("");
+ labelID.setBounds(10, 37, 296, 14);
+ panel.add(labelID);
+
+ labelVersion = new JLabel("");
+ labelVersion.setBounds(10, 73, 296, 14);
+ panel.add(labelVersion);
+
+ JLabel lblVersion = new JLabel("Version:");
+ lblVersion.setBounds(10, 57, 296, 14);
+ panel.add(lblVersion);
+
+ JLabel lblBeschreibung = new JLabel("Beschreibung:");
+ lblBeschreibung.setBounds(10, 119, 130, 14);
+ panel.add(lblBeschreibung);
+
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane.setBounds(10, 135, 296, 65);
+ panel.add(scrollPane);
+
+ textAreadesc = new JTextArea();
+ textAreadesc.setEditable(false);
+ textAreadesc.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ textAreadesc.setLineWrap(true);
+ textAreadesc.setBackground(SystemColor.menu);
+ scrollPane.setViewportView(textAreadesc);
+
+ 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);
+
+ }
+
+ // Initiale Beffuelung eines Table models
+ public DefaultTableModel initTableModel(DefaultTableModel model) {
+ List<server.Image> images;
+ try {
+ // Hole eine Liste der Images
+ images = client.getImageList();
+
+ Iterator<server.Image> i = images.iterator();
+
+ int x = 0;
+ SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+ SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
+ while (i.hasNext()) {
+
+ // System.out.println(out.format(in.parse(images.get(x).updateTime)));
+
+ // erzeuge Objekte fuer die Tabelle
+ Object[] obj = { images.get(x).getImageName(),
+ images.get(x).getLicenseRestriction(),
+ images.get(x).getOsName(),
+ images.get(x).getLectureName(),
+ images.get(x).getUserData(),
+ out.format(in.parse(images.get(x).updateTime)),
+ images.get(x).id, images.get(x).getVersion(),
+ images.get(x).getIsTemplate() };
+ // Fuege diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+ x++;
+ i.next();
+
+ }
+
+ return model;
+ } catch (TException | ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e1.getCause() + "\n" + e1.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ return model;
+ }
+
+ public void writeImageData(String id, String version) {
+ try {
+ SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+ SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
+ Map<String, String> res = client.getImageData(id, version);
+ labelName.setText(res.get("name"));
+ labelOS.setText(res.get("os"));
+ labelUpdate.setText(out.format(in.parse(res.get("lastupdate"))));
+ labelVerantwortlicher.setText(res.get("owner"));
+ labelWeitereVerantwortliche.setText("Noch nicht Verf�gbar");
+ if (res.get("template").equals("true")) {
+ labelVorlage.setText("Ja");
+ } else {
+ labelVorlage.setText("Nein");
+ }
+ if (res.get("license").equals("1")) {
+ labelLizenzSoftware.setText("Ja");
+ } else {
+ labelLizenzSoftware.setText("Nein");
+ }
+ if (res.get("internet").equals("1")) {
+ labelInternet.setText("Ja");
+ } else {
+ labelInternet.setText("Nein");
+ }
+ labelRam.setText(res.get("ram"));
+ labelCPU.setText(res.get("cpu"));
+ labelID.setText(res.get("id"));
+ labelVersion.setText(res.get("version"));
+ textAreadesc.setText(res.get("desc"));
+ } catch (TException | ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+}
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
diff --git a/dozentenmodul/src/main/java/gui/image/EditImageFreigabe_GUI.java b/dozentenmodul/src/main/java/gui/image/EditImageFreigabe_GUI.java
new file mode 100644
index 00000000..147900fe
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/EditImageFreigabe_GUI.java
@@ -0,0 +1,256 @@
+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.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.swing.ButtonGroup;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+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 util.GuiOrganizer;
+import util.OpenLinks;
+
+@SuppressWarnings("serial")
+public class EditImageFreigabe_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ private final ButtonGroup buttonGrouplicense = new ButtonGroup();
+ private final ButtonGroup buttonGroupInternet = new ButtonGroup();
+ JComboBox comboBox;
+
+ /**
+ * Create the dialog.
+ */
+ public EditImageFreigabe_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ System.exit(0);
+ }
+ });
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ setTitle("bwLehrpool Suite - Image erzeugen");
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Image Freigabe");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie.setText("W\u00E4hlen Sie bitte hier die von Ihnen gew\u00FCnschte Freigabe f\u00FCr Ihr Image aus.");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.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, "Freigabe", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 51, 557, 124);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Freigabemodus:");
+ lblNewLabel_2.setBounds(10, 55, 250, 20);
+ panel_1.add(lblNewLabel_2);
+
+ comboBox = new JComboBox();
+ comboBox.setModel(new DefaultComboBoxModel(new String[] {"Lokal (Eigene Hochschule)", "\u00D6ffentlich (Alle Hochschulen)"}));
+ comboBox.setSelectedIndex(Image.image.getShareMode());
+ comboBox.setBounds(270, 55, 250, 20);
+ panel_1.add(comboBox);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+
+ EditImageFreigabe_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("Neu");
+ lblNewLabel_1.setBounds(146, 11, 46, 14);
+ contentPanel.add(lblNewLabel_1);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton cancelButton = new JButton("Zur\u00FCck");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ Image.image.setShareMode(comboBox.getSelectedIndex());
+ EditImageTechnisch_GUI sr=new EditImageTechnisch_GUI();
+ sr.setVisible(true);
+ dispose();
+ }
+ });
+ cancelButton.setActionCommand("OK");
+ buttonPane.add(cancelButton);
+ //getRootPane().setDefaultButton(cancelButton);
+ }
+ {
+ JButton continueButton = new JButton("Weiter");
+ continueButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ Image.image.setShareMode(comboBox.getSelectedIndex());
+ PermissionEditImage_GUI ea=new PermissionEditImage_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ continueButton.setActionCommand("Cancel");
+ buttonPane.add(continueButton);
+ getRootPane().setDefaultButton(continueButton);
+ }
+ }
+
+ 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 mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(mntmAbout);
+
+ }
+}
diff --git a/dozentenmodul/src/main/java/gui/image/EditImageTechnisch_GUI.java b/dozentenmodul/src/main/java/gui/image/EditImageTechnisch_GUI.java
new file mode 100644
index 00000000..5da9259e
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/EditImageTechnisch_GUI.java
@@ -0,0 +1,518 @@
+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.List;
+
+
+import javax.swing.ButtonGroup;
+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.JPanel;
+import javax.swing.JRadioButton;
+import javax.swing.JSeparator;
+import javax.swing.JSpinner;
+import javax.swing.JTextArea;
+import javax.swing.JTextPane;
+import javax.swing.SpinnerNumberModel;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import models.Image;
+import models.Links;
+import javax.swing.JComboBox;
+
+import org.apache.thrift.TException;
+import javax.swing.JCheckBox;
+
+@SuppressWarnings("serial")
+public class EditImageTechnisch_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ JSpinner spinnerCPU;
+ JSpinner spinnerRam;
+ //JRadioButton rdbtnlicenseJa;
+ //JRadioButton rdbtnlicenseNein;
+ //JRadioButton rdbtnInternetJa;
+ //JRadioButton rdbtnInternetNein;
+ //JRadioButton radioButtonVorlageJa;
+ //JRadioButton radioButtonVorlageNein;
+ private JCheckBox chckbxIsTemplate;
+ private JCheckBox chckbxIsLicensed;
+ private JCheckBox chckbxIsInternetBlocked;
+ private final ButtonGroup buttonGrouplicense = new ButtonGroup();
+ private final ButtonGroup buttonGroupInternet = new ButtonGroup();
+ private final ButtonGroup buttonGroupVorlage = new ButtonGroup();
+ JComboBox comboBox;
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+
+ /**
+ * Create the dialog.
+ */
+ public EditImageTechnisch_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung bei Klick auf das X
+
+ System.exit(0);
+ }
+
+ });
+ // Verhindert das Vergroe�ern des Fensters
+ setResizable(false);
+
+ try {
+ // setzt das Look & Feel
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // Setzt den Titel des Fensters
+ setTitle("bwLehrpool Suite - Image bearbeiten");
+ // Zentriert das Fenster
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Eingabe technischer Daten");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("Geben Sie hier bitte einige technische Daten ein.");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 532);
+ 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 Image",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 25, 557, 167);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel(
+ "Image enth\u00E4lt lizenzpflichtige Software:");
+ lblNewLabel_2.setBounds(10, 77, 250, 20);
+ panel_1.add(lblNewLabel_2);
+
+ chckbxIsTemplate = new JCheckBox("");
+ chckbxIsTemplate.setBounds(266, 50, 97, 23);
+ panel_1.add(chckbxIsTemplate);
+
+ chckbxIsLicensed = new JCheckBox("");
+ chckbxIsLicensed.setBounds(266, 76, 97, 23);
+ panel_1.add(chckbxIsLicensed);
+
+ chckbxIsInternetBlocked = new JCheckBox("");
+ chckbxIsInternetBlocked.setBounds(266, 104, 97, 23);
+ panel_1.add(chckbxIsInternetBlocked);
+
+ //rdbtnlicenseJa = new JRadioButton("Ja");
+ //rdbtnlicenseJa.setSelected(true);
+ //buttonGrouplicense.add(rdbtnlicenseJa);
+ //rdbtnlicenseJa.setBounds(266, 76, 109, 23);
+ //panel_1.add(rdbtnlicenseJa);
+
+ //rdbtnlicenseNein = new JRadioButton("Nein");
+ //buttonGrouplicense.add(rdbtnlicenseNein);
+ //rdbtnlicenseNein.setBounds(377, 76, 53, 23);
+ //panel_1.add(rdbtnlicenseNein);
+
+
+ JLabel lblInternetIstInnerhalb = new JLabel(
+ "Internet ist innerhalb des Image gesperrt:");
+ lblInternetIstInnerhalb.setBounds(10, 105, 250, 20);
+ panel_1.add(lblInternetIstInnerhalb);
+
+ /*rdbtnInternetJa = new JRadioButton("Ja");
+ buttonGroupInternet.add(rdbtnInternetJa);
+ rdbtnInternetJa.setBounds(266, 104, 109, 23);
+ panel_1.add(rdbtnInternetJa);
+
+ rdbtnInternetNein = new JRadioButton("Nein");
+ rdbtnInternetNein.setSelected(true);
+ buttonGroupInternet.add(rdbtnInternetNein);
+ rdbtnInternetNein.setBounds(377, 104, 53, 23);
+ panel_1.add(rdbtnInternetNein);
+ */
+ JLabel label = new JLabel("Lizenzserver eintragen:");
+ label.setBounds(10, 134, 250, 20);
+ panel_1.add(label);
+
+ JButton button = new JButton("Server-Adresse...");
+ button.setEnabled(false);
+ button.setBounds(266, 133, 157, 23);
+ panel_1.add(button);
+
+ JLabel label_4 = new JLabel("Image ist eine Vorlage:");
+ label_4.setBounds(10, 51, 250, 20);
+ panel_1.add(label_4);
+
+ //radioButtonVorlageJa = new JRadioButton("Ja");
+ //buttonGroupVorlage.add(radioButtonVorlageJa);
+ //radioButtonVorlageJa.setBounds(266, 50, 41, 23);
+ //panel_1.add(radioButtonVorlageJa);
+
+ //radioButtonVorlageNein = new JRadioButton("Nein");
+ //radioButtonVorlageNein.setSelected(true);
+ //buttonGroupVorlage.add(radioButtonVorlageNein);
+ //radioButtonVorlageNein.setBounds(377, 50, 46, 23);
+ //panel_1.add(radioButtonVorlageNein);
+
+ JLabel lblBetriebssystem = new JLabel("Betriebssystem:");
+ lblBetriebssystem.setBounds(10, 26, 250, 20);
+ panel_1.add(lblBetriebssystem);
+
+ comboBox = new JComboBox();
+ try {
+ List<String> os=client.getAllOS();
+ for(int i=0;i<os.size();i++)
+ {
+ comboBox.addItem(os.get(i).toString());
+
+ }
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ System.out.println("OS Model:" + Image.image.getOS());
+ for(int i =0;i<comboBox.getItemCount();i++)
+ {
+ if(comboBox.getItemAt(i).equals(Image.image.getOS()+" bit")){
+
+ comboBox.setSelectedIndex(i);
+
+ }
+ }
+ System.out.println(comboBox.getSelectedItem().toString());
+ comboBox.setBounds(270, 26, 277, 20);
+ panel_1.add(comboBox);
+
+
+
+ if (Image.image.isVorlage() == true) {
+ //radioButtonVorlageJa.setSelected(true);
+ chckbxIsTemplate.setSelected(true);
+ } else {
+ //radioButtonVorlageNein.setSelected(true);
+ chckbxIsTemplate.setSelected(false);
+ }
+
+ if(Image.image.isInternet() == true ){
+ chckbxIsInternetBlocked.setSelected(true);
+ } else {
+ chckbxIsInternetBlocked.setSelected(false);
+ }
+
+ if (Image.image.isLicensed() == true) {
+ //rdbtnlicenseJa.setSelected(true);
+ chckbxIsLicensed.setSelected(true);
+ chckbxIsLicensed.isSelected();
+ } else {
+ //rdbtnlicenseNein.setSelected(true);
+ chckbxIsLicensed.setSelected(false);
+ }
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // Macht dieses Fenster unsichtbar und das vorhergehende Fenster
+ // sichtbar
+ EditImageTechnisch_GUI.this.setVisible(false);
+ MainMenue_GUI main = new MainMenue_GUI();
+ main.setVisible(true);
+ }
+ });
+ lblHauptmen.setForeground(Color.BLUE);
+ lblHauptmen.setBounds(10, 0, 61, 14);
+ contentPanel.add(lblHauptmen);
+
+ JLabel label_1 = new JLabel(">");
+ label_1.setBounds(69, 0, 13, 14);
+ contentPanel.add(label_1);
+
+ JLabel lblVlimage = new JLabel("Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 0, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 0, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Neu");
+ lblNewLabel_1.setBounds(146, 0, 46, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ JPanel panel_2 = new JPanel();
+ panel_2.setLayout(null);
+ panel_2.setBorder(new TitledBorder(null,
+ "Empfehlung bez\u00fcglich Ressourcen", TitledBorder.LEADING,
+ TitledBorder.TOP, null, null));
+ panel_2.setBackground(SystemColor.menu);
+ panel_2.setBounds(10, 203, 557, 329);
+ contentPanel.add(panel_2);
+
+ JTextArea txtrHinweisSolltenSie = new JTextArea();
+ txtrHinweisSolltenSie.setBackground(SystemColor.menu);
+ txtrHinweisSolltenSie.setFont(new Font("Tahoma", Font.PLAIN, 13));
+ txtrHinweisSolltenSie
+ .setText("Hinweis: Sollten Sie keine Software einsetzen, die viele Ressourcen ben\u00F6tigt,\r\nk\u00F6nnen Sie sich an den Beispielwerten orientieren.");
+ txtrHinweisSolltenSie.setBounds(10, 43, 537, 55);
+ panel_2.add(txtrHinweisSolltenSie);
+
+ JLabel lblNewLabel_3 = new JLabel(
+ "Wie viel Arbeitsspeicher empfehlen Sie f\u00FCr das Image:");
+ lblNewLabel_3.setBounds(10, 109, 280, 20);
+ panel_2.add(lblNewLabel_3);
+
+ JLabel lblMindestens = new JLabel("mindestens");
+ lblMindestens.setBounds(315, 109, 60, 20);
+ panel_2.add(lblMindestens);
+
+ spinnerRam = new JSpinner();
+ spinnerRam.setModel(new SpinnerNumberModel(1, 1, 8, 1));
+ spinnerRam.setBounds(385, 106, 29, 20);
+ spinnerRam.setValue(Image.image.getRam());
+ panel_2.add(spinnerRam);
+
+ JLabel lblGbyte = new JLabel("GByte");
+ lblGbyte.setBounds(424, 109, 46, 20);
+ panel_2.add(lblGbyte);
+
+ JTextArea txtrBeispielWindows = new JTextArea();
+ txtrBeispielWindows
+ .setText("Beispiel:\r\nWindows 7 32/64 Bit: 2 GByte\r\nLinux/Unix 32/64 Bit: 1 GByte");
+ txtrBeispielWindows.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ txtrBeispielWindows.setBackground(SystemColor.menu);
+ txtrBeispielWindows.setBounds(20, 129, 280, 55);
+ panel_2.add(txtrBeispielWindows);
+
+ JTextArea txtrBeispielWindows_1 = new JTextArea();
+ txtrBeispielWindows_1
+ .setText("Beispiel:\r\nWindows 7 32/64 Bit: 1 Kern\r\nLinux/Unix 32/64 Bit: 1 Kern");
+ txtrBeispielWindows_1.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ txtrBeispielWindows_1.setBackground(SystemColor.menu);
+ txtrBeispielWindows_1.setBounds(20, 244, 280, 55);
+ panel_2.add(txtrBeispielWindows_1);
+
+ JLabel lblWieVieleCpus = new JLabel(
+ "Wie viele CPUs empfehlen Sie f\u00FCr das Image:");
+ lblWieVieleCpus.setBounds(10, 219, 280, 20);
+ panel_2.add(lblWieVieleCpus);
+
+ JLabel label_3 = new JLabel("mindestens");
+ label_3.setBounds(315, 219, 60, 20);
+ panel_2.add(label_3);
+
+ spinnerCPU = new JSpinner();
+ spinnerCPU.setModel(new SpinnerNumberModel(1, 1, 4, 1));
+ spinnerCPU.setBounds(385, 216, 29, 20);
+ spinnerCPU.setValue(Image.image.getCpu());
+ panel_2.add(spinnerCPU);
+
+ JLabel lblKerne = new JLabel("Kerne");
+ lblKerne.setBounds(424, 219, 46, 20);
+ panel_2.add(lblKerne);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton okButton = new JButton("Zur\u00FCck");
+ okButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // Setzt die Imagewerte in das Model
+ Image.image.setCpu(Integer.valueOf(
+ spinnerCPU.getValue().toString()).intValue());
+ Image.image.setRam(Integer.valueOf(
+ spinnerRam.getValue().toString()).intValue());
+ if (chckbxIsInternetBlocked.isSelected() == true) {
+ Image.image.setInternet(true);
+ } else {
+ Image.image.setInternet(false);
+ }
+
+ if (chckbxIsLicensed.isSelected() == true) {
+ Image.image.setLicensed(true);
+ } else {
+ Image.image.setLicensed(false);
+ }
+
+ if (chckbxIsTemplate.isSelected() == true) {
+ Image.image.setVorlage(true);
+ } else {
+ Image.image.setVorlage(false);
+ }
+
+ Image.image.setOS(comboBox.getSelectedItem().toString());
+ // oeffnet das vorherige Fenster
+ EditImageAllgemein_GUI ei = new EditImageAllgemein_GUI();
+ ei.setVisible(true);
+ dispose();
+ }
+ });
+ okButton.setActionCommand("OK");
+ buttonPane.add(okButton);
+ getRootPane().setDefaultButton(okButton);
+ }
+ {
+ JButton cancelButton = new JButton("Weiter");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ Image.image.setCpu(Integer.valueOf(
+ spinnerCPU.getValue().toString()).intValue());
+ Image.image.setRam(Integer.valueOf(
+ spinnerRam.getValue().toString()).intValue());
+ if (chckbxIsInternetBlocked.isSelected() == true) {
+ Image.image.setInternet(true);
+ } else {
+ Image.image.setInternet(false);
+ }
+
+ if (chckbxIsLicensed.isSelected() == true) {
+ Image.image.setLicensed(true);
+ } else {
+ Image.image.setLicensed(false);
+ }
+
+ if (chckbxIsTemplate.isSelected() == true) {
+ Image.image.setVorlage(true);
+ } else {
+ Image.image.setVorlage(false);
+ }
+
+ Image.image.setOS(comboBox.getSelectedItem().toString());
+ System.out.println("Betriebssystem: "+Image.image.getOS()+", istVorlage: "+Image.image.isVorlage()+", Lizenzpflichtig: "+Image.image.isLicensed()+", Internetsperre: "+Image.image.isInternet()+", CPU: "+Image.image.getCpu()+", RAM: "+Image.image.getRam());
+ // oeffnet das naechste Fenster
+ EditImageFreigabe_GUI ea=new EditImageFreigabe_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ cancelButton.setActionCommand("Cancel");
+ buttonPane.add(cancelButton);
+ }
+ }
+
+ 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 mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(mntmAbout);
+
+ }
+}
diff --git a/dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java b/dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java
new file mode 100644
index 00000000..a9461bb4
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java
@@ -0,0 +1,659 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+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.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+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.JProgressBar;
+import javax.swing.JSeparator;
+import javax.swing.JTextPane;
+import javax.swing.SwingConstants;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+
+import models.Image;
+import models.Links;
+import models.SessionData;
+import models.person;
+
+import org.apache.thrift.TException;
+import org.ini4j.InvalidFileFormatException;
+import org.ini4j.Wini;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import ftp.UploadTask;
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+@SuppressWarnings("serial")
+public class FTPCreateUploader_GUI extends JFrame implements
+ PropertyChangeListener {
+
+ @SuppressWarnings("unused")
+ private JPanel contentPane;
+ private final JPanel contentPanel = new JPanel();
+ JLabel lblPath;
+ JProgressBar progressBar;
+ String host = SessionData.session.getServerAdress();
+ int port = 21;
+ server.User user;
+ String filename = "";
+ File uploadFile;
+ static String arg = "";
+ UploadTask task;
+ JLabel UpSpeed;
+ JLabel labelfertig;
+ JLabel labelfilesize;
+ JLabel labelZeit;
+ JLabel labelverbleibend;
+ JFileChooser fc;
+ long filesize;
+ double speed;
+ long bytesread;
+ boolean taskrun = false;
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ JButton finishButton = new JButton("Fertigstellen");
+ JButton btnUploadStarten = new JButton("Upload auf Server starten");
+ JButton btnZurck = new JButton("Zur\u00FCck");
+ int progress = 0; // progress of upload
+ private boolean isCurrentlyLoading = false; // currently up or downloading
+ // file
+
+ /**
+ * Create the frame.
+ */
+ public FTPCreateUploader_GUI() {
+
+ final Object[] options = { "Beenden", "Abbrechen" };
+
+ addWindowListener(new WindowAdapter() {
+
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+
+ if (taskrun == true) {
+ // check if user wants to quit.
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Aktuell ist ein Upload aktiv. Wollen Sie diesen Abbrechen und das Programm beenden?",
+ "Upload aktiv",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ con.closeThriftConnection();
+ System.exit(0);
+ }// end if choice
+ } else {
+ // no upload running, close window
+ System.exit(0);
+ }// end if taskrun
+ }// end window closing
+ });
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+ // filename=name;
+ setBackground(Color.WHITE);
+ setTitle("Dozentenmodul - Image erzeugen");
+ // Aktion die beim Schliessen durchgefuehrt werden soll
+ setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(new BorderLayout());
+ contentPanel.setBackground(SystemColor.menu);
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel, BorderLayout.CENTER);
+ contentPanel.setLayout(null);
+ {
+ JButton btnSpeicherortAuswhlen = new JButton("Image ausw\u00E4hlen");
+ btnSpeicherortAuswhlen.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ fc = new JFileChooser(ini.get("main",
+ "Letzter Uploadpfad", String.class));
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+
+ fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
+
+ fc.showOpenDialog(getParent());
+ File file = fc.getSelectedFile();
+ // check if a file is selected and exists
+ if (file != null) {
+ // file selected
+ uploadFile = file;
+ filename = uploadFile.getName();
+ lblPath.setText(file.getAbsolutePath());
+ } else {
+ // no file selected
+ lblPath.setText("");
+ }// end if
+ }
+ });
+
+ btnSpeicherortAuswhlen.setBounds(102, 124, 173, 23);
+ btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP);
+ contentPanel.add(btnSpeicherortAuswhlen);
+ }
+ lblPath = new JLabel("");
+ try {
+ Wini ini = new Wini(new File("C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ lblPath.setText(ini.get("main", "Letzter Uploadpfad", String.class));
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+
+ lblPath.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent arg0) {
+ if (lblPath.getText() == null) {
+ // wenn leer, dann upload button nicht freigeben
+ btnUploadStarten.setEnabled(false);
+ btnUploadStarten.setText("Bitte warten");
+ } else if (lblPath.getText().endsWith(".vmdk")) {
+ // wenn leer, dann upload button freigeben
+ btnUploadStarten.setEnabled(true);
+ btnUploadStarten.setText("Upload auf Server starten");
+ }
+ }
+ });
+ lblPath.setHorizontalAlignment(SwingConstants.LEFT);
+ lblPath.setBounds(102, 158, 485, 23);
+ contentPanel.add(lblPath);
+
+ btnUploadStarten.setEnabled(false);
+ btnUploadStarten.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ buttonUploadActionPerformed(arg0);
+
+ }
+ });
+
+ btnUploadStarten.setBounds(102, 200, 173, 23);
+ contentPanel.add(btnUploadStarten);
+
+ progressBar = new JProgressBar(0, 100);
+ progressBar.setStringPainted(true);
+
+ progressBar.setBounds(102, 234, 485, 30);
+ contentPanel.add(progressBar);
+
+ JLabel lblUploadgeschwindigkeit = new JLabel("Uploadgeschwindigkeit:");
+ lblUploadgeschwindigkeit.setBounds(102, 275, 141, 14);
+ contentPanel.add(lblUploadgeschwindigkeit);
+
+ JLabel label_1 = new JLabel("Fertig:");
+ label_1.setBounds(102, 325, 46, 14);
+ contentPanel.add(label_1);
+
+ labelfertig = new JLabel("0");
+ labelfertig.setHorizontalAlignment(SwingConstants.LEFT);
+ labelfertig.setBounds(183, 325, 108, 14);
+ contentPanel.add(labelfertig);
+
+ UpSpeed = new JLabel("0");
+ UpSpeed.setHorizontalAlignment(SwingConstants.LEFT);
+ UpSpeed.setBounds(374, 275, 117, 14);
+ contentPanel.add(UpSpeed);
+
+ JLabel label_4 = new JLabel("von:");
+ label_4.setBounds(318, 325, 46, 14);
+ contentPanel.add(label_4);
+
+ labelfilesize = new JLabel("0");
+ labelfilesize.setHorizontalAlignment(SwingConstants.LEFT);
+ labelfilesize.setBounds(374, 325, 117, 14);
+ contentPanel.add(labelfilesize);
+
+ JLabel label_6 = new JLabel("Verbleibend:");
+ label_6.setBounds(102, 350, 71, 14);
+ contentPanel.add(label_6);
+
+ JLabel label_7 = new JLabel("Gesch\u00E4tzte Verbleibende Zeit:");
+ label_7.setBounds(102, 300, 150, 14);
+ contentPanel.add(label_7);
+
+ labelZeit = new JLabel("0");
+ labelZeit.setHorizontalAlignment(SwingConstants.LEFT);
+ labelZeit.setBounds(374, 300, 117, 14);
+ contentPanel.add(labelZeit);
+
+ labelverbleibend = new JLabel("0");
+ labelverbleibend.setHorizontalAlignment(SwingConstants.LEFT);
+ labelverbleibend.setBounds(183, 350, 108, 14);
+ contentPanel.add(labelverbleibend);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ contentPanel.add(panel);
+
+ JLabel lblUploadIhresImage = new JLabel("Upload Ihres Image");
+ lblUploadIhresImage.setFont(new Font("Tahoma", Font.BOLD, 18));
+ lblUploadIhresImage.setBounds(10, 11, 509, 22);
+ panel.add(lblUploadIhresImage);
+
+ JTextPane txtpnFhreSieBitte = new JTextPane();
+ txtpnFhreSieBitte
+ .setText("F\u00FChre Sie bitte die folgenden 3 Schritte aus um Ihr Image auf unseren Server zu laden.");
+ txtpnFhreSieBitte.setEditable(false);
+ txtpnFhreSieBitte.setBackground(SystemColor.menu);
+ txtpnFhreSieBitte.setBounds(10, 36, 509, 32);
+ panel.add(txtpnFhreSieBitte);
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 597, 2);
+ contentPanel.add(separator);
+
+ JLabel lblNewLabel_1 = new JLabel("Hauptmen\u00FC");
+ lblNewLabel_1.setForeground(Color.BLUE);
+ lblNewLabel_1.setBounds(20, 88, 61, 20);
+ contentPanel.add(lblNewLabel_1);
+
+ JLabel label_3 = new JLabel(">");
+ label_3.setBounds(80, 91, 14, 14);
+ contentPanel.add(label_3);
+
+ JLabel lblVlimage = new JLabel("Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(91, 88, 46, 20);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_5 = new JLabel(">");
+ label_5.setBounds(139, 91, 14, 14);
+ contentPanel.add(label_5);
+
+ JLabel lblNeubearbeiten = new JLabel("Neu");
+ lblNeubearbeiten.setBounds(149, 91, 108, 14);
+ contentPanel.add(lblNeubearbeiten);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 597, 2);
+ contentPanel.add(separator_1);
+
+ JLabel lblSchritt_1 = new JLabel("Schritt 1:");
+ lblSchritt_1.setBounds(24, 128, 57, 14);
+ contentPanel.add(lblSchritt_1);
+
+ JLabel lblSchritt_2 = new JLabel("Schritt 2:");
+ lblSchritt_2.setBounds(24, 204, 57, 14);
+ contentPanel.add(lblSchritt_2);
+
+ JLabel lblSchritt_3 = new JLabel("Schritt 3:");
+ lblSchritt_3.setBounds(20, 423, 57, 14);
+ contentPanel.add(lblSchritt_3);
+
+ JLabel lblKlickenSieAuf = new JLabel(
+ "Klicken Sie auf \"Fertigstellen\".");
+ lblKlickenSieAuf.setBounds(98, 423, 241, 14);
+ contentPanel.add(lblKlickenSieAuf);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBackground(UIManager.getColor("Button.background"));
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane, BorderLayout.SOUTH);
+ {
+ finishButton.setEnabled(false);
+ finishButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ writeData();
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+
+ // check if path has content, then write to file
+ if (lblPath.getText().contains("\\") == true) {
+ System.out.println("Hole Infos aus Label: "
+ + lblPath.getText());
+ ini.put("main",
+ "Letzter Uploadpfad",
+ lblPath.getText().substring(
+ 0,
+ lblPath.getText().lastIndexOf(
+ "\\")));
+ ini.store();
+ } else {
+ System.out.println("Mache nix");
+ }// end if
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ dispose();
+ MainMenue_GUI m = new MainMenue_GUI();
+ m.setVisible(true);
+ if (taskrun == true) {
+ try {
+ client.DeleteFtpUser(user.userName);
+
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e1.getCause() + "\n"
+ + e1.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ task.cancel(true);
+ }
+
+ }
+ });
+
+ btnZurck.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // check if loading file or not
+ if (isCurrentlyLoading() == true) {
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Nicht abgeschlossene Uploads werden beendet. Trotzdem zurück gehen?",
+ "Warnung",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ // not loading files, go back one page
+ dispose();
+ PermissionCreateImage_GUI m = new PermissionCreateImage_GUI();
+ m.setVisible(true);
+
+ }// end if choice
+ } else {
+ dispose();
+ PermissionCreateImage_GUI m = new PermissionCreateImage_GUI();
+ m.setVisible(true);
+ }// end else
+ }// end action
+ });
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ finishButton.setActionCommand("Cancel");
+ buttonPane.add(finishButton);
+ }
+ }
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu menu = new JMenu("Hilfe");
+ menuBar.add(menu);
+
+ JMenuItem menuItem = new JMenuItem("FAQ");
+ menuItem.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();
+ }
+ }
+ });
+
+ menu.add(menuItem);
+
+ JMenuItem menuItem_1 = new JMenuItem("OTRS");
+ menuItem_1.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();
+ }
+ }
+ });
+ menu.add(menuItem_1);
+
+ JMenuItem mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ menu.add(mntmAbout);
+ setVisible(true);
+
+ }
+
+ private void buttonUploadActionPerformed(ActionEvent event) {
+
+ progressBar.setValue(0);
+ btnUploadStarten.setEnabled(false); // verhindert einen weiteren klick
+ btnUploadStarten.setText("Bitte warten");
+
+ try {
+ System.out.println("Getting FTP User");
+ user = client.getFtpUser();
+ System.out.println("FTP name: " + user.userName);
+ System.out.println("FTP path: " + user.path);
+ System.out.println("FTP pass: " + user.password);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ DateFormat formatter = new SimpleDateFormat("yyyMMddhhmmss");
+
+ System.out.println("Setting new Name: " + formatter.format(new Date())
+ + "_" + person.verantwortlicher.getHochschule() + "_"
+ + person.verantwortlicher.getUsername() + "_"
+ + Image.image.getImagename() + ".vmdk");
+ Image.image.setNewName(formatter.format(new Date()) + "_"
+ + person.verantwortlicher.getHochschule() + "_"
+ + person.verantwortlicher.getUsername() + "_"
+ + Image.image.getImagename() + ".vmdk");
+ System.out.println("Uploading to host: " + host);
+
+ task = new UploadTask(host, port, user.userName, user.password,
+ user.path + "temp/", uploadFile);
+
+ task.addPropertyChangeListener(this);
+ task.execute();
+ taskrun = true;
+
+ }
+
+ public void propertyChange(PropertyChangeEvent arg0) {
+ progress = 0;
+ if ("progress" == arg0.getPropertyName()) {
+ progress = (Integer) arg0.getNewValue();
+ progressBar.setValue(progress);
+
+ }
+
+ // Fertigstellen erlauben wenn upload abgeschlossen
+ if (isCurrentlyLoading() == false) {
+ // isCurrentlyLoading();
+ finishButton.setEnabled(true);
+ } else {
+ finishButton.setEnabled(false);
+ }
+
+ if ("speed" == arg0.getPropertyName()) {
+ speed = (double) arg0.getNewValue();
+ // if(speed<=1){
+
+ UpSpeed.setText(String.valueOf(speed).substring(0,
+ String.valueOf(speed).lastIndexOf(".") + 3)
+ + " MB/s");
+
+ }
+ if ("bytesread" == arg0.getPropertyName()) {
+ bytesread = (long) arg0.getNewValue();
+ labelfertig.setText((bytesread / 1024 / 1024) + " MB");
+ labelverbleibend
+ .setText(((filesize / 1024 / 1024) - (bytesread / 1024 / 1024))
+ + " MB");
+
+ labelZeit
+ .setText(String
+ .valueOf(
+ ((((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60) + 1)
+ .substring(
+ 0,
+ String.valueOf(
+ (((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60)
+ .lastIndexOf("."))
+ + " Minuten");
+
+ }
+ if ("filesize" == arg0.getPropertyName()) {
+ filesize = (long) arg0.getNewValue();
+ labelfilesize.setText((filesize / 1024 / 1024) + " MB");
+
+ }
+
+ }
+
+ public boolean writeData() {
+
+ try {
+
+ client.writeVLdata(Image.image.getImagename(),
+ Image.image.getDesc(),
+ person.verantwortlicher.getUsername(),
+ person.verantwortlicher.getVorname(),
+ person.verantwortlicher.getName(),
+ person.verantwortlicher.getHochschule(),
+ person.verantwortlicher.getEMail(),
+ person.verantwortlicher.getTel(),
+ person.verantwortlicher.getFakultaet(),
+ Image.image.isLicensed(), Image.image.isInternet(),
+ Image.image.getRam(), Image.image.getCpu(), "temp/"
+ + Image.image.getNewName(),
+ Image.image.isVorlage(), Image.image.getFilesize(),
+ Image.image.getShareMode(), Image.image.getOS());
+
+ client.startFileCopy(Image.image.getNewName());
+
+ client.writeImageRights(Image.image.getImagename(),
+ person.verantwortlicher.getUsername(),
+ person.verantwortlicher.getName(),
+ person.verantwortlicher.getVorname(),
+ person.verantwortlicher.getEMail(),
+ person.verantwortlicher.getHochschule(),
+ person.verantwortlicher.getRole());
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ return false;
+ }
+ return true;
+
+ }// end writeData()
+
+ public boolean isCurrentlyLoading() {
+ isCurrentlyLoading = false;
+
+ if (labelverbleibend.getText().equals("0 MB")
+ || labelverbleibend.getText().equals("0")) {
+ isCurrentlyLoading = false;
+ } else {
+ isCurrentlyLoading = true;
+ }
+
+ return isCurrentlyLoading;
+ }// end isCurrentlyLoading()
+
+}// end class \ No newline at end of file
diff --git a/dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java b/dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java
new file mode 100644
index 00000000..013c2774
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java
@@ -0,0 +1,590 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Cursor;
+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.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+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.JProgressBar;
+import javax.swing.JSeparator;
+import javax.swing.JTextPane;
+import javax.swing.SwingConstants;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+
+import models.Image;
+import models.Links;
+import models.SessionData;
+
+import org.apache.thrift.TException;
+import org.ini4j.InvalidFileFormatException;
+import org.ini4j.Wini;
+
+import server.Server.Client;
+import server.User;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import ftp.DownloadTask;
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+@SuppressWarnings("serial")
+public class FTPEditDownloader_GUI extends JFrame implements
+ PropertyChangeListener {
+
+ @SuppressWarnings("unused")
+ private JPanel contentPane;
+ private final JPanel contentPanel = new JPanel();
+ JLabel lblPath;
+ JLabel downspeed;
+ User user;
+ JProgressBar progressBar;
+ String host = SessionData.session.getServerAdress();
+ int port = 21;
+ String downloadFile = "";
+ static String arg = "";
+ DownloadTask task;
+ JLabel lblBytesread;
+ JLabel lblNewLabel_3;
+ JLabel labelVerbleibend;
+ JFileChooser fc;
+ long filesize;
+ double speed;
+ int progress = 0; // progress of download
+ long bytesread;
+ JLabel labelZeit;
+ boolean taskrun = false;
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ JButton btnZurck = new JButton("Zur\u00FCck");
+ JButton btnDownloadStarten = new JButton("Download starten");
+ private JLabel lblAnleitung;
+ private boolean isCurrentlyLoading = false; // currently up or downloading
+ // file
+
+ /**
+ * Create the frame.
+ */
+ public FTPEditDownloader_GUI() {
+
+ final Object[] options = { "Beenden", "Abbrechen" };
+
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if (taskrun == true) {
+ // check if user wants to quit.
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Aktuell ist ein Download aktiv. Wollen Sie diesen Abbrechen und das Programm beenden?",
+ "Upload aktiv",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ con.closeThriftConnection();
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ System.exit(0);
+ }// end if coice
+ } else {
+ // no download running, close window
+ System.exit(0);
+ }// end if taskrun
+ }// end window closing
+ });
+ setResizable(false);
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ setBackground(Color.WHITE);
+ setTitle("Dozentenmodul - Image herunterladen");
+ // Aktion die beim Schliessen durchgefuehrt werden soll
+ setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(new BorderLayout());
+ contentPanel.setBackground(SystemColor.menu);
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel, BorderLayout.CENTER);
+ contentPanel.setLayout(null);
+ {
+ JButton btnSpeicherortAuswhlen = new JButton(
+ "Speicherort ausw\u00E4hlen");
+ btnSpeicherortAuswhlen.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ System.out.println("FileChooser Pfad: "
+ + ini.get("main", "Letzter Downloadpfad",
+ String.class));
+ fc = new JFileChooser(ini.get("main",
+ "Letzter Downloadpfad", String.class));
+ fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+
+ fc.showOpenDialog(getParent());
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+
+ File dir = fc.getSelectedFile();
+ // check if directory is selected
+ if (dir != null) {
+ // is selected
+ lblPath.setText(dir.getAbsolutePath());
+ } else {
+ // no directory selected
+ lblPath.setText("");
+ }// end if
+ }
+ });
+
+ btnSpeicherortAuswhlen.setBounds(102, 124, 173, 23);
+ btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP);
+ contentPanel.add(btnSpeicherortAuswhlen);
+ }
+
+ lblPath = new JLabel("");
+ try {
+ Wini ini = new Wini(new File("C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ lblPath.setText(ini.get("main", "Letzter Downloadpfad",
+ String.class));
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ lblPath.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent arg0) {
+ if (lblPath.getText() == null) {
+ // wenn leer, dann upload button nicht freigeben
+ btnDownloadStarten.setEnabled(false);
+ btnDownloadStarten.setText("Bitte warten");
+ } else {
+ // wenn leer, dann upload button freigeben
+ btnDownloadStarten.setEnabled(true);
+ btnDownloadStarten.setText("Download starten");
+ }
+ }
+ });
+ lblPath.setBounds(102, 158, 485, 23);
+ contentPanel.add(lblPath);
+
+ btnDownloadStarten.setEnabled(false);
+ btnDownloadStarten.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ buttonDownloadActionPerformed(arg0);
+ }
+ });
+
+ btnDownloadStarten.setBounds(102, 200, 173, 23);
+ contentPanel.add(btnDownloadStarten);
+
+ progressBar = new JProgressBar(0, 100);
+ progressBar.setStringPainted(true);
+
+ progressBar.setBounds(102, 234, 485, 30);
+ contentPanel.add(progressBar);
+
+ JLabel lblDownloadgeschwindigkeit = new JLabel(
+ "Downloadgeschwindigkeit:");
+ lblDownloadgeschwindigkeit.setBounds(102, 275, 141, 14);
+ contentPanel.add(lblDownloadgeschwindigkeit);
+
+ downspeed = new JLabel("0");
+ downspeed.setBounds(374, 275, 117, 14);
+ contentPanel.add(downspeed);
+
+ JLabel lblFertig = new JLabel("Fertig:");
+ lblFertig.setBounds(102, 325, 46, 14);
+ contentPanel.add(lblFertig);
+
+ lblBytesread = new JLabel("0");
+ lblBytesread.setBounds(183, 325, 108, 14);
+ contentPanel.add(lblBytesread);
+
+ JLabel lblVon = new JLabel("von:");
+ lblVon.setBounds(318, 325, 46, 14);
+ contentPanel.add(lblVon);
+
+ lblNewLabel_3 = new JLabel("0");
+ lblNewLabel_3.setBounds(374, 325, 117, 14);
+ contentPanel.add(lblNewLabel_3);
+
+ JLabel lblMbVerbleibend = new JLabel("Verbleibend:");
+ lblMbVerbleibend.setBounds(102, 350, 71, 14);
+ contentPanel.add(lblMbVerbleibend);
+
+ labelVerbleibend = new JLabel("0");
+ labelVerbleibend.setBounds(183, 350, 108, 14);
+ contentPanel.add(labelVerbleibend);
+
+ JLabel lblGeschtzteVerbleibendeZeit = new JLabel(
+ "Gesch\u00E4tzte Verbleibende Zeit:");
+ lblGeschtzteVerbleibendeZeit.setBounds(102, 300, 150, 14);
+ contentPanel.add(lblGeschtzteVerbleibendeZeit);
+
+ labelZeit = new JLabel("0");
+ labelZeit.setBounds(374, 300, 117, 14);
+ contentPanel.add(labelZeit);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 24, 577, 57);
+ contentPanel.add(panel);
+
+ JLabel lblImageDownloader = new JLabel("Image Downloader");
+ lblImageDownloader.setFont(new Font("Tahoma", Font.BOLD, 18));
+ lblImageDownloader.setBounds(10, 11, 509, 22);
+ panel.add(lblImageDownloader);
+
+ JTextPane txtpnWhlenSieEinen = new JTextPane();
+ txtpnWhlenSieEinen
+ .setText("W\u00E4hlen Sie einen Ort aus, um das von Ihnen gw\u00E4hlte Image erunter zu laden.");
+ txtpnWhlenSieEinen.setEditable(false);
+ txtpnWhlenSieEinen.setBackground(SystemColor.menu);
+ txtpnWhlenSieEinen.setBounds(10, 36, 509, 32);
+ panel.add(txtpnWhlenSieEinen);
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 88, 597, 2);
+ contentPanel.add(separator);
+
+ JLabel label_1 = new JLabel("Hauptmen\u00FC");
+ label_1.setForeground(Color.BLUE);
+ label_1.setBounds(20, 92, 61, 20);
+ contentPanel.add(label_1);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(80, 95, 14, 14);
+ contentPanel.add(label_2);
+
+ JLabel label_3 = new JLabel("Image");
+ label_3.setForeground(Color.BLUE);
+ label_3.setBounds(91, 92, 46, 20);
+ contentPanel.add(label_3);
+
+ JLabel label_4 = new JLabel(">");
+ label_4.setBounds(139, 95, 14, 14);
+ contentPanel.add(label_4);
+
+ JLabel label_5 = new JLabel("Neu/Bearbeiten");
+ label_5.setBounds(149, 95, 108, 14);
+ contentPanel.add(label_5);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(-10, 648, 597, 2);
+ contentPanel.add(separator_1);
+
+ JLabel lblSchritt = new JLabel("Schritt 1:");
+ lblSchritt.setBounds(24, 128, 57, 14);
+ contentPanel.add(lblSchritt);
+
+ JLabel lblSchritt_1 = new JLabel("Schritt 2:");
+ lblSchritt_1.setBounds(24, 204, 57, 14);
+ contentPanel.add(lblSchritt_1);
+
+ JLabel lblSchritt_3 = new JLabel("Schritt 3:");
+ lblSchritt_3.setBounds(20, 423, 57, 14);
+ contentPanel.add(lblSchritt_3);
+
+ JLabel lblKlickenSieAuf = new JLabel(
+ "Klicken Sie auf \"Fertigstellen\".");
+ lblKlickenSieAuf.setBounds(102, 423, 241, 14);
+ contentPanel.add(lblKlickenSieAuf);
+
+ JMenuBar menuBar = new JMenuBar();
+ menuBar.setBounds(0, 0, 597, 21);
+ contentPanel.add(menuBar);
+
+ JMenu menu = new JMenu("Hilfe");
+ menuBar.add(menu);
+
+ JMenuItem menuItem = new JMenuItem("FAQ");
+ menuItem.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();
+ }
+ }
+ });
+
+ menu.add(menuItem);
+
+ JMenuItem menuItem_1 = new JMenuItem("OTRS");
+ menuItem_1.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();
+ }
+ }
+ });
+
+ menu.add(menuItem_1);
+
+ JMenuItem mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ menu.add(mntmAbout);
+
+ lblAnleitung = new JLabel(
+ "<HTML><U>Anleitung zum erstellen einer virtuellen Maschine herunterladen</U></HTML>");
+ lblAnleitung.setForeground(Color.BLUE);
+ lblAnleitung.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ OpenLinks open = new OpenLinks();
+
+ URI anleitung;
+ try {
+ anleitung = new URI(Links.getAnleitungVMDK());
+ open.openWebpage(anleitung);
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+ lblAnleitung.setBounds(102, 448, 311, 14);
+ contentPanel.add(lblAnleitung);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBackground(UIManager.getColor("Button.background"));
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane, BorderLayout.SOUTH);
+ {
+ btnZurck.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // check if loading file or not
+ if (isCurrentlyLoading() == true) {
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Nicht abgeschlossene Uploads werden beendet. Trotzdem zurück gehen?",
+ "Warnung",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+ task.cancel(true);
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ ini.put("main", "Letzter Downloadpfad",
+ lblPath.getText());
+ ini.store();
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ // go back one page
+ SearchEditImage_GUI se = new SearchEditImage_GUI();
+ se.setVisible(true);
+ dispose();
+ }// end choice
+
+ } else {
+
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ ini.put("main", "Letzter Downloadpfad",
+ lblPath.getText());
+ ini.store();
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ // go back one page
+ SearchEditImage_GUI se = new SearchEditImage_GUI();
+ se.setVisible(true);
+ dispose();
+
+ }// end else
+
+ }
+ });
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ }
+ }
+ setVisible(true);
+
+ }
+
+ private void buttonDownloadActionPerformed(ActionEvent event) {
+
+ progressBar.setValue(0);
+ btnDownloadStarten.setEnabled(false); // verhindert schnellen zweiten
+ // Klick
+ btnDownloadStarten.setText("Bitte warten");
+ try {
+ user = client.getFtpUser();
+
+ downloadFile = user.path
+ + "/"
+ + client.getPathOfImage(Image.image.getImageId(),
+ Image.image.getVersion());
+
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+ task = new DownloadTask(host, port, user.userName, user.password,
+ downloadFile, lblPath.getText());
+ task.addPropertyChangeListener(this);
+ task.execute();
+ taskrun = true;
+
+ }
+
+ public void propertyChange(PropertyChangeEvent arg0) {
+
+ progress = 0;
+ if ("progress" == arg0.getPropertyName()) {
+ progress = (Integer) arg0.getNewValue();
+ progressBar.setValue(progress);
+ }
+
+ if ("speed" == arg0.getPropertyName()) {
+ speed = (double) arg0.getNewValue();
+
+ downspeed.setText(String.valueOf(speed).substring(0,
+ String.valueOf(speed).lastIndexOf(".") + 3)
+ + " MB/s");
+
+ }
+ if ("bytesread" == arg0.getPropertyName()) {
+ bytesread = (long) arg0.getNewValue();
+ lblBytesread.setText((bytesread / 1024 / 1024) + " MB");
+ labelVerbleibend
+ .setText(((filesize / 1024 / 1024) - (bytesread / 1024 / 1024))
+ + " MB");
+
+ labelZeit
+ .setText(String
+ .valueOf(
+ ((((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60) + 1)
+ .substring(
+ 0,
+ String.valueOf(
+ (((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60)
+ .lastIndexOf("."))
+ + " Minuten");
+
+ }
+ if ("filesize" == arg0.getPropertyName()) {
+ filesize = (long) arg0.getNewValue();
+ lblNewLabel_3.setText((filesize / 1024 / 1024) + " MB");
+
+ }
+
+ }// end PropertyChange()
+
+ public boolean isCurrentlyLoading() {
+ isCurrentlyLoading = false;
+
+ if (labelVerbleibend.getText().equals("0 MB") || labelVerbleibend.getText().equals("0")) {
+ isCurrentlyLoading = false;
+ } else {
+ isCurrentlyLoading = true;
+ }
+ System.out.println("isCurrentlyLoading="+isCurrentlyLoading);
+ return isCurrentlyLoading;
+ }// end isCurrentlyLoading()
+
+}// end class
diff --git a/dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java b/dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java
new file mode 100644
index 00000000..5d679ea5
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java
@@ -0,0 +1,664 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+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.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+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.JProgressBar;
+import javax.swing.JSeparator;
+import javax.swing.JTextPane;
+import javax.swing.SwingConstants;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+
+import models.Image;
+import models.Links;
+import models.SessionData;
+import models.person;
+
+import org.apache.thrift.TException;
+import org.ini4j.InvalidFileFormatException;
+import org.ini4j.Wini;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import ftp.UploadTask;
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+@SuppressWarnings("serial")
+public class FTPEditUploader_GUI extends JFrame implements
+ PropertyChangeListener {
+
+ @SuppressWarnings("unused")
+ private JPanel contentPane;
+ private final JPanel contentPanel = new JPanel();
+ JLabel lblPath;
+ JProgressBar progressBar;
+ String host = SessionData.session.getServerAdress();
+ int port = 21;
+ server.User user;
+ String filename = "";
+ File uploadFile;
+ static String arg = "";
+ UploadTask task;
+ JLabel UpSpeed;
+ JLabel labelfertig;
+ JLabel labelfilesize;
+ JLabel labelZeit;
+ JLabel labelverbleibend;
+ JFileChooser fc;
+ long filesize;
+ double speed;
+ long bytesread;
+ boolean fileupload = false;
+ boolean taskrun = false;
+ int progress = 0;
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ JButton btnUploadStarten = new JButton("Upload auf Server starten");
+ JButton btnSpeicherortAuswhlen = new JButton("Image ausw\u00E4hlen");
+ JButton finishButton = new JButton("Fertigstellen");
+ JButton btnZurck = new JButton("Zur\u00FCck");
+ private boolean isCurrentlyLoading = false; // currently up or downloading
+ // file
+
+ /**
+ * Create the frame.
+ */
+ public FTPEditUploader_GUI() {
+
+ final Object[] options = { "Beenden", "Abbrechen" };
+
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+
+ if (taskrun == true) {
+ // check if user wants to quit.
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Aktuell ist ein Upload aktiv. Wollen Sie diesen Abbrechen und das Programm beenden?",
+ "Upload aktiv",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ con.closeThriftConnection();
+ System.exit(0);
+ }// end if choice
+ } else {
+ // no upload running, close window
+ System.exit(0);
+ }// end if taskrun
+ }// end window closing
+ });
+ setResizable(false);
+ // Aktion die beim Schliessen durchgefuehrt werden soll
+ setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ // filename=name;
+ setBackground(Color.WHITE);
+ setTitle("Dozentenmodul - Image bearbeiten");
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(new BorderLayout());
+ contentPanel.setBackground(SystemColor.menu);
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel, BorderLayout.CENTER);
+ contentPanel.setLayout(null);
+ {
+
+ btnSpeicherortAuswhlen.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ fc = new JFileChooser(ini.get("main",
+ "Letzter Uploadpfad", String.class));
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+
+ fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
+
+ fc.showOpenDialog(getParent());
+ File file = fc.getSelectedFile();
+ // check if a file is selected and exists
+ if (file != null) {
+ // file selected
+ uploadFile = file;
+ filename = uploadFile.getName();
+ lblPath.setText(file.getAbsolutePath());
+ } else {
+ // no file selected
+ lblPath.setText("");
+ }// end if
+ }
+ });
+
+ btnSpeicherortAuswhlen.setBounds(102, 124, 173, 23);
+ btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP);
+ contentPanel.add(btnSpeicherortAuswhlen);
+ }
+
+ lblPath = new JLabel("");
+ try {
+ Wini ini = new Wini(new File("C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ lblPath.setText(ini.get("main", "Letzter Uploadpfad", String.class));
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ lblPath.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent arg0) {
+ if (lblPath.getText().isEmpty()) {
+ // wenn leer, dann upload button nicht freigeben
+ btnUploadStarten.setEnabled(false);
+ btnUploadStarten.setText("Bitte warten");
+ } else if (lblPath.getText().endsWith(".vmdk")) {
+ // wenn leer, dann upload button freigeben
+ btnUploadStarten.setEnabled(true);
+ btnUploadStarten.setText("Upload auf Server starten");
+ }
+ }
+ });
+ lblPath.setBounds(102, 158, 485, 23);
+ contentPanel.add(lblPath);
+
+ btnUploadStarten.setEnabled(false);
+ btnUploadStarten.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ buttonUploadActionPerformed(arg0);
+
+ }
+ });
+
+ btnUploadStarten.setBounds(102, 200, 173, 23);
+ contentPanel.add(btnUploadStarten);
+
+ progressBar = new JProgressBar(0, 100);
+ progressBar.setStringPainted(true);
+
+ progressBar.setBounds(102, 234, 485, 30);
+ contentPanel.add(progressBar);
+
+ JLabel lblUploadgeschwindigkeit = new JLabel("Uploadgeschwindigkeit:");
+ lblUploadgeschwindigkeit.setBounds(102, 275, 141, 14);
+ contentPanel.add(lblUploadgeschwindigkeit);
+
+ JLabel label_1 = new JLabel("Fertig:");
+ label_1.setBounds(102, 325, 46, 14);
+ contentPanel.add(label_1);
+
+ labelfertig = new JLabel("0");
+ labelfertig.setBounds(183, 325, 108, 14);
+ contentPanel.add(labelfertig);
+
+ UpSpeed = new JLabel("0");
+ UpSpeed.setBounds(374, 275, 117, 14);
+ contentPanel.add(UpSpeed);
+
+ JLabel label_4 = new JLabel("von:");
+ label_4.setBounds(318, 325, 46, 14);
+ contentPanel.add(label_4);
+
+ labelfilesize = new JLabel("0");
+ labelfilesize.setBounds(374, 325, 117, 14);
+ contentPanel.add(labelfilesize);
+
+ JLabel label_6 = new JLabel("Verbleibend:");
+ label_6.setBounds(102, 350, 71, 14);
+ contentPanel.add(label_6);
+
+ JLabel label_7 = new JLabel("Gesch\u00E4tzte Verbleibende Zeit:");
+ label_7.setBounds(102, 300, 150, 14);
+ contentPanel.add(label_7);
+
+ labelZeit = new JLabel("0");
+ labelZeit.setBounds(374, 300, 117, 14);
+ contentPanel.add(labelZeit);
+
+ labelverbleibend = new JLabel("0");
+ labelverbleibend.setBounds(183, 350, 108, 14);
+ contentPanel.add(labelverbleibend);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ contentPanel.add(panel);
+
+ JLabel lblUploadIhresImage = new JLabel("Upload Ihres Image");
+ lblUploadIhresImage.setFont(new Font("Tahoma", Font.BOLD, 18));
+ lblUploadIhresImage.setBounds(10, 11, 509, 22);
+ panel.add(lblUploadIhresImage);
+
+ JTextPane txtpnFhreSieBitte = new JTextPane();
+ txtpnFhreSieBitte
+ .setText("F\u00FChre Sie bitte die folgenden 3 Schritte aus um Ihr Image auf unseren Server zu laden.");
+ txtpnFhreSieBitte.setEditable(false);
+ txtpnFhreSieBitte.setBackground(SystemColor.menu);
+ txtpnFhreSieBitte.setBounds(10, 36, 509, 32);
+ panel.add(txtpnFhreSieBitte);
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 597, 2);
+ contentPanel.add(separator);
+
+ JLabel lblNewLabel_1 = new JLabel("Hauptmen\u00FC");
+ lblNewLabel_1.setForeground(Color.BLUE);
+ lblNewLabel_1.setBounds(20, 88, 61, 20);
+ contentPanel.add(lblNewLabel_1);
+
+ JLabel label_3 = new JLabel(">");
+ label_3.setBounds(80, 91, 14, 14);
+ contentPanel.add(label_3);
+
+ JLabel lblVlimage = new JLabel("Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(91, 88, 46, 20);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_5 = new JLabel(">");
+ label_5.setBounds(139, 91, 14, 14);
+ contentPanel.add(label_5);
+
+ JLabel lblNeubearbeiten = new JLabel("Bearbeiten");
+ lblNeubearbeiten.setBounds(149, 91, 108, 14);
+ contentPanel.add(lblNeubearbeiten);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 597, 2);
+ contentPanel.add(separator_1);
+
+ JLabel lblSchritt_1 = new JLabel("Schritt 1:");
+ lblSchritt_1.setBounds(24, 128, 57, 14);
+ contentPanel.add(lblSchritt_1);
+
+ JLabel lblSchritt_2 = new JLabel("Schritt 2:");
+ lblSchritt_2.setBounds(24, 204, 57, 14);
+ contentPanel.add(lblSchritt_2);
+
+ JLabel label = new JLabel("Schritt 3:");
+ label.setBounds(20, 423, 57, 14);
+ contentPanel.add(label);
+
+ JLabel label_2 = new JLabel("Klicken Sie auf \"Fertigstellen\".");
+ label_2.setBounds(98, 423, 241, 14);
+ contentPanel.add(label_2);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBackground(UIManager.getColor("Button.background"));
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane, BorderLayout.SOUTH);
+ {
+
+ // finishButton.setEnabled(false);
+ finishButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ updateData();
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+
+ // check if path has content, then write to file
+ if (lblPath.getText().contains("\\") == true) {
+ System.out.println("Hole Infos aus Label: "
+ + lblPath.getText());
+ ini.put("main",
+ "Letzter Uploadpfad",
+ lblPath.getText().substring(
+ 0,
+ lblPath.getText().lastIndexOf(
+ "\\")));
+ ini.store();
+ } else {
+ System.out.println("Mache nix");
+ }// end if
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ dispose();
+ MainMenue_GUI m = new MainMenue_GUI();
+ m.setVisible(true);
+
+ if (taskrun == true) {
+ try {
+ client.DeleteFtpUser(user.userName);
+
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ JOptionPane.showMessageDialog(
+ null,
+ e1.getCause() + "\n"
+ + e1.getStackTrace(),
+ "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ task.cancel(true);
+ }
+
+ }
+ });
+ btnZurck.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+
+ // check if loading file or not
+ if (isCurrentlyLoading() == true) {
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Nicht abgeschlossene Uploads werden beendet. Trotzdem zurück gehen?",
+ "Warnung",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ // not loading files, go back one page
+ dispose();
+ PermissionEditImage_GUI ei = new PermissionEditImage_GUI();
+ ei.setVisible(true);
+
+ }// end if coice
+ } else {
+ dispose();
+ PermissionEditImage_GUI ei = new PermissionEditImage_GUI();
+ ei.setVisible(true);
+ }// end else
+ }// end action
+ });
+
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ finishButton.setActionCommand("Cancel");
+ buttonPane.add(finishButton);
+ }
+ }
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu menu = new JMenu("Hilfe");
+ menuBar.add(menu);
+
+ JMenuItem menuItem = new JMenuItem("FAQ");
+ menuItem.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();
+ }
+
+ }
+ });
+
+ menu.add(menuItem);
+
+ JMenuItem menuItem_1 = new JMenuItem("OTRS");
+ menuItem_1.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();
+ }
+
+ }
+ });
+
+ menu.add(menuItem_1);
+
+ JMenuItem mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ menu.add(mntmAbout);
+ setVisible(true);
+
+ }
+
+ private void buttonUploadActionPerformed(ActionEvent event) {
+ fileupload = true;
+ progressBar.setValue(0);
+ btnUploadStarten.setEnabled(false); // verhindert einen weiteren klick
+ btnUploadStarten.setText("Bitte warten");
+
+ try {
+ user = client.getFtpUser();
+ System.out.println("FTP name: " + user.userName);
+ System.out.println("FTP path: " + user.path);
+ System.out.println("FTP pass: " + user.password);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ DateFormat formatter = new SimpleDateFormat("yyyMMddhhmmss");
+
+ System.out.println("Setting new Name: " + formatter.format(new Date())
+ + "_" + person.verantwortlicher.getHochschule() + "_"
+ + person.verantwortlicher.getUsername() + "_"
+ + Image.image.getImagename() + ".vmdk");
+ Image.image.setNewName(formatter.format(new Date()) + "_"
+ + person.verantwortlicher.getHochschule() + "_"
+ + person.verantwortlicher.getUsername() + "_"
+ + Image.image.getImagename() + ".vmdk");
+ task = new UploadTask(host, port, user.userName, user.password,
+ user.path + "temp/", uploadFile);
+
+ task.addPropertyChangeListener(this);
+ task.execute();
+ taskrun = true;
+
+ }
+
+ public void propertyChange(PropertyChangeEvent arg0) {
+ // set progressbar
+ if ("progress" == arg0.getPropertyName()) {
+ progress = (Integer) arg0.getNewValue();
+ progressBar.setValue(progress);
+ }
+
+ // Fertigstellen erlauben wenn upload abgeschlossen
+ if (isCurrentlyLoading() == true) {
+ finishButton.setEnabled(false);
+ } else {
+ finishButton.setEnabled(true);
+ }
+
+ if ("speed" == arg0.getPropertyName()) {
+ speed = (double) arg0.getNewValue();
+ // if(speed<=1){
+
+ UpSpeed.setText(String.valueOf(speed).substring(0,
+ String.valueOf(speed).lastIndexOf(".") + 3)
+ + " MB/s");
+
+ }
+ if ("bytesread" == arg0.getPropertyName()) {
+ bytesread = (long) arg0.getNewValue();
+ labelfertig.setText((bytesread / 1024 / 1024) + " MB");
+ labelverbleibend
+ .setText(((filesize / 1024 / 1024) - (bytesread / 1024 / 1024))
+ + " MB");
+
+ labelZeit
+ .setText(String
+ .valueOf(
+ ((((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60) + 1)
+ .substring(
+ 0,
+ String.valueOf(
+ (((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60)
+ .lastIndexOf("."))
+ + " Minuten");
+
+ }
+ if ("filesize" == arg0.getPropertyName()) {
+ filesize = (long) arg0.getNewValue();
+ labelfilesize.setText((filesize / 1024 / 1024) + " MB");
+
+ }
+
+ }
+
+ public boolean updateData() {
+
+ try {
+ System.out.println("NewName=" + Image.image.getNewName());
+ System.out.println("OldName=" + Image.image.getImagename());
+ if (Image.image.getNewName() != null) {
+ client.updateImageData(Image.image.getImagename(),
+ Image.image.getImagename(), Image.image.getDesc(),
+ Image.image.getImagepath(), Image.image.isLicensed(),
+ Image.image.isInternet(), Image.image.getRam(),
+ Image.image.getCpu(), Image.image.getImageId(),
+ Image.image.getVersion(), Image.image.isVorlage(),
+ Image.image.getFilesize(), Image.image.getShareMode(),
+ Image.image.getOS());
+ if (fileupload == true) {
+ client.startFileCopy(Image.image.getNewName());
+ }
+
+ } else {
+
+ client.updateImageData(Image.image.getImagename(),
+ Image.image.getImagename(), Image.image.getDesc(),
+ "temp/" + Image.image.getNewName(),
+ Image.image.isLicensed(), Image.image.isInternet(),
+ Image.image.getRam(), Image.image.getCpu(),
+ Image.image.getImageId(), Image.image.getVersion(),
+ Image.image.isVorlage(), Image.image.getFilesize(),
+ Image.image.getShareMode(), Image.image.getOS());
+
+ if (fileupload == true) {
+ client.startFileCopy(Image.image.getNewName());
+ }
+ }
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ return false;
+ }
+ return true;
+
+ }
+
+ public boolean isCurrentlyLoading() {
+ isCurrentlyLoading = false;
+
+ if (labelverbleibend.getText().equals("0 MB")
+ || labelverbleibend.getText().equals("0")) {
+ isCurrentlyLoading = false;
+ } else {
+ isCurrentlyLoading = true;
+ }
+ return isCurrentlyLoading;
+ }// end isCurrentlyLoading()
+
+}// end class \ No newline at end of file
diff --git a/dozentenmodul/src/main/java/gui/image/FTPSearchDownloader_GUI.java b/dozentenmodul/src/main/java/gui/image/FTPSearchDownloader_GUI.java
new file mode 100644
index 00000000..c3041e41
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/FTPSearchDownloader_GUI.java
@@ -0,0 +1,635 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+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.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+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.JProgressBar;
+import javax.swing.JSeparator;
+import javax.swing.JTextPane;
+import javax.swing.SwingConstants;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+
+import models.Image;
+import models.Links;
+import models.SessionData;
+
+import org.apache.thrift.TException;
+import org.ini4j.InvalidFileFormatException;
+import org.ini4j.Wini;
+
+import server.Server.Client;
+import server.User;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import ftp.DownloadTask;
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+@SuppressWarnings("serial")
+public class FTPSearchDownloader_GUI extends JFrame implements
+ PropertyChangeListener {
+
+ @SuppressWarnings("unused")
+ private JPanel contentPane;
+ private final JPanel contentPanel = new JPanel();
+ JLabel lblPath;
+ JLabel downspeed;
+ User user;
+ JProgressBar progressBar;
+ String host = SessionData.session.getServerAdress();
+ int port = 21;
+ String downloadFile = "";
+ static String arg = "";
+ DownloadTask task;
+ JLabel lblBytesread;
+ JLabel lblNewLabel_3;
+ JLabel labelVerbleibend;
+ JFileChooser fc;
+ long filesize;
+ double speed;
+ int progress = 0; // progress of download
+ long bytesread;
+ JLabel labelZeit;
+ boolean taskrun = false;
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ JButton btnZurck = new JButton("Zur\u00FCck");
+ JButton btnDownloadStarten = new JButton("Download starten");
+ JButton btnMainMenu = new JButton("Hauptmen\u00FC");
+ private JLabel lblAnleitung;
+ private boolean isCurrentlyLoading = false; // currently up or downloading
+ // file
+
+ /**
+ * Create the frame.
+ */
+ public FTPSearchDownloader_GUI() {
+
+ final Object[] options = { "Beenden", "Abbrechen" };
+
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if (taskrun == true) {
+ // check if user wants to quit.
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Aktuell ist ein Download aktiv. Wollen Sie diesen Abbrechen und das Programm beenden?",
+ "Upload aktiv",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+
+ try {
+ client.DeleteFtpUser(user.userName);
+ con.closeThriftConnection();
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+
+ System.exit(0);
+ }// end if choice
+ } else {
+ // no download running, close window
+ System.exit(0);
+ }// end if taskrun
+ }// end window closing
+ });
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ setBackground(Color.WHITE);
+ setTitle("Dozentenmodul - Image herunterladen");
+ // Aktion die beim Schliessen durchgefuehrt werden soll
+ setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(new BorderLayout());
+ contentPanel.setBackground(SystemColor.menu);
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel, BorderLayout.CENTER);
+ contentPanel.setLayout(null);
+ {
+ JButton btnSpeicherortAuswhlen = new JButton(
+ "Speicherort ausw\u00E4hlen");
+ btnSpeicherortAuswhlen.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ System.out.println("FileChooser Pfad: "
+ + ini.get("main", "Letzter Downloadpfad",
+ String.class));
+ fc = new JFileChooser(ini.get("main",
+ "Letzter Downloadpfad", String.class));
+ fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+
+ fc.showOpenDialog(getParent());
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+
+ File dir = fc.getSelectedFile();
+ // check if directory is selected
+ if (dir != null) {
+ // is selected
+ lblPath.setText(dir.getAbsolutePath());
+ } else {
+ // no directory selected
+ lblPath.setText("");
+ }// end if
+ }
+ });
+
+ btnSpeicherortAuswhlen.setBounds(102, 124, 173, 23);
+ btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP);
+ contentPanel.add(btnSpeicherortAuswhlen);
+ }
+
+ lblPath = new JLabel("");
+ try {
+ Wini ini = new Wini(new File("C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ lblPath.setText(ini.get("main", "Letzter Downloadpfad",
+ String.class));
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ lblPath.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent arg0) {
+ if (lblPath.getText() == null) {
+ // wenn leer, dann upload button nicht freigeben
+ btnDownloadStarten.setEnabled(false);
+ btnDownloadStarten.setText("Bitte warten");
+ } else {
+ // wenn leer, dann upload button nicht freigeben
+ btnDownloadStarten.setEnabled(true);
+ btnDownloadStarten.setText("Download starten");
+ }
+ }
+ });
+ lblPath.setBounds(102, 158, 485, 23);
+ contentPanel.add(lblPath);
+
+ btnDownloadStarten.setEnabled(false);
+ btnDownloadStarten.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ buttonDownloadActionPerformed(arg0);
+ }
+ });
+
+ btnDownloadStarten.setBounds(102, 200, 173, 23);
+ contentPanel.add(btnDownloadStarten);
+
+ progressBar = new JProgressBar(0, 100);
+ progressBar.setStringPainted(true);
+
+ progressBar.setBounds(102, 234, 485, 30);
+ contentPanel.add(progressBar);
+
+ JLabel lblDownloadgeschwindigkeit = new JLabel(
+ "Downloadgeschwindigkeit:");
+ lblDownloadgeschwindigkeit.setBounds(102, 275, 141, 14);
+ contentPanel.add(lblDownloadgeschwindigkeit);
+
+ downspeed = new JLabel("0");
+ downspeed.setBounds(374, 275, 117, 14);
+ contentPanel.add(downspeed);
+
+ JLabel lblFertig = new JLabel("Fertig:");
+ lblFertig.setBounds(102, 325, 46, 14);
+ contentPanel.add(lblFertig);
+
+ lblBytesread = new JLabel("0");
+ lblBytesread.setBounds(183, 325, 108, 14);
+ contentPanel.add(lblBytesread);
+
+ JLabel lblVon = new JLabel("von:");
+ lblVon.setBounds(318, 325, 46, 14);
+ contentPanel.add(lblVon);
+
+ lblNewLabel_3 = new JLabel("0");
+ lblNewLabel_3.setBounds(374, 325, 117, 14);
+ contentPanel.add(lblNewLabel_3);
+
+ JLabel lblMbVerbleibend = new JLabel("Verbleibend:");
+ lblMbVerbleibend.setBounds(102, 350, 71, 14);
+ contentPanel.add(lblMbVerbleibend);
+
+ labelVerbleibend = new JLabel("0");
+ labelVerbleibend.setBounds(183, 350, 108, 14);
+ contentPanel.add(labelVerbleibend);
+
+ JLabel lblGeschtzteVerbleibendeZeit = new JLabel(
+ "Gesch\u00E4tzte Verbleibende Zeit:");
+ lblGeschtzteVerbleibendeZeit.setBounds(102, 300, 150, 14);
+ contentPanel.add(lblGeschtzteVerbleibendeZeit);
+
+ labelZeit = new JLabel("0");
+ labelZeit.setBounds(374, 300, 117, 14);
+ contentPanel.add(labelZeit);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 24, 577, 57);
+ contentPanel.add(panel);
+
+ JLabel lblImageDownloader = new JLabel("Image Downloader");
+ lblImageDownloader.setFont(new Font("Tahoma", Font.BOLD, 18));
+ lblImageDownloader.setBounds(10, 11, 509, 22);
+ panel.add(lblImageDownloader);
+
+ JTextPane txtpnWhlenSieEinen = new JTextPane();
+ txtpnWhlenSieEinen
+ .setText("W\u00E4hlen Sie einen Ort aus, um das von Ihnen gw\u00E4hlte Image erunter zu laden.");
+ txtpnWhlenSieEinen.setEditable(false);
+ txtpnWhlenSieEinen.setBackground(SystemColor.menu);
+ txtpnWhlenSieEinen.setBounds(10, 36, 509, 32);
+ panel.add(txtpnWhlenSieEinen);
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 88, 597, 2);
+ contentPanel.add(separator);
+
+ JLabel label_1 = new JLabel("Hauptmen\u00FC");
+ label_1.setForeground(Color.BLUE);
+ label_1.setBounds(20, 92, 61, 20);
+ contentPanel.add(label_1);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(80, 95, 14, 14);
+ contentPanel.add(label_2);
+
+ JLabel label_3 = new JLabel("Image");
+ label_3.setForeground(Color.BLUE);
+ label_3.setBounds(91, 92, 46, 20);
+ contentPanel.add(label_3);
+
+ JLabel label_4 = new JLabel(">");
+ label_4.setBounds(139, 95, 14, 14);
+ contentPanel.add(label_4);
+
+ JLabel label_5 = new JLabel("Neu/Bearbeiten");
+ label_5.setBounds(149, 95, 108, 14);
+ contentPanel.add(label_5);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(-10, 648, 597, 2);
+ contentPanel.add(separator_1);
+
+ JLabel lblSchritt = new JLabel("Schritt 1:");
+ lblSchritt.setBounds(24, 128, 57, 14);
+ contentPanel.add(lblSchritt);
+
+ JLabel lblSchritt_1 = new JLabel("Schritt 2:");
+ lblSchritt_1.setBounds(24, 204, 57, 14);
+ contentPanel.add(lblSchritt_1);
+
+ JLabel lblSchritt_3 = new JLabel("Schritt 3:");
+ lblSchritt_3.setBounds(20, 423, 57, 14);
+ contentPanel.add(lblSchritt_3);
+
+ JLabel lblKlickenSieAuf = new JLabel(
+ "Klicken Sie auf \"Fertigstellen\".");
+ lblKlickenSieAuf.setBounds(102, 423, 241, 14);
+ contentPanel.add(lblKlickenSieAuf);
+
+ JMenuBar menuBar = new JMenuBar();
+ menuBar.setBounds(0, 0, 597, 21);
+ contentPanel.add(menuBar);
+
+ JMenu menu = new JMenu("Hilfe");
+ menuBar.add(menu);
+
+ JMenuItem menuItem = new JMenuItem("FAQ");
+ menuItem.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();
+ }
+
+ }
+ });
+
+ menu.add(menuItem);
+
+ JMenuItem menuItem_1 = new JMenuItem("OTRS");
+ menuItem_1.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();
+ }
+
+ }
+ });
+
+ menu.add(menuItem_1);
+
+ JMenuItem mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ menu.add(mntmAbout);
+
+ lblAnleitung = new JLabel(
+ "<HTML><U>Anleitung zum erstellen einer virtuellen Maschine herunterladen</U></HTML>");
+ lblAnleitung.setForeground(Color.BLUE);
+ lblAnleitung.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ OpenLinks open = new OpenLinks();
+
+ URI anleitung;
+ try {
+ anleitung = new URI(Links.getAnleitungVMDK());
+ open.openWebpage(anleitung);
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ });
+ lblAnleitung.setBounds(102, 448, 311, 14);
+ contentPanel.add(lblAnleitung);
+
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBackground(UIManager.getColor("Button.background"));
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane, BorderLayout.SOUTH);
+ {
+ btnZurck.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // check if loading file or not
+ if (isCurrentlyLoading() == true) {
+ int choice = JOptionPane
+ .showOptionDialog(
+ null,
+ "Nicht abgeschlossene Uploads werden beendet. Trotzdem zurück gehen?",
+ "Warnung",
+ JOptionPane.YES_NO_CANCEL_OPTION,
+ JOptionPane.QUESTION_MESSAGE, null,
+ options, options[1]);
+ // 0=beenden, 1=abbrechen
+ if (choice == 0) {
+ task.cancel(true);
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ ini.put("main", "Letzter Downloadpfad",
+ lblPath.getText());
+ ini.store();
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ // go back one page
+ SearchImage_GUI si = new SearchImage_GUI();
+ si.setVisible(true);
+ dispose();
+ }// end choice
+
+ } else {
+
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ ini.put("main", "Letzter Downloadpfad",
+ lblPath.getText());
+ ini.store();
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ // go back one page
+ SearchImage_GUI si = new SearchImage_GUI();
+ si.setVisible(true);
+ dispose();
+ }// end else
+ }//end action
+ });
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ }
+
+ btnMainMenu.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ try {
+ Wini ini = new Wini(
+ new File(
+ "C:\\Users\\"
+ + System.getProperty("user.name")
+ + "\\AppData\\Roaming\\bwLehrpoolSuite\\config.ini"));
+ ini.put("main", "Letzter Downloadpfad",
+ lblPath.getText());
+ ini.store();
+ } catch (InvalidFileFormatException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ } catch (IOException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ MainMenue_GUI mm = new MainMenue_GUI();
+ mm.setVisible(true);
+ dispose();
+ }
+ });
+ btnMainMenu.setActionCommand("Cancel");
+ buttonPane.add(btnMainMenu);
+ }
+ setVisible(true);
+
+ }
+
+ private void buttonDownloadActionPerformed(ActionEvent event) {
+
+ progressBar.setValue(0);
+ btnDownloadStarten.setEnabled(false); // verhindert schnellen zweiten
+ // Klick
+ btnDownloadStarten.setText("Bitte warten");
+ try {
+ user = client.getFtpUser();
+
+ downloadFile = user.path
+ + "/"
+ + client.getPathOfImage(Image.image.getImageId(),
+ Image.image.getVersion());
+
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause() + "\n" + e.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+
+ task = new DownloadTask(host, port, user.userName, user.password,
+ downloadFile, lblPath.getText());
+ task.addPropertyChangeListener(this);
+ task.execute();
+ taskrun = true;
+
+ }
+
+ public void propertyChange(PropertyChangeEvent arg0) {
+
+ progress = 0;
+ if ("progress" == arg0.getPropertyName()) {
+ progress = (Integer) arg0.getNewValue();
+ progressBar.setValue(progress);
+ }
+
+ // Button zum Fertigstellen freischalten, wenn 100% erreicht sind
+ if (isCurrentlyLoading() == true) {
+ // not uploading currently
+ btnMainMenu.setEnabled(false);
+ } else {
+ // currently uploading, don't let user interact
+ btnMainMenu.setEnabled(true);
+ }
+
+ if ("speed" == arg0.getPropertyName()) {
+ speed = (double) arg0.getNewValue();
+ // if(speed<=1){
+
+ downspeed.setText(String.valueOf(speed).substring(0,
+ String.valueOf(speed).lastIndexOf(".") + 3)
+ + " MB/s");
+
+ }
+ if ("bytesread" == arg0.getPropertyName()) {
+ bytesread = (long) arg0.getNewValue();
+ lblBytesread.setText((bytesread / 1024 / 1024) + " MB");
+ labelVerbleibend
+ .setText(((filesize / 1024 / 1024) - (bytesread / 1024 / 1024))
+ + " MB");
+
+ labelZeit
+ .setText(String
+ .valueOf(
+ ((((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60) + 1)
+ .substring(
+ 0,
+ String.valueOf(
+ (((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) / speed) / 60)
+ .lastIndexOf("."))
+ + " Minuten");
+
+ }
+ if ("filesize" == arg0.getPropertyName()) {
+ filesize = (long) arg0.getNewValue();
+ lblNewLabel_3.setText((filesize / 1024 / 1024) + " MB");
+
+ }
+
+ }
+
+ public boolean isCurrentlyLoading() {
+ isCurrentlyLoading = false;
+
+ if (labelVerbleibend.getText().equals("0 MB") || labelVerbleibend.getText().equals("0")) {
+ isCurrentlyLoading = false;
+ } else {
+ isCurrentlyLoading = true;
+ }
+ return isCurrentlyLoading;
+ }// end isCurrentlyLoading()
+
+}// end class \ No newline at end of file
diff --git a/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java
new file mode 100644
index 00000000..d2b0dada
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java
@@ -0,0 +1,552 @@
+package gui.image;
+
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Checkbox;
+import java.awt.Color;
+import java.awt.Component;
+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.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.swing.AbstractButton;
+import javax.swing.ButtonGroup;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.JTextPane;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.JTableHeader;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableColumnModel;
+
+import models.Image;
+import models.Links;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import javax.swing.JTable;
+import javax.swing.JScrollPane;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.JTextField;
+
+import org.eclipse.jface.viewers.CheckboxCellEditor;
+
+import java.awt.Choice;
+
+@SuppressWarnings("serial")
+public class PermissionCreateImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ private JTable table;
+ private Class[] classes;
+ Object[] titles = { "Name", "Read", "Write", "Link allowed","Admin"};
+
+ final DefaultTableModel model = new DefaultTableModel(titles, 0) {
+
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ if (mColIndex >= 1) {
+ return true;
+ }
+ return false;
+ }
+
+ public Class getColumnClass(int c) {
+ switch (c) {
+ case 0:
+ return String.class;
+ default:
+ return Boolean.class;
+ }
+ }
+
+ };
+ private JTextField textField;
+ private JLabel lblRead;
+ private JLabel lblWrite;
+ private JLabel lblAdmin;
+ private JLabel lblLinkallowed;
+ private JLabel lblReadDesc;
+ private JLabel lblWriteDesc;
+ private JLabel lblAdminDesc;
+ private JLabel lblLinkallowedDesc;
+ private JCheckBox chckbxFrAlleSichtbar;
+ private JLabel lblFuerAlleSichtbar;
+
+ public PermissionCreateImage_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ System.exit(0);
+ }
+ });
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ setTitle("bwLehrpool Suite - Image erzeugen");
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel(
+ "Image Berechtigungen (Nur zur Veranschaulichung)");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("Definieren Sie hier bitte die gew\u00FCnschten Berechtigungen f\u00FCr ihr Image");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 531);
+ 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, "Berechtigungen",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 228, 557, 292);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane
+ .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane.setBounds(10, 21, 537, 260);
+ panel_1.add(scrollPane);
+
+ table = new JTable();
+ table.setModel(model);
+ table.setSelectionForeground(Color.WHITE);
+ Object[] rowdata = { "Max Mustermann", new Boolean(false),
+ new Boolean(false), new Boolean(false), new Boolean(false),
+ new Boolean(false) };
+ model.addRow(rowdata);
+
+ TableCellRenderer rend = table.getTableHeader().getDefaultRenderer();
+
+ TableColumn tc1 = table.getColumnModel().getColumn(1);
+ tc1.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc1.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(),
+ (String) titles[1]));
+
+ TableColumn tc2 = table.getColumnModel().getColumn(2);
+ tc2.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc2.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc2.setHeaderRenderer(new CheckBoxHeader(new MyItemListener2(),
+ (String) titles[2]));
+
+ TableColumn tc3 = table.getColumnModel().getColumn(3);
+ tc3.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc3.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc3.setHeaderRenderer(new CheckBoxHeader(new MyItemListener3(),
+ (String) titles[3]));
+
+ TableColumn tc4 = table.getColumnModel().getColumn(4);
+ tc4.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc4.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(),
+ (String) titles[4]));
+
+ /*
+ TableColumn tc5 = table.getColumnModel().getColumn(5);
+ tc5.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc5.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc5.setHeaderRenderer(new CheckBoxHeader(new MyItemListener5(),
+ (String) titles[5]));
+ */
+ scrollPane.setViewportView(table);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+
+ PermissionCreateImage_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("Berechtigung");
+ lblNewLabel_1.setBounds(146, 11, 80, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ JLabel lblName = new JLabel("Name:");
+ lblName.setBounds(10, 36, 46, 20);
+ contentPanel.add(lblName);
+
+ textField = new JTextField();
+ textField.setBounds(69, 36, 171, 20);
+ contentPanel.add(textField);
+ textField.setColumns(10);
+
+ JLabel lblHochschule = new JLabel("Hochschule:");
+ lblHochschule.setBounds(275, 36, 80, 20);
+ contentPanel.add(lblHochschule);
+
+ JComboBox comboBox = new JComboBox();
+ comboBox.setModel(new DefaultComboBoxModel(new String[] {
+ "Hochschule Offenburg", "Hochschule Reutlingen",
+ "Universit\u00E4t Freiburg" }));
+ comboBox.setBounds(365, 36, 202, 20);
+ contentPanel.add(comboBox);
+
+ JPanel panel_2 = new JPanel();
+ panel_2.setBackground(SystemColor.menu);
+ panel_2.setBorder(new TitledBorder(null, "Beschreibung",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_2.setBounds(10, 67, 557, 150);
+ contentPanel.add(panel_2);
+ panel_2.setLayout(null);
+
+ lblRead = new JLabel("Read");
+ lblRead.setBounds(20, 18, 90, 20);
+ panel_2.add(lblRead);
+
+ lblWrite = new JLabel("Write");
+ lblWrite.setBounds(20, 38, 90, 20);
+ panel_2.add(lblWrite);
+
+ lblAdmin = new JLabel("Admin");
+ lblAdmin.setBounds(20, 78, 90, 20);
+ panel_2.add(lblAdmin);
+
+ lblLinkallowed = new JLabel("Link allowed");
+ lblLinkallowed.setBounds(20, 58, 90, 20);
+ panel_2.add(lblLinkallowed);
+
+ lblReadDesc = new JLabel(
+ "Image lesen und starten, in Suchfenster und VMchooser sichtbar.");
+ lblReadDesc.setBounds(120, 18, 427, 20);
+ panel_2.add(lblReadDesc);
+
+ lblWriteDesc = new JLabel(
+ "Image anpassen und überschrieben, jedoch nicht löschen.");
+ lblWriteDesc.setBounds(120, 38, 380, 20);
+ panel_2.add(lblWriteDesc);
+
+ lblAdminDesc = new JLabel(
+ "<HTML>Volle Rechte: read, write, löschen, Link_allowed und<br>Berechtigungen für andere Benutzer festlegen.</HTML>");
+ lblAdminDesc.setBounds(120, 78, 380, 40);
+ panel_2.add(lblAdminDesc);
+
+ lblLinkallowedDesc = new JLabel(
+ "Erzeugung einer Veranstaltung auf ein Image ist erlaubt.");
+ lblLinkallowedDesc.setBounds(120, 58, 380, 20);
+ panel_2.add(lblLinkallowedDesc);
+
+ chckbxFrAlleSichtbar = new JCheckBox("");
+ chckbxFrAlleSichtbar.setBounds(115, 119, 21, 23);
+ panel_2.add(chckbxFrAlleSichtbar);
+
+ lblFuerAlleSichtbar = new JLabel("Für alle sichtbar");
+ lblFuerAlleSichtbar.setBounds(20, 120, 90, 20);
+ panel_2.add(lblFuerAlleSichtbar);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton cancelButton = new JButton("Zur\u00FCck");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ CreateImageFreigabe_GUI sr = new CreateImageFreigabe_GUI();
+ sr.setVisible(true);
+ dispose();
+ }
+ });
+ cancelButton.setActionCommand("OK");
+ buttonPane.add(cancelButton);
+ // getRootPane().setDefaultButton(cancelButton);
+ }
+ {
+ JButton continueButton = new JButton("Weiter");
+ continueButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ FTPCreateUploader_GUI ea = new FTPCreateUploader_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ continueButton.setActionCommand("Cancel");
+ buttonPane.add(continueButton);
+ getRootPane().setDefaultButton(continueButton);
+ }
+ }
+
+ 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 mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(mntmAbout);
+
+ }
+
+ class MyItemListener1 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 1);
+ }
+ }
+ }
+
+ class MyItemListener2 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 2);
+ }
+ }
+ }
+
+ class MyItemListener3 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 3);
+ }
+ }
+ }
+
+ class MyItemListener4 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 4);
+ }
+ }
+ }
+
+ class MyItemListener5 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 5);
+ }
+ }
+ }
+}
+
+class CheckBoxHeader extends JCheckBox implements TableCellRenderer,
+ MouseListener {
+ protected CheckBoxHeader rendererComponent;
+ protected int column;
+ protected boolean mousePressed = false;
+
+ public CheckBoxHeader(ItemListener itemListener, String text) {
+ rendererComponent = this;
+ rendererComponent.addItemListener(itemListener);
+ rendererComponent.setText(text);
+ }
+
+ public Component getTableCellRendererComponent(JTable table, Object value,
+ boolean isSelected, boolean hasFocus, int row, int column) {
+ if (table != null) {
+ JTableHeader header = table.getTableHeader();
+ if (header != null) {
+ rendererComponent.setForeground(header.getForeground());
+ rendererComponent.setBackground(header.getBackground());
+ rendererComponent.setFont(header.getFont());
+ rendererComponent.setBorder(header.getBorder());
+ header.addMouseListener(rendererComponent);
+ }
+ }
+ setColumn(column);
+ // rendererComponent.setText("Check All");
+ // setBorder(UIManager.getBorder("TableHeader.cellBorder"));
+
+ return rendererComponent;
+ }
+
+ protected void setColumn(int column) {
+ this.column = column;
+ }
+
+ public int getColumn() {
+ return column;
+ }
+
+ protected void handleClickEvent(MouseEvent e) {
+ if (mousePressed) {
+ mousePressed = false;
+ JTableHeader header = (JTableHeader) (e.getSource());
+ JTable tableView = header.getTable();
+ TableColumnModel columnModel = tableView.getColumnModel();
+ int viewColumn = columnModel.getColumnIndexAtX(e.getX());
+ int column = tableView.convertColumnIndexToModel(viewColumn);
+
+ if (viewColumn == this.column && e.getClickCount() == 1
+ && column != -1) {
+ doClick();
+ }
+ }
+ }
+
+ public void mouseClicked(MouseEvent e) {
+ handleClickEvent(e);
+ ((JTableHeader) e.getSource()).repaint();
+ }
+
+ public void mousePressed(MouseEvent e) {
+ mousePressed = true;
+ }
+
+ public void mouseReleased(MouseEvent e) {
+ }
+
+ public void mouseEntered(MouseEvent e) {
+ }
+
+ public void mouseExited(MouseEvent e) {
+ }
+}
diff --git a/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java
new file mode 100644
index 00000000..4d780e8f
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java
@@ -0,0 +1,504 @@
+package gui.image;
+
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Checkbox;
+import java.awt.Color;
+import java.awt.Component;
+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.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.swing.AbstractButton;
+import javax.swing.ButtonGroup;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JComboBox;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.JTextPane;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.JTableHeader;
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
+import javax.swing.table.TableColumn;
+import javax.swing.table.TableColumnModel;
+
+import models.Image;
+import models.Links;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import javax.swing.JTable;
+import javax.swing.JScrollPane;
+import javax.swing.ScrollPaneConstants;
+import javax.swing.JTextField;
+
+import org.eclipse.jface.viewers.CheckboxCellEditor;
+
+import java.awt.Choice;
+
+@SuppressWarnings("serial")
+public class PermissionEditImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ private JTable table;
+ private Class[] classes;
+ Object[] titles = { "Name", "Read", "Write", "Link allowed","Admin"};
+
+ final DefaultTableModel model = new DefaultTableModel(titles, 0) {
+
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ if (mColIndex >= 1) {
+ return true;
+ }
+ return false;
+ }
+
+ public Class getColumnClass(int c) {
+ switch (c) {
+ case 0:
+ return String.class;
+ default:
+ return Boolean.class;
+ }
+ }
+
+ };
+ private JTextField textField;
+ private JLabel lblLinkAllowed;
+ private JLabel label_5;
+ private JLabel label_6;
+ private JLabel label_7;
+
+ public PermissionEditImage_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ System.exit(0);
+ }
+ });
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ setTitle("bwLehrpool Suite - Image erzeugen");
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel(
+ "Image Berechtigungen (Nur zur Veranschaulichung)");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("Definieren Sie hier bitte die gew\u00FCnschten Berechtigungen f\u00FCr Ihr Image");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 531);
+ 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, "Berechtigungen",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 228, 557, 292);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane
+ .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane.setBounds(10, 21, 537, 260);
+ panel_1.add(scrollPane);
+
+ table = new JTable();
+ table.setModel(model);
+ table.setSelectionForeground(Color.WHITE);
+ Object[] rowdata = { "Max Mustermann", new Boolean(false),
+ new Boolean(false), new Boolean(false), new Boolean(false) };
+ model.addRow(rowdata);
+
+ TableCellRenderer rend = table.getTableHeader().getDefaultRenderer();
+
+ TableColumn tc1 = table.getColumnModel().getColumn(1);
+ tc1.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc1.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(),
+ (String) titles[1]));
+
+ TableColumn tc2 = table.getColumnModel().getColumn(2);
+ tc2.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc2.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc2.setHeaderRenderer(new CheckBoxHeader(new MyItemListener2(),
+ (String) titles[2]));
+
+ TableColumn tc3 = table.getColumnModel().getColumn(3);
+ tc3.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc3.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc3.setHeaderRenderer(new CheckBoxHeader(new MyItemListener3(),
+ (String) titles[3]));
+
+ TableColumn tc4 = table.getColumnModel().getColumn(4);
+ tc4.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc4.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(),
+ (String) titles[4]));
+ /*
+ TableColumn tc5 = table.getColumnModel().getColumn(5);
+ tc5.setCellEditor(table.getDefaultEditor(Boolean.class));
+ tc5.setCellRenderer(table.getDefaultRenderer(Boolean.class));
+ tc5.setHeaderRenderer(new CheckBoxHeader(new MyItemListener5(),
+ (String) titles[5]));
+ */
+ scrollPane.setViewportView(table);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+
+ PermissionEditImage_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("Berechtigung");
+ lblNewLabel_1.setBounds(146, 11, 80, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ JLabel lblName = new JLabel("Name:");
+ lblName.setBounds(10, 36, 46, 20);
+ contentPanel.add(lblName);
+
+ textField = new JTextField();
+ textField.setBounds(69, 36, 171, 20);
+ contentPanel.add(textField);
+ textField.setColumns(10);
+
+ JLabel lblHochschule = new JLabel("Hochschule:");
+ lblHochschule.setBounds(275, 36, 80, 20);
+ contentPanel.add(lblHochschule);
+
+ JComboBox comboBox = new JComboBox();
+ comboBox.setModel(new DefaultComboBoxModel(new String[] {
+ "Hochschule Offenburg", "Hochschule Reutlingen",
+ "Universit\u00E4t Freiburg" }));
+ comboBox.setBounds(365, 36, 202, 20);
+ contentPanel.add(comboBox);
+
+ JPanel panel = new JPanel();
+ panel.setBounds(10, 67, 557, 150);
+ contentPanel.add(panel);
+ panel.setLayout(null);
+ panel.setBorder(new TitledBorder(null, "Beschreibung",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel.setBackground(SystemColor.menu);
+
+ JLabel label = new JLabel("Read");
+ label.setBounds(20, 18, 90, 20);
+ panel.add(label);
+
+ JLabel label_3 = new JLabel("Write");
+ label_3.setBounds(20, 38, 90, 20);
+ panel.add(label_3);
+
+ JLabel lblImageLesenUnd = new JLabel(
+ "Image lesen und starten, in Suchfenster und VMchooser sichtbar.");
+ lblImageLesenUnd.setBounds(120, 18, 380, 20);
+ panel.add(lblImageLesenUnd);
+
+ JLabel lblImageAnpassenUnd = new JLabel(
+ "Image anpassen und \u00DCberschrieben, jedoch nicht l\u00F6schen.");
+ lblImageAnpassenUnd.setBounds(120, 38, 380, 20);
+ panel.add(lblImageAnpassenUnd);
+
+ lblLinkAllowed = new JLabel("Link");
+ lblLinkAllowed.setBounds(20, 58, 90, 20);
+ panel.add(lblLinkAllowed);
+
+ label_5 = new JLabel("Admin");
+ label_5.setBounds(20, 78, 90, 20);
+ panel.add(label_5);
+
+ label_6 = new JLabel("Erzeugung einer Veranstaltung auf ein Image ist erlaubt.");
+ label_6.setBounds(120, 58, 380, 20);
+ panel.add(label_6);
+
+ label_7 = new JLabel("<HTML>Volle Rechte: read, write, l\u00F6schen, Link_allowed und<br>Berechtigungen f\u00FCr andere Benutzer festlegen.</HTML>");
+ label_7.setBounds(120, 78, 380, 40);
+ panel.add(label_7);
+
+ JLabel label_4 = new JLabel("F\u00FCr alle sichtbar");
+ label_4.setBounds(20, 120, 90, 20);
+ panel.add(label_4);
+
+ JCheckBox checkBox = new JCheckBox("");
+ checkBox.setBounds(115, 120, 21, 23);
+ panel.add(checkBox);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton cancelButton = new JButton("Zur\u00FCck");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ EditImageFreigabe_GUI sr = new EditImageFreigabe_GUI();
+ sr.setVisible(true);
+ dispose();
+ }
+ });
+ cancelButton.setActionCommand("OK");
+ buttonPane.add(cancelButton);
+ // getRootPane().setDefaultButton(cancelButton);
+ }
+ {
+ JButton continueButton = new JButton("Weiter");
+ continueButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ FTPEditUploader_GUI ea = new FTPEditUploader_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ continueButton.setActionCommand("Cancel");
+ buttonPane.add(continueButton);
+ getRootPane().setDefaultButton(continueButton);
+ }
+ }
+
+ 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 mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(mntmAbout);
+
+ }
+
+ class MyItemListener1 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 1);
+ }
+ }
+ }
+
+ class MyItemListener2 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 2);
+ }
+ }
+ }
+
+ class MyItemListener3 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 3);
+ }
+ }
+ }
+
+ class MyItemListener4 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 4);
+ }
+ }
+ }
+
+ class MyItemListener5 implements ItemListener {
+ public void itemStateChanged(ItemEvent e) {
+ Object source = e.getSource();
+ if (source instanceof AbstractButton == false)
+ return;
+ boolean checked = e.getStateChange() == ItemEvent.SELECTED;
+ for (int x = 0, y = table.getRowCount(); x < y; x++) {
+ table.setValueAt(new Boolean(checked), x, 5);
+ }
+ }
+ }
+}
+
+/*
+ * class CheckBoxHeader extends JCheckBox implements TableCellRenderer,
+ * MouseListener { protected CheckBoxHeader rendererComponent; protected int
+ * column; protected boolean mousePressed = false;
+ *
+ * public CheckBoxHeader(ItemListener itemListener ,String text) {
+ * rendererComponent = this; rendererComponent.addItemListener(itemListener);
+ * rendererComponent.setText(text); }
+ *
+ * public Component getTableCellRendererComponent( JTable table, Object value,
+ * boolean isSelected, boolean hasFocus, int row, int column) { if (table !=
+ * null) { JTableHeader header = table.getTableHeader(); if (header != null) {
+ * rendererComponent.setForeground(header.getForeground());
+ * rendererComponent.setBackground(header.getBackground());
+ * rendererComponent.setFont(header.getFont());
+ * rendererComponent.setBorder(header.getBorder());
+ * header.addMouseListener(rendererComponent); } } setColumn(column);
+ * //rendererComponent.setText("Check All");
+ * //setBorder(UIManager.getBorder("TableHeader.cellBorder"));
+ *
+ * return rendererComponent; } protected void setColumn(int column) {
+ * this.column = column; } public int getColumn() { return column; } protected
+ * void handleClickEvent(MouseEvent e) { if (mousePressed) { mousePressed=false;
+ * JTableHeader header = (JTableHeader)(e.getSource()); JTable tableView =
+ * header.getTable(); TableColumnModel columnModel = tableView.getColumnModel();
+ * int viewColumn = columnModel.getColumnIndexAtX(e.getX()); int column =
+ * tableView.convertColumnIndexToModel(viewColumn);
+ *
+ * if (viewColumn == this.column && e.getClickCount() == 1 && column != -1) {
+ * doClick(); } } } public void mouseClicked(MouseEvent e) {
+ * handleClickEvent(e); ((JTableHeader)e.getSource()).repaint(); } public void
+ * mousePressed(MouseEvent e) { mousePressed = true; } public void
+ * mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { }
+ * public void mouseExited(MouseEvent e) { } }
+ */
diff --git a/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java
new file mode 100644
index 00000000..83e12b72
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java
@@ -0,0 +1,1055 @@
+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.KeyAdapter;
+import java.awt.event.KeyEvent;
+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.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+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.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.JTextPane;
+import javax.swing.RowFilter;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+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 models.person;
+import util.OpenLinks;
+
+@SuppressWarnings("serial")
+public class SearchEditImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ JLabel labelName;
+ JLabel labelUpdate;
+ JLabel labelVerantwortlicher;
+ JLabel labelWeitereVerantwortliche;
+ JLabel labelVorlage;
+ JLabel labelLizenzSoftware;
+ JLabel labelInternet;
+ JLabel labelRam;
+ JLabel labelCPU;
+ JLabel labelID;
+ JLabel labelVersion;
+ JTextArea textAreadesc;
+ private JLabel labelOS;
+ String[] result;
+ JRadioButton rdbtnInternetJa;
+ JRadioButton rdbtnInternetNein;
+ JComboBox<String> comboBox;
+ JTable tableAllImages;
+ JTable tablemyImages;
+ JTable tablePublicVorlagen;
+ boolean activeSearch = false;
+ private JTextField textFieldName;
+ JTabbedPane tabbedPane;
+ String[] titles = { "Name", "Lizenzpflichtig", "OS", "Veranstaltung",
+ "Verantwortlicher", "Letztes Update", "ID", "Version", "Template" };// Angezeigt
+ // werden
+ // aber
+ // nur
+ // Name (0),
+ // OS (2),
+ // Verantwortlicher (4),
+ // Letztes
+ // Update (5)
+
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ final DefaultTableModel modelAll = new DefaultTableModel(titles, 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final DefaultTableModel modelPublicVorlagen = new DefaultTableModel(titles,
+ 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(
+ modelAll);
+ final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>(
+ modelMyImages);
+ final TableRowSorter<TableModel> rowSorterPublicVorlagen = new TableRowSorter<TableModel>(
+ modelPublicVorlagen);
+ private JTextField textField;
+
+ /**
+ * Create the dialog.
+ */
+ public SearchEditImage_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung nach klick auf X
+ con.closeThriftConnection();
+ System.exit(0);
+ }
+
+ @Override
+ public void windowOpened(WindowEvent arg0) {
+ initTableModel(modelMyImages);
+ initTableModel(modelAll);
+ initTableModel(modelPublicVorlagen);
+
+ //auszublendende Angaben
+ //1=Lizenzpflichtig
+ //3=Veranstaltung
+ //6=ID
+ //7=Version
+ //8=Template
+ tablemyImages.getColumnModel().getColumn(1).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(1).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(1).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setMaxWidth(0);
+
+ tablePublicVorlagen.getColumnModel().getColumn(1).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(1)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(1)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7)
+ .setMaxWidth(0);
+
+ tableAllImages.getColumnModel().getColumn(1).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(1).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(1).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setMaxWidth(0);
+ textFieldName.requestFocusInWindow();
+ }
+ });
+ // Verhindert das Vergroessern Des Fensters
+ setResizable(false);
+
+ try {
+ // Setzt das Look & Feel auf System
+ 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 die Bildmitte
+ setBounds(0, 0, 918, 722);
+ GuiOrganizer.centerGUI(this);
+
+ final DefaultTableModel model = new DefaultTableModel(titles, 0);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 892, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Imageauswahl");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("Hier k\u00F6nnen Sie nach Ihrem gew\u00FCnschten Image suchen und dieses f\u00FCr weitere Schritte ausw\u00E4hlen");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 531);
+ 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, "Filterfunktionen",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 49, 557, 98);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Name:");
+ lblNewLabel_2.setBounds(10, 30, 80, 20);
+ panel_1.add(lblNewLabel_2);
+
+ JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:");
+ lblInternetIstInnerhalb.setBounds(10, 58, 250, 20);
+ panel_1.add(lblInternetIstInnerhalb);
+
+ textFieldName = new JTextField();
+ // Key Listener der Tastatureingabe registriert
+ textFieldName.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyReleased(KeyEvent e) {
+ // Textfield eingabe auslesen
+ String stext = textFieldName.getText();
+
+ // Wenn Textfield nicht leer
+ if (stext.isEmpty() == false) {
+ activeSearch = true;
+ // Filtere nach der Eingabe
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ } else {
+ activeSearch = false;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ rowSorterAll.setRowFilter(null);
+ }
+ }
+ });
+
+ textFieldName.setBounds(96, 30, 166, 20);
+ panel_1.add(textFieldName);
+ textFieldName.setColumns(10);
+
+ comboBox = new JComboBox<String>();
+ try {
+ // Holt sich eine Liste aller verfuegbaren Betriebssysteme vom
+ // Server
+ List<String> list = client.getAllOS();
+ // Leeres Item hinzufuegen
+ comboBox.addItem("");
+ for (int i = 0; i < list.size(); i++) {
+ // Hinzufuegen der verfuegbaren Betriebssysteme
+ comboBox.addItem(list.get(i));
+ }
+ } catch (TException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e2.getCause() + "\n" + e2.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ // Registriert Auswahlaenderungen der Box
+ comboBox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Prueft das die Auswahl nicht leer ist
+ if (comboBox.getSelectedItem().toString().isEmpty() == false) {
+ // Filtert nach dem ausgewaehlten Betriebssystem
+ activeSearch = true;
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox
+ .getSelectedItem().toString(), 2));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ } else {
+ activeSearch = false;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ rowSorterAll.setRowFilter(null);
+ }
+ }
+
+ });
+ comboBox.setBounds(96, 58, 166, 20);
+ panel_1.add(comboBox);
+
+ JLabel label_3 = new JLabel("Beschreibung:");
+ label_3.setBounds(291, 30, 80, 20);
+ panel_1.add(label_3);
+
+ textField = new JTextField();
+ textField.setColumns(10);
+ textField.setBounds(381, 30, 166, 20);
+ panel_1.add(textField);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // oeffnet das Hauuetmenue
+
+ SearchEditImage_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(116, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Imageauswahl");
+ lblNewLabel_1.setBounds(129, 11, 85, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ tabbedPane = new JTabbedPane(JTabbedPane.TOP);
+ tabbedPane.addChangeListener(new ChangeListener() {
+ public void stateChanged(ChangeEvent arg0) {
+ if (tabbedPane.getSelectedIndex() == 0 && activeSearch == false) {
+
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ } else if (tabbedPane.getSelectedIndex() == 1
+ && activeSearch == false) {
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ } else if (tabbedPane.getSelectedIndex() == 2
+ && activeSearch == false) {
+ rowSorterAll.setRowFilter(null);
+ }
+
+ }
+ });
+
+ tabbedPane.setBounds(10, 158, 557, 339);
+ contentPanel.add(tabbedPane);
+
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ tablemyImages = new JTable();
+ tablemyImages.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ String imageid = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 6)
+ .toString();
+ //System.out.println(imageid);
+ String version = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 7)
+ .toString();
+ //System.out.println(version);
+ writeImageData(imageid, version);
+ }
+ });
+ tablemyImages.setModel(modelMyImages);
+ tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(5).sizeWidthToFit();
+ tablemyImages.setRowSorter(rowSorterMyImages);
+
+ scrollPaneMyImage.setViewportView(tablemyImages);
+ tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null);
+
+ JScrollPane scrollPaneCoopImages = new JScrollPane();
+ JTable tableCoopImages = new JTable();
+ tableCoopImages.setModel(model);
+ tableCoopImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(5).sizeWidthToFit();
+
+ JScrollPane scrollPanePublicVorlagen = new JScrollPane();
+ tablePublicVorlagen = new JTable();
+ tablePublicVorlagen.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ String imageid = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 6)
+ .toString();
+ //System.out.println(imageid);
+ String version = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 7)
+ .toString();
+ //System.out.println(version);
+ writeImageData(imageid, version);
+ }
+ });
+ tablePublicVorlagen.setModel(modelPublicVorlagen);
+ tablePublicVorlagen.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(5).sizeWidthToFit();
+ tablePublicVorlagen.setRowSorter(rowSorterPublicVorlagen);
+ scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
+ tabbedPane.addTab("Vorlagen", null, scrollPanePublicVorlagen, null);
+
+ JScrollPane scrollPaneAllImages = new JScrollPane();
+ tableAllImages = new JTable();
+ tableAllImages.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+
+ String imageid = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 6)
+ .toString();
+ //System.out.println(imageid);
+ String version = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 7)
+ .toString();
+ //System.out.println(version);
+ writeImageData(imageid, version);
+
+ }
+ });
+ tableAllImages.setModel(modelAll);
+ tableAllImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(5).sizeWidthToFit();
+ tableAllImages.setRowSorter(rowSorterAll);
+
+ scrollPaneAllImages.setViewportView(tableAllImages);
+ tabbedPane.addTab("Alle", null, scrollPaneAllImages, null);
+
+ scrollPaneCoopImages.setViewportView(tableCoopImages);
+ tabbedPane.addTab("bwLehrpool", null, scrollPaneCoopImages, null);
+ tabbedPane.setEnabledAt(3, false);
+
+ JButton btnDownload = new JButton("Download");
+ btnDownload.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // oeffnet den Downloader
+
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ // check if user is in correct tab
+ if (tabbedPane.getSelectedIndex() == 0) {
+ // check if a row is selected
+ if (tablemyImages.getSelectedRow() != -1) {
+ String imageid = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 6)
+ .toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 7)
+ .toString();
+
+ Image.image.setVersion(imageversion);
+
+ FTPEditDownloader_GUI ea = new FTPEditDownloader_GUI();
+ ea.setVisible(true);
+ dispose();
+ }
+ } else if (tabbedPane.getSelectedIndex() == 1) {
+ if (tablePublicVorlagen.getSelectedRow() != -1) {
+ if (modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 4)
+ .equals(username) == true
+ || modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()),
+ 8).equals("true") == true) {
+ String imageid = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()),
+ 6).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()),
+ 7).toString();
+
+ Image.image.setVersion(imageversion);
+
+ FTPEditDownloader_GUI ea = new FTPEditDownloader_GUI();
+ ea.setVisible(true);
+ dispose();
+ } else {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Sie haben keine Berechtigung fremde Images herunterzuladen.",
+ "Message",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+ } else if (tabbedPane.getSelectedIndex() == 2) {
+ if (tableAllImages.getSelectedRow() != -1) {
+ if (modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 4).equals(
+ username) == true
+ || modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 8).equals("true") == true) {
+ String imageid = modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 6).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 7).toString();
+
+ Image.image.setVersion(imageversion);
+
+ FTPEditDownloader_GUI ea = new FTPEditDownloader_GUI();
+ ea.setVisible(true);
+ dispose();
+ } else {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Sie haben keine Berechtigung fremde Images herunterzuladen.",
+ "Message",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+ } else {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Bitte w\u00e4hlen Sie ein Image f\u00fcr den Download aus",
+ "Message", JOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+ });
+ btnDownload.setBounds(449, 508, 118, 23);
+ contentPanel.add(btnDownload);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 902, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton okButton = new JButton("Zur\u00FCck");
+ okButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // oeffnet das Hauptmenue
+
+ MainMenue_GUI main = new MainMenue_GUI();
+ main.setVisible(true);
+ dispose();
+ }
+ });
+ okButton.setActionCommand("OK");
+ buttonPane.add(okButton);
+ getRootPane().setDefaultButton(okButton);
+ }
+ {
+ JButton cancelButton = new JButton("Weiter");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ String username = person.verantwortlicher.getName()
+ + " " + person.verantwortlicher.getVorname();
+ // check if user is in correct tab
+ if (tabbedPane.getSelectedIndex() == 0) {
+ // check if a row is selected
+ if (tablemyImages.getSelectedRow() != -1) {
+ String imageid = modelMyImages
+ .getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()),
+ 6).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelMyImages
+ .getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()),
+ 7).toString();
+
+ Image.image.setVersion(imageversion);
+
+ EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI();
+ ea.setVisible(true);
+ dispose();
+ }
+ } else if (tabbedPane.getSelectedIndex() == 1) {
+ if (tablePublicVorlagen.getSelectedRow() != -1
+ && modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()),
+ 4).equals(username) == true) {
+ String imageid = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()),
+ 6).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()),
+ 7).toString();
+
+ Image.image.setVersion(imageversion);
+
+ EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI();
+ ea.setVisible(true);
+ dispose();
+ }
+ } else if (tabbedPane.getSelectedIndex() == 2) {
+ if (tableAllImages.getSelectedRow() != -1
+ && modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 4).equals(username) == true) {
+ String imageid = modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 6).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 7).toString();
+
+ Image.image.setVersion(imageversion);
+
+ EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI();
+ ea.setVisible(true);
+ dispose();
+ } else {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Bitte w\u00e4hlen Sie ein eigenes Image aus.",
+ "Image Auswahl",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ }// end check if correct tab is selected
+ }
+ });
+ cancelButton.setActionCommand("Cancel");
+ buttonPane.add(cancelButton);
+ }
+ }
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 912, 1);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 912, 2);
+ getContentPane().add(separator_1);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBorder(new TitledBorder(null, "Detailinformationen",
+
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(586, 85, 316, 531);
+ getContentPane().add(panel);
+
+ JLabel lblName = new JLabel("Name:");
+ lblName.setBounds(10, 87, 130, 14);
+ panel.add(lblName);
+
+ labelName = new JLabel("");
+ labelName.setBounds(10, 102, 296, 14);
+ panel.add(labelName);
+
+ JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:");
+ lblVerantwortlicher.setBounds(10, 259, 130, 14);
+ panel.add(lblVerantwortlicher);
+
+ labelOS = new JLabel("");
+ labelOS.setBounds(10, 216, 296, 14);
+ panel.add(labelOS);
+
+ JLabel lblWeitereVerantwortliche = new JLabel("Betriebssystem:");
+ lblWeitereVerantwortliche.setBounds(10, 202, 130, 14);
+ panel.add(lblWeitereVerantwortliche);
+
+ labelVerantwortlicher = new JLabel("");
+ labelVerantwortlicher.setBounds(10, 272, 296, 14);
+ panel.add(labelVerantwortlicher);
+
+ JLabel label = new JLabel("Weitere Verantwortliche:");
+ label.setBounds(10, 284, 130, 14);
+ panel.add(label);
+
+ labelWeitereVerantwortliche = new JLabel("");
+ labelWeitereVerantwortliche.setBounds(10, 297, 296, 14);
+ panel.add(labelWeitereVerantwortliche);
+
+ labelUpdate = new JLabel("");
+ labelUpdate.setBounds(10, 245, 296, 14);
+ panel.add(labelUpdate);
+
+ JLabel lblLetztesUpdate = new JLabel("Letztes Update:");
+ lblLetztesUpdate.setBounds(10, 231, 130, 14);
+ panel.add(lblLetztesUpdate);
+
+ JLabel lblImageIstVorlage = new JLabel("Image ist Vorlage:");
+ lblImageIstVorlage.setBounds(10, 336, 130, 14);
+ panel.add(lblImageIstVorlage);
+
+ labelVorlage = new JLabel("");
+ labelVorlage.setBounds(10, 350, 296, 14);
+ panel.add(labelVorlage);
+
+ labelLizenzSoftware = new JLabel("");
+ labelLizenzSoftware.setBounds(10, 383, 296, 14);
+ panel.add(labelLizenzSoftware);
+
+ JLabel lblLizenzpflichtigeSoftware = new JLabel(
+ "Lizenzpflichtige Software:");
+ lblLizenzpflichtigeSoftware.setBounds(10, 367, 130, 14);
+ panel.add(lblLizenzpflichtigeSoftware);
+
+ JLabel lblInternet = new JLabel("Internetsperre vorhanden:");
+ lblInternet.setBounds(10, 400, 130, 14);
+ panel.add(lblInternet);
+
+ labelInternet = new JLabel("");
+ labelInternet.setBounds(10, 417, 296, 14);
+ panel.add(labelInternet);
+
+ JLabel lblEmpfehlungRam = new JLabel("Empfehlung RAM:");
+ lblEmpfehlungRam.setBounds(10, 432, 130, 14);
+ panel.add(lblEmpfehlungRam);
+
+ labelRam = new JLabel("");
+ labelRam.setBounds(10, 455, 296, 14);
+ panel.add(labelRam);
+
+ JLabel lblEmpfehlungCpu = new JLabel("Empfehlung CPU:");
+ lblEmpfehlungCpu.setBounds(10, 469, 130, 14);
+ panel.add(lblEmpfehlungCpu);
+
+ labelCPU = new JLabel("");
+ labelCPU.setBounds(10, 487, 296, 14);
+ panel.add(labelCPU);
+
+ JLabel lblTechnischeDaten = new JLabel("Technische Daten:");
+ lblTechnischeDaten.setBounds(10, 322, 296, 14);
+ panel.add(lblTechnischeDaten);
+
+ JLabel lblId = new JLabel("ID:");
+ lblId.setBounds(10, 23, 296, 14);
+ panel.add(lblId);
+
+ labelID = new JLabel("");
+ labelID.setBounds(10, 37, 296, 14);
+ panel.add(labelID);
+
+ labelVersion = new JLabel("");
+ labelVersion.setBounds(10, 73, 296, 14);
+ panel.add(labelVersion);
+
+ JLabel lblVersion = new JLabel("Version:");
+ lblVersion.setBounds(10, 57, 296, 14);
+ panel.add(lblVersion);
+
+ JLabel lblBeschreibung = new JLabel("Beschreibung:");
+ lblBeschreibung.setBounds(10, 119, 130, 14);
+ panel.add(lblBeschreibung);
+
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane.setBounds(10, 135, 296, 65);
+ panel.add(scrollPane);
+
+ textAreadesc = new JTextArea();
+ textAreadesc.setLineWrap(true);
+ textAreadesc.setEditable(false);
+ textAreadesc.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ textAreadesc.setBackground(SystemColor.menu);
+ scrollPane.setViewportView(textAreadesc);
+ 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 mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(mntmAbout);
+
+ }
+
+ // Initiale Beffuelung eines Table models
+ public DefaultTableModel initTableModel(DefaultTableModel model) {
+ List<server.Image> images;
+ try {
+ // Hole eine Liste der Images
+ images = client.getImageList();
+
+ Iterator<server.Image> i = images.iterator();
+ SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+ int x = 0;
+
+ while (i.hasNext()) {
+ // erzeuge Objekte fuer die Tabelle
+ Object[] obj = { images.get(x).getImageName(),
+ images.get(x).getLicenseRestriction(),
+ images.get(x).getOsName(),
+ images.get(x).getLectureName(),
+ images.get(x).getUserData(),
+ out.format(in.parse(images.get(x).updateTime)),
+ images.get(x).id, images.get(x).getVersion(),
+ images.get(x).getIsTemplate() };
+ // Fuege diese Objekte der Tabelle hinzu
+
+ model.addRow(obj);
+ x++;
+ i.next();
+
+ }
+
+ return model;
+ } catch (TException | ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e1.getCause() + "\n" + e1.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ return model;
+ }
+
+ public void writeImageData(String id, String version) {
+ try {
+ SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+ Map<String, String> res = client.getImageData(id, version);
+ labelName.setText(res.get("name"));
+ labelOS.setText(res.get("os"));
+ labelUpdate.setText(out.format(in.parse(res.get("lastupdate"))));
+ labelVerantwortlicher.setText(res.get("owner"));
+ labelWeitereVerantwortliche.setText("Noch nicht Verf\u00fcgbar");
+ if (res.get("template").equals("true")) {
+ labelVorlage.setText("Ja");
+ } else {
+ labelVorlage.setText("Nein");
+ }
+ if (res.get("license").equals("1")) {
+ labelLizenzSoftware.setText("Ja");
+ } else {
+ labelLizenzSoftware.setText("Nein");
+ }
+ if (res.get("internet").equals("1")) {
+ labelInternet.setText("Ja");
+ } else {
+ labelInternet.setText("Nein");
+ }
+ labelRam.setText(res.get("ram"));
+ labelCPU.setText(res.get("cpu"));
+ labelID.setText(res.get("id"));
+ labelVersion.setText(res.get("version"));
+ textAreadesc.setText(res.get("desc"));
+ } catch (TException | ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+}
diff --git a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java
new file mode 100644
index 00000000..f41135b1
--- /dev/null
+++ b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java
@@ -0,0 +1,963 @@
+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.KeyAdapter;
+import java.awt.event.KeyEvent;
+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.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+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.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.JTextPane;
+import javax.swing.RowFilter;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+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 java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeEvent;
+
+@SuppressWarnings("serial")
+public class SearchImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ JLabel labelName;
+ JLabel labelUpdate;
+ JLabel labelVerantwortlicher;
+ JLabel labelWeitereVerantwortliche;
+ JLabel labelVorlage;
+ JLabel labelLizenzSoftware;
+ JLabel labelInternet;
+ JLabel labelRam;
+ JLabel labelCPU;
+ JLabel labelID;
+ JLabel labelVersion;
+ JTextArea textAreadesc;
+ private JLabel labelOS;
+ String[] result;
+ JRadioButton rdbtnInternetJa;
+ JRadioButton rdbtnInternetNein;
+ JComboBox<String> comboBox;
+ JTable tableAllImages;
+ JTable tablemyImages;
+ JTable tablePublicVorlagen;
+ private JTextField textFieldName;
+ JTabbedPane tabbedPane;
+ boolean activeSearch = false;
+ String[] titles = { "Name", "Lizenzpflichtig", "OS", "Veranstaltung",
+ "Verantwortlicher", "Letztes Update", "ID", "Version", "Template" }; // Angezeigt
+ // werden
+ // aber
+ // nur
+ // Name
+ // (0),
+ // OS
+ // (2),
+ // Verantwortlicher
+ // (4),
+ // Letztes
+ // Update
+ // (5)
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ final DefaultTableModel modelAll = new DefaultTableModel(titles, 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final DefaultTableModel modelPublicVorlagen = new DefaultTableModel(titles,
+ 0) {
+ public boolean isCellEditable(int rowIndex, int mColIndex) {
+ return false;
+ }
+ };
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(
+ modelAll);
+ final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>(
+ modelMyImages);
+ final TableRowSorter<TableModel> rowSorterPublicVorlagen = new TableRowSorter<TableModel>(
+ modelPublicVorlagen);
+ private JTextField textField;
+
+ /**
+ * Create the dialog.
+ */
+ public SearchImage_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung nach klick auf X
+ con.closeThriftConnection();
+ System.exit(0);
+ }
+
+ @Override
+ public void windowOpened(WindowEvent arg0) {
+ initTableModel(modelAll);
+ initTableModel(modelMyImages);
+ initTableModel(modelPublicVorlagen);
+
+ // auszublendende Angaben
+ // 1=Lizenzpflichtig
+ // 3=Veranstaltung
+ // 6=ID
+ // 7=Version
+ // 8=Template
+ tablemyImages.getColumnModel().getColumn(1).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(1).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(1).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(3).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(8).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(6).setMaxWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setMinWidth(0);
+ tablemyImages.getColumnModel().getColumn(7).setMaxWidth(0);
+
+ tablePublicVorlagen.getColumnModel().getColumn(1).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(1)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(1)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(3)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(8)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(6)
+ .setMaxWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7).setWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7)
+ .setMinWidth(0);
+ tablePublicVorlagen.getColumnModel().getColumn(7)
+ .setMaxWidth(0);
+
+ tableAllImages.getColumnModel().getColumn(1).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(1).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(1).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(3).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(8).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(6).setMaxWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setMinWidth(0);
+ tableAllImages.getColumnModel().getColumn(7).setMaxWidth(0);
+ textFieldName.requestFocusInWindow();
+ }
+ });
+ // Verhindert das Vergroessern Des Fensters
+ setResizable(false);
+
+ try {
+ // Setzt das Look & Feel auf System
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ // Setzt den Fenstertitel
+ setTitle("bwLehrpool Suite - Image suchen");
+ // Zentriert das Fenster in die Bildmitte
+ setBounds(0, 0, 918, 722);
+ GuiOrganizer.centerGUI(this);
+
+ final DefaultTableModel model = new DefaultTableModel(titles, 0);
+
+ getContentPane().setLayout(null);
+ {
+ JPanel panel = new JPanel();
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(10, 11, 892, 57);
+ getContentPane().add(panel);
+ panel.setLayout(null);
+ {
+ JLabel lblNewLabel = new JLabel("Imagesuche");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ JTextPane txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie
+ .setText("Hier k\u00F6nnen Sie nach Ihrem gew\u00FCnschten Image suchen und dieses f\u00FCr weitere Schritte ausw\u00E4hlen");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 531);
+ 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, "Filterfunktionen",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 49, 557, 98);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Anzeigename:");
+ lblNewLabel_2.setBounds(10, 30, 80, 20);
+ panel_1.add(lblNewLabel_2);
+
+ JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:");
+ lblInternetIstInnerhalb.setBounds(10, 58, 80, 20);
+ panel_1.add(lblInternetIstInnerhalb);
+
+ textFieldName = new JTextField();
+ // Key Listener der Tastatureingabe registriert
+ textFieldName.addKeyListener(new KeyAdapter() {
+ @Override
+ public void keyReleased(KeyEvent e) {
+ // Textfield eingabe auslesen
+ String stext = textFieldName.getText();
+
+ // Wenn Textfield nicht leer
+ if (stext != "") {
+ activeSearch = true;
+ // Filtere nach der Eingabe
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+
+ } else {
+ activeSearch = false;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ rowSorterAll.setRowFilter(null);
+ }
+ }
+ });
+
+ textFieldName.setBounds(96, 30, 166, 20);
+ panel_1.add(textFieldName);
+ textFieldName.setColumns(10);
+
+ comboBox = new JComboBox<String>();
+ try {
+ // Holt sich eine Liste aller verfuegbaren Betriebssysteme vom
+ // Server
+ List<String> list = client.getAllOS();
+ // Leeres Item hinzufuegen
+ comboBox.addItem("");
+ for (int i = 0; i < list.size(); i++) {
+ // Hinzufuegen der verfuegbaren Betriebssysteme
+ comboBox.addItem(list.get(i));
+ }
+ } catch (TException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e2.getCause() + "\n" + e2.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ // Registriert Auswahlaenderungen der Box
+ comboBox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Prueft das die Auswahl nicht leer ist
+ if (comboBox.getSelectedItem().toString() != "") {
+ activeSearch = true;
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox
+ .getSelectedItem().toString(), 2));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ } else {
+ activeSearch = false;
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ rowSorterAll.setRowFilter(null);
+ }
+ }
+
+ });
+ comboBox.setBounds(96, 58, 166, 20);
+ panel_1.add(comboBox);
+
+ JLabel label_3 = new JLabel("Beschreibung:");
+ label_3.setBounds(291, 30, 80, 20);
+ panel_1.add(label_3);
+
+ textField = new JTextField();
+ textField.setColumns(10);
+ textField.setBounds(381, 30, 166, 20);
+ panel_1.add(textField);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // oeffnet das Hauuetmenue
+
+ SearchImage_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(116, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Imageauswahl");
+ lblNewLabel_1.setBounds(129, 11, 85, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ tabbedPane = new JTabbedPane(JTabbedPane.TOP);
+ tabbedPane.addChangeListener(new ChangeListener() {
+ public void stateChanged(ChangeEvent arg0) {
+ if (tabbedPane.getSelectedIndex() == 0 && activeSearch == false) {
+
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ } else if (tabbedPane.getSelectedIndex() == 1
+ && activeSearch == false) {
+ rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
+ "true", 8));
+ } else if (tabbedPane.getSelectedIndex() == 2
+ && activeSearch == false) {
+ rowSorterAll.setRowFilter(null);
+ }
+
+ }
+ });
+
+ tabbedPane.setBounds(10, 158, 557, 339);
+ contentPanel.add(tabbedPane);
+
+ JScrollPane scrollPaneAllImages = new JScrollPane();
+ tableAllImages = new JTable();
+ tableAllImages.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+
+ String imageid = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 6)
+ .toString();
+ //System.out.println(imageid);
+ String version = modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 7)
+ .toString();
+ //System.out.println(version);
+ writeImageData(imageid, version);
+
+ }
+ });
+ tableAllImages.setModel(modelAll);
+ tableAllImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tableAllImages.getColumnModel().getColumn(5).sizeWidthToFit();
+
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ tablemyImages = new JTable();
+ tablemyImages.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ String imageid = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 6)
+ .toString();
+ //System.out.println(imageid);
+ String version = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 7)
+ .toString();
+ //System.out.println(version);
+ writeImageData(imageid, version);
+ }
+ });
+ tablemyImages.setModel(modelMyImages);
+ tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablemyImages.getColumnModel().getColumn(5).sizeWidthToFit();
+ tablemyImages.setRowSorter(rowSorterMyImages);
+
+ scrollPaneMyImage.setViewportView(tablemyImages);
+ tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null);
+
+ JScrollPane scrollPanePublicVorlagen = new JScrollPane();
+ tablePublicVorlagen = new JTable();
+ tablePublicVorlagen.getSelectionModel().addListSelectionListener(
+ new ListSelectionListener() {
+ public void valueChanged(ListSelectionEvent e) {
+ String imageid = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 6)
+ .toString();
+ //System.out.println(imageid);
+ String version = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 7)
+ .toString();
+ //System.out.println(version);
+ writeImageData(imageid, version);
+ }
+ });
+ tablePublicVorlagen.setModel(modelPublicVorlagen);
+ tablePublicVorlagen.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablePublicVorlagen.getColumnModel().getColumn(5).sizeWidthToFit();
+ tablePublicVorlagen.setRowSorter(rowSorterPublicVorlagen);
+ scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
+ tabbedPane.addTab("Vorlagen", null, scrollPanePublicVorlagen, null);
+ tableAllImages.setRowSorter(rowSorterAll);
+
+ scrollPaneAllImages.setViewportView(tableAllImages);
+ tabbedPane.addTab("Alle", null, scrollPaneAllImages, null);
+
+ JScrollPane scrollPaneCoopImages = new JScrollPane();
+ JTable tableCoopImages = new JTable();
+ tableCoopImages.setModel(model);
+ tableCoopImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tableCoopImages.getColumnModel().getColumn(5).sizeWidthToFit();
+
+ scrollPaneCoopImages.setViewportView(tableCoopImages);
+ tabbedPane.addTab("bwLehrpool", null, scrollPaneCoopImages, null);
+ tabbedPane.setEnabledAt(3, false);
+
+ JButton btnDownload = new JButton("Download");
+ btnDownload.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // oeffnet den Downloader
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ //
+ // meine Images
+ //
+ if (tabbedPane.getSelectedIndex() == 0) {
+ if (tablemyImages.getSelectedRow() != -1) {
+ String imageid = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 6)
+ .toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelMyImages.getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 7)
+ .toString();
+
+ Image.image.setVersion(imageversion);
+ SearchImage_GUI.this.setVisible(false);
+ FTPSearchDownloader_GUI down = new FTPSearchDownloader_GUI();
+ down.setVisible(true);
+
+ }
+ } else if (tabbedPane.getSelectedIndex() == 1) {
+ //
+ // Vorlagen Images
+ //
+
+ if (tablePublicVorlagen.getSelectedRow() != -1
+ // && modelPublicVorlagen
+ // .getValueAt(
+ // tablePublicVorlagen
+ // .convertRowIndexToModel(tablePublicVorlagen
+ // .getSelectedRow()),
+ // 4).equals(username) == true
+ ) {
+ String imageid = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 6)
+ .toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelPublicVorlagen
+ .getValueAt(
+ tablePublicVorlagen
+ .convertRowIndexToModel(tablePublicVorlagen
+ .getSelectedRow()), 7)
+ .toString();
+
+ Image.image.setVersion(imageversion);
+
+ SearchImage_GUI.this.setVisible(false);
+ FTPSearchDownloader_GUI down = new FTPSearchDownloader_GUI();
+ down.setVisible(true);
+ }
+ } else if (tabbedPane.getSelectedIndex() == 2) {
+ //
+ // Alle Images
+ //
+ /**
+ * if (tableAllImages.getSelectedRow() != -1 && modelAll
+ * .getValueAt( tableAllImages
+ * .convertRowIndexToModel(tableAllImages
+ * .getSelectedRow()), 4).equals(username) == true) {
+ **/
+ if (tableAllImages.getSelectedRow() != -1) {
+ // nur eigene Images downloadbar
+ if (modelAll.getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()), 4).equals(
+ username) == true
+ || modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 8).equals("true") == true) {
+ String imageid = modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 6).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelAll
+ .getValueAt(
+ tableAllImages
+ .convertRowIndexToModel(tableAllImages
+ .getSelectedRow()),
+ 7).toString();
+
+ Image.image.setVersion(imageversion);
+
+ SearchImage_GUI.this.setVisible(false);
+ FTPSearchDownloader_GUI down = new FTPSearchDownloader_GUI();
+ down.setVisible(true);
+ } else {
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Sie haben keine Berechtigung fremde Images herunterzuladen.",
+ "Message",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+
+ }
+
+ } else {
+ //
+ // nichts markiert
+ //
+ JOptionPane
+ .showMessageDialog(
+ null,
+ "Bitte w\u00e4hlen Sie ein Image f\u00fcr den Download aus",
+ "Message", JOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+ });
+ btnDownload.setBounds(449, 508, 118, 23);
+ contentPanel.add(btnDownload);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 902, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton okButton = new JButton("Zur\u00FCck");
+ okButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // oeffnet das Hauptmenue
+
+ MainMenue_GUI main = new MainMenue_GUI();
+ main.setVisible(true);
+ dispose();
+ }
+ });
+ okButton.setActionCommand("OK");
+ buttonPane.add(okButton);
+ getRootPane().setDefaultButton(okButton);
+ }
+ }
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 912, 1);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 912, 2);
+ getContentPane().add(separator_1);
+
+ JPanel panel = new JPanel();
+ panel.setLayout(null);
+ panel.setBorder(new TitledBorder(null, "Detailinformationen",
+
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel.setBackground(SystemColor.menu);
+ panel.setBounds(586, 85, 316, 531);
+ getContentPane().add(panel);
+
+ JLabel lblName = new JLabel("Name:");
+ lblName.setBounds(10, 87, 130, 14);
+ panel.add(lblName);
+
+ labelName = new JLabel("");
+ labelName.setBounds(10, 102, 296, 14);
+ panel.add(labelName);
+
+ JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:");
+ lblVerantwortlicher.setBounds(10, 259, 130, 14);
+ panel.add(lblVerantwortlicher);
+
+ labelOS = new JLabel("");
+ labelOS.setBounds(10, 216, 296, 14);
+ panel.add(labelOS);
+
+ JLabel lblWeitereVerantwortliche = new JLabel("Betriebssystem:");
+ lblWeitereVerantwortliche.setBounds(10, 202, 130, 14);
+ panel.add(lblWeitereVerantwortliche);
+
+ labelVerantwortlicher = new JLabel("");
+ labelVerantwortlicher.setBounds(10, 272, 296, 14);
+ panel.add(labelVerantwortlicher);
+
+ JLabel label = new JLabel("Weitere Ansprechpartner:");
+ label.setBounds(10, 284, 130, 14);
+ panel.add(label);
+
+ labelWeitereVerantwortliche = new JLabel("");
+ labelWeitereVerantwortliche.setBounds(10, 297, 296, 14);
+ panel.add(labelWeitereVerantwortliche);
+
+ labelUpdate = new JLabel("");
+ labelUpdate.setBounds(10, 245, 296, 14);
+ panel.add(labelUpdate);
+
+ JLabel lblLetztesUpdate = new JLabel("Letztes Update:");
+ lblLetztesUpdate.setBounds(10, 231, 130, 14);
+ panel.add(lblLetztesUpdate);
+
+ JLabel lblImageIstVorlage = new JLabel("Image ist Vorlage:");
+ lblImageIstVorlage.setBounds(10, 336, 130, 14);
+ panel.add(lblImageIstVorlage);
+
+ labelVorlage = new JLabel("");
+ labelVorlage.setBounds(10, 350, 296, 14);
+ panel.add(labelVorlage);
+
+ labelLizenzSoftware = new JLabel("");
+ labelLizenzSoftware.setBounds(10, 383, 296, 14);
+ panel.add(labelLizenzSoftware);
+
+ JLabel lblLizenzpflichtigeSoftware = new JLabel(
+ "Lizenzpflichtige Software:");
+ lblLizenzpflichtigeSoftware.setBounds(10, 367, 130, 14);
+ panel.add(lblLizenzpflichtigeSoftware);
+
+ JLabel lblInternet = new JLabel("Internetsperre vorhanden:");
+ lblInternet.setBounds(10, 400, 130, 14);
+ panel.add(lblInternet);
+
+ labelInternet = new JLabel("");
+ labelInternet.setBounds(10, 417, 296, 14);
+ panel.add(labelInternet);
+
+ JLabel lblEmpfehlungRam = new JLabel("Empfehlung RAM:");
+ lblEmpfehlungRam.setBounds(10, 432, 130, 14);
+ panel.add(lblEmpfehlungRam);
+
+ labelRam = new JLabel("");
+ labelRam.setBounds(10, 455, 296, 14);
+ panel.add(labelRam);
+
+ JLabel lblEmpfehlungCpu = new JLabel("Empfehlung CPU:");
+ lblEmpfehlungCpu.setBounds(10, 469, 130, 14);
+ panel.add(lblEmpfehlungCpu);
+
+ labelCPU = new JLabel("");
+ labelCPU.setBounds(10, 487, 296, 14);
+ panel.add(labelCPU);
+
+ JLabel lblTechnischeDaten = new JLabel("Technische Daten:");
+ lblTechnischeDaten.setBounds(10, 322, 296, 14);
+ panel.add(lblTechnischeDaten);
+
+ JLabel lblId = new JLabel("ID:");
+ lblId.setBounds(10, 23, 296, 14);
+ panel.add(lblId);
+
+ labelID = new JLabel("");
+ labelID.setBounds(10, 37, 296, 14);
+ panel.add(labelID);
+
+ labelVersion = new JLabel("");
+ labelVersion.setBounds(10, 73, 296, 14);
+ panel.add(labelVersion);
+
+ JLabel lblVersion = new JLabel("Version:");
+ lblVersion.setBounds(10, 57, 296, 14);
+ panel.add(lblVersion);
+
+ JLabel lblBeschreibung = new JLabel("Beschreibung:");
+ lblBeschreibung.setBounds(10, 119, 130, 14);
+ panel.add(lblBeschreibung);
+
+ JScrollPane scrollPane = new JScrollPane();
+ scrollPane.setBounds(10, 135, 296, 65);
+ panel.add(scrollPane);
+
+ textAreadesc = new JTextArea();
+ textAreadesc.setEditable(false);
+ textAreadesc.setFont(new Font("Tahoma", Font.PLAIN, 11));
+ textAreadesc.setLineWrap(true);
+ textAreadesc.setBackground(SystemColor.menu);
+ scrollPane.setViewportView(textAreadesc);
+ 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 mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ mnNewMenu_1.add(mntmAbout);
+
+ }
+
+ // Initiale Beffuelung eines Table models
+ public DefaultTableModel initTableModel(DefaultTableModel model) {
+ List<server.Image> images;
+ try {
+ // Hole eine Liste der Images
+ images = client.getImageList();
+
+ Iterator<server.Image> i = images.iterator();
+ SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+ int x = 0;
+
+ while (i.hasNext()) {
+ // erzeuge Objekte fuer die Tabelle
+ Object[] obj = { images.get(x).getImageName(),
+ images.get(x).getLicenseRestriction(),
+ images.get(x).getOsName(),
+ images.get(x).getLectureName(),
+ images.get(x).getUserData(),
+ out.format(in.parse(images.get(x).updateTime)),
+ images.get(x).id, images.get(x).getVersion(),
+ images.get(x).getIsTemplate() };
+ // Fuege diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+ x++;
+ i.next();
+
+ }
+
+ return model;
+ } catch (TException | ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e1.getCause() + "\n" + e1.getStackTrace(), "Debug-Message",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ return model;
+ }
+
+ public void writeImageData(String id, String version) {
+ try {
+ SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat out = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");
+ Map<String, String> res = client.getImageData(id, version);
+ labelName.setText(res.get("name"));
+ labelOS.setText(res.get("os"));
+ labelUpdate.setText(out.format(in.parse(res.get("lastupdate"))));
+ labelVerantwortlicher.setText(res.get("owner") + " (" + res.get("mail") + ")");
+ labelWeitereVerantwortliche.setText("Keine");
+ if (res.get("template").equals("true")) {
+ labelVorlage.setText("Ja");
+ } else {
+ labelVorlage.setText("Nein");
+ }
+ if (res.get("license").equals("1")) {
+ labelLizenzSoftware.setText("Ja");
+ } else {
+ labelLizenzSoftware.setText("Nein");
+ }
+ if (res.get("internet").equals("1")) {
+ labelInternet.setText("Ja");
+ } else {
+ labelInternet.setText("Nein");
+ }
+ labelRam.setText(res.get("ram"));
+ labelCPU.setText(res.get("cpu"));
+ labelID.setText(res.get("id"));
+ labelVersion.setText(res.get("version"));
+ textAreadesc.setText(res.get("desc"));
+ } catch (TException | ParseException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+}