summaryrefslogtreecommitdiffstats
path: root/Dozentenmodul/src/gui/image
diff options
context:
space:
mode:
authorunknown2014-04-10 16:50:14 +0200
committerunknown2014-04-10 16:50:14 +0200
commit236f2e7bf2c9d5cdec6da36140ee7dcac7944998 (patch)
tree2de499a71a527c7320b2096c17c5a69d2ea8d288 /Dozentenmodul/src/gui/image
parentbfg (diff)
parentcdsc (diff)
downloadtutor-module-236f2e7bf2c9d5cdec6da36140ee7dcac7944998.tar.gz
tutor-module-236f2e7bf2c9d5cdec6da36140ee7dcac7944998.tar.xz
tutor-module-236f2e7bf2c9d5cdec6da36140ee7dcac7944998.zip
Merge branch 'master' of ssh://git.openslx.org/openslx-ng/tutor-module
Conflicts: Dozentenmodul/src/GUI/SearchImage_GUI.java Dozentenmodul/src/Models/person.java Dozentenmodul/src/Models/vm.java
Diffstat (limited to 'Dozentenmodul/src/gui/image')
-rw-r--r--Dozentenmodul/src/gui/image/CreateImageAllgemein_GUI.java304
-rw-r--r--Dozentenmodul/src/gui/image/CreateImageTechnisch_GUI.java366
-rw-r--r--Dozentenmodul/src/gui/image/DeleteImage_GUI.java442
-rw-r--r--Dozentenmodul/src/gui/image/EditImageAllgemein_GUI.java342
-rw-r--r--Dozentenmodul/src/gui/image/EditImageTechnisch_GUI.java351
-rw-r--r--Dozentenmodul/src/gui/image/FTPCreateUploader_GUI.java493
-rw-r--r--Dozentenmodul/src/gui/image/FTPDownloader_GUI.java400
-rw-r--r--Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java475
-rw-r--r--Dozentenmodul/src/gui/image/SearchEditImage_GUI.java520
-rw-r--r--Dozentenmodul/src/gui/image/SearchImage_GUI.java459
10 files changed, 4152 insertions, 0 deletions
diff --git a/Dozentenmodul/src/gui/image/CreateImageAllgemein_GUI.java b/Dozentenmodul/src/gui/image/CreateImageAllgemein_GUI.java
new file mode 100644
index 00000000..bf1d0230
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/CreateImageAllgemein_GUI.java
@@ -0,0 +1,304 @@
+package gui.image;
+
+
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Toolkit;
+import javax.swing.JFrame;
+import javax.swing.JButton;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import java.awt.Color;
+import javax.swing.JLabel;
+import java.awt.Font;
+import javax.swing.JTextPane;
+import java.awt.SystemColor;
+import javax.swing.JTextField;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import javax.swing.JSeparator;
+import javax.swing.JMenuBar;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import javax.swing.border.TitledBorder;
+import javax.swing.JTextArea;
+
+import models.Image;
+import models.person;
+
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+
+@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;
+
+ /**
+ * 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 Vergröß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
+ setTitle("bwLehrpool Suite *Prototyp*");
+ //Zentriert das Fenster
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top=(screenSize.height - 722) / 2;
+ int left=(screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+
+ 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 Imagename 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, 31, 125, 20);
+ panel_1.add(lblImagename);
+
+
+ imagename = new JTextField();
+ imagename.setBackground(Color.WHITE);
+ imagename.setText((String) null);
+ imagename.setColumns(10);
+ imagename.setBounds(145, 31, 350, 20);
+ imagename.setText(Image.image.getImagename()); //null am Anfang, aber speichert die Eingabe, wenn man zurück 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, 62, 350, 110);
+ panel_1.add(txtrGebenSieBitte);
+
+ JPanel panel = new JPanel();
+ panel.setBounds(10, 402, 577, 33);
+ contentPanel.add(panel);
+ panel.setLayout(null);
+ panel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ panel.setBackground(SystemColor.menu);
+
+ JLabel lblPflichtfelder = new JLabel("* Pflichtfelder");
+ lblPflichtfelder.setBounds(10, 442, 136, 14);
+ contentPanel.add(lblPflichtfelder);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ //Öffnet das Hauptmenü
+ 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("VL-Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 11, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("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());
+ 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) {
+ //Prüft die Eingabe
+ if(imagename.getText().isEmpty()==false && Vorname.getText().isEmpty()==false && Nachname.getText().isEmpty()==false && Hochschule.getText().isEmpty()==false&&EMail.getText().isEmpty()==false)
+ {
+ //Schreibt die Daten in das Model
+ Image.image.setImagename(imagename.getText());
+ CreateImageTechnisch_GUI ea=new CreateImageTechnisch_GUI();
+ ea.setVisible(true);
+ dispose();
+ }
+ else{
+ JOptionPane.showMessageDialog(null, "Bitte geben Sie alle notwendigen Daten an!",
+ "Daten unvollständig", JOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+ });
+ 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");
+ mnNewMenu_1.add(mntmFaq);
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mnNewMenu_1.add(mntmOtrs);
+
+ }//end main
+}
diff --git a/Dozentenmodul/src/gui/image/CreateImageTechnisch_GUI.java b/Dozentenmodul/src/gui/image/CreateImageTechnisch_GUI.java
new file mode 100644
index 00000000..e9d2d91a
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/CreateImageTechnisch_GUI.java
@@ -0,0 +1,366 @@
+package gui.image;
+
+
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Toolkit;
+import javax.swing.JFrame;
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import java.awt.Color;
+import javax.swing.JLabel;
+import java.awt.Font;
+import javax.swing.JTextPane;
+import java.awt.SystemColor;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import javax.swing.JSeparator;
+import javax.swing.JMenuBar;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import javax.swing.border.TitledBorder;
+import javax.swing.JTextArea;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import javax.swing.JRadioButton;
+import javax.swing.ButtonGroup;
+import javax.swing.JSpinner;
+import javax.swing.SpinnerNumberModel;
+
+import models.Image;
+
+@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;
+ private final ButtonGroup buttonGrouplicense = new ButtonGroup();
+ private final ButtonGroup buttonGroupInternet = new ButtonGroup();
+ /**
+ * Launch the application.
+ */
+ public static void main(String[] args) {
+ try {
+ CreateImageTechnisch_GUI dialog = new CreateImageTechnisch_GUI();
+ dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+ dialog.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 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 *Prototyp*");
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top=(screenSize.height - 722) / 2;
+ int left=(screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+ //setBounds(100, 100, 603, 722);
+ 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 Imagename 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 Image", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 66, 557, 124);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ rdbtnlicenseNein = new JRadioButton("Nein");
+ buttonGrouplicense.add(rdbtnlicenseNein);
+ rdbtnlicenseNein.setBounds(377, 29, 46, 23);
+ panel_1.add(rdbtnlicenseNein);
+
+ rdbtnInternetNein = new JRadioButton("Nein");
+ rdbtnInternetNein.setSelected(true);
+ buttonGroupInternet.add(rdbtnInternetNein);
+ rdbtnInternetNein.setBounds(377, 57, 46, 23);
+ panel_1.add(rdbtnInternetNein);
+
+ JLabel lblInternetIstInnerhalb = new JLabel("Internet ist f\u00FCr dieses Image gesperrt:");
+ lblInternetIstInnerhalb.setBounds(10, 58, 250, 20);
+ panel_1.add(lblInternetIstInnerhalb);
+
+ JButton btnInternetSettings = new JButton("Einstellungen...");
+ btnInternetSettings.setEnabled(false);
+ btnInternetSettings.setBounds(439, 57, 108, 23);
+ panel_1.add(btnInternetSettings);
+
+ rdbtnInternetJa = new JRadioButton("Ja");
+
+ buttonGroupInternet.add(rdbtnInternetJa);
+ rdbtnInternetJa.setBounds(266, 57, 41, 23);
+ panel_1.add(rdbtnInternetJa);
+
+ rdbtnlicenseJa = new JRadioButton("Ja");
+ rdbtnlicenseJa.setSelected(true);
+ buttonGrouplicense.add(rdbtnlicenseJa);
+ rdbtnlicenseJa.setBounds(266, 29, 41, 23);
+ panel_1.add(rdbtnlicenseJa);
+
+ JLabel lblNewLabel_2 = new JLabel("Image enth\u00E4lt lizenzpflichtige Software:");
+ lblNewLabel_2.setBounds(10, 30, 250, 20);
+ panel_1.add(lblNewLabel_2);
+
+ JLabel lblLizenzserverEintragen = new JLabel("Lizenzserver eintragen:");
+ lblLizenzserverEintragen.setBounds(10, 85, 250, 20);
+ panel_1.add(lblLizenzserverEintragen);
+
+ JButton btnLicenseServer = new JButton("Server-Adresse...");
+ btnLicenseServer.setEnabled(false);
+ btnLicenseServer.setBounds(266, 84, 157, 23);
+ panel_1.add(btnLicenseServer);
+
+ JPanel panel_2 = new JPanel();
+ panel_2.setLayout(null);
+ panel_2.setBorder(new TitledBorder(null, "Empfehlung bezüglich Ressourcen", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_2.setBackground(SystemColor.menu);
+ panel_2.setBounds(11, 196, 557, 338);
+ 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("VL-Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 11, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("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(rdbtnInternetJa.isSelected()==true)
+ {
+ Image.image.setInternet(true);
+ }
+ else
+ {
+ Image.image.setInternet(false);
+ }
+
+ if(rdbtnlicenseJa.isSelected()==true)
+ {
+ Image.image.setLicensed(true);
+ }
+ else
+ {
+ Image.image.setLicensed(false);
+ }
+ Image.image.setCpu(Integer.valueOf(spinnerCPU.getValue().toString()).intValue());
+ Image.image.setRam(Integer.valueOf(spinnerRam.getValue().toString()).intValue());
+
+ 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(rdbtnInternetJa.isSelected()==true)
+ {
+ Image.image.setInternet(true);
+ }
+ else
+ {
+ Image.image.setInternet(false);
+ }
+
+ if(rdbtnlicenseJa.isSelected()==true)
+ {
+ Image.image.setLicensed(true);
+ }
+ else
+ {
+ Image.image.setLicensed(false);
+ }
+ Image.image.setCpu(Integer.valueOf(spinnerCPU.getValue().toString()).intValue());
+ Image.image.setRam(Integer.valueOf(spinnerRam.getValue().toString()).intValue());
+ 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 = new JMenu("Suchen");
+ menuBar.add(mnNewMenu);
+
+ JMenuItem mntmVlSuche = new JMenuItem("VL Suche");
+ mnNewMenu.add(mntmVlSuche);
+
+ JMenu mnNewMenu_1 = new JMenu("Hilfe");
+ menuBar.add(mnNewMenu_1);
+
+ JMenuItem mntmFaq = new JMenuItem("FAQ");
+ mnNewMenu_1.add(mntmFaq);
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mnNewMenu_1.add(mntmOtrs);
+
+ }
+}
diff --git a/Dozentenmodul/src/gui/image/DeleteImage_GUI.java b/Dozentenmodul/src/gui/image/DeleteImage_GUI.java
new file mode 100644
index 00000000..d19e5c9f
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/DeleteImage_GUI.java
@@ -0,0 +1,442 @@
+package gui.image;
+
+
+import gui.intro.MainMenue_GUI;
+import gui.lecture.ExtendedSearchForImages_GUI;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.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.util.Iterator;
+import java.util.List;
+
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JDialog;
+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.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+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.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+import org.apache.thrift.TException;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+
+@SuppressWarnings("serial")
+public class DeleteImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ JRadioButton rdbtnInternetJa;
+ JRadioButton rdbtnInternetNein;
+ JComboBox<String> comboBox;
+ JTable tableAllImages;
+ JTable tablemyImages;
+ private JTextField textFieldName;
+ JTabbedPane tabbedPane;
+ String[] titles= {"Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung", "Verantwortlicher", "Letztes Update", "Schlagwort"};
+ ThriftConnection con=new ThriftConnection();
+ Client client=con.getThriftConnection();
+ final DefaultTableModel modelAll = new DefaultTableModel( titles, 0 );
+ final DefaultTableModel modelMyImages = new DefaultTableModel( titles, 0 );
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>( modelAll );
+ final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>( modelMyImages );
+
+ /**
+ * Launch the application.
+ */
+ public static void main(String[] args) {
+ try {
+ DeleteImage_GUI dialog = new DeleteImage_GUI();
+ dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+ dialog.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Create the dialog.
+ */
+ public DeleteImage_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ //Beendet die Anwendung nach klick auf X
+ System.exit(0);
+ }
+ });
+ //Verhindert das Vergrößern 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 *Prototyp*");
+ //Zentriert das Fenster in die Bildmitte
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top=(screenSize.height - 722) / 2;
+ int left=(screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+
+
+
+ final DefaultTableModel model = new DefaultTableModel( titles, 0 );
+
+
+ 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("Suche nach VL-Image");
+ 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 VL-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, 131);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Anzeigename:");
+ lblNewLabel_2.setBounds(10, 30, 250, 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!="")
+ {
+ //Filtere nach der Eingabe
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(textFieldName.getText(), 0));
+
+ }
+ }});
+
+
+ textFieldName.setBounds(270, 30, 250, 20);
+ panel_1.add(textFieldName);
+ textFieldName.setColumns(10);
+
+ JLabel lblErweiterteSuche = new JLabel("<html><u>Erweiterte Suche</u></html>");
+ lblErweiterteSuche.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ //Öffnet das Fenster Extended GUI
+ ExtendedSearchForImages_GUI es=new ExtendedSearchForImages_GUI();
+ es.setVisible(true);
+ }
+ });
+ lblErweiterteSuche.setForeground(Color.BLUE);
+
+ lblErweiterteSuche.setBounds(431, 106, 89, 14);
+ panel_1.add(lblErweiterteSuche);
+
+ comboBox = new JComboBox<String>();
+ try {
+ //Holt sich eine Liste aller verfügbaren Betriebssysteme vom Server
+ List<String> list=client.getAllOS();
+ //Leeres Item hinzufügen
+ comboBox.addItem("");
+ for(int i=0;i<list.size();i++)
+ {
+ //Hinzufügen der verfügbaren Betriebssysteme
+ comboBox.addItem(list.get(i));
+ }
+ } catch (TException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ //Registriert Auswahländerungen der Box
+ comboBox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ //Prüft das die Auswahl nicht leer ist
+ if(comboBox.getSelectedItem().toString()!="")
+ {
+ //Filtert nach dem ausgewählten Betriebssystem
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox.getSelectedItem().toString(), 2));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(comboBox.getSelectedItem().toString(), 2));
+ }
+ }
+
+ });
+ comboBox.setBounds(270, 58, 250, 20);
+ panel_1.add(comboBox);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ //Öffnet das Hauütmenü
+ 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("VL-Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 11, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Imageauswahl");
+ lblNewLabel_1.setBounds(146, 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){
+
+
+
+ }
+ else if(tabbedPane.getSelectedIndex()==1){
+ String username="Spitzer Tobias";
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(username, 4));
+ //rowSorterMyImages.toggleSortOrder(0);
+ }
+
+ }
+ });
+
+ tabbedPane.setBounds(10, 197, 557, 300);
+ contentPanel.add(tabbedPane);
+
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ tablemyImages=new JTable();
+ 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();
+ initTableModel(modelMyImages);
+ tablemyImages.setRowSorter(rowSorterMyImages);
+ initTableModel(modelAll);
+
+ 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 scrollPaneAllImages = new JScrollPane();
+ tableAllImages=new JTable();
+ 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("Kooperative Images", null, scrollPaneCoopImages, null);
+ tabbedPane.setEnabledAt(2, false);
+
+ JScrollPane scrollPanePublicImages = new JScrollPane();
+ JTable tablePublicImages=new JTable();
+ tablePublicImages.setModel(model);
+ tablePublicImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(5).sizeWidthToFit();
+
+ scrollPanePublicImages.setViewportView(tablePublicImages);
+ tabbedPane.addTab("\u00D6ffentliche Images", null, scrollPanePublicImages, null);
+ tabbedPane.setEnabledAt(3, false);
+
+ JScrollPane scrollPanePublicVorlagen = new JScrollPane();
+ JTable tablePublicVorlagen=new JTable();
+ tablePublicVorlagen.setModel(model);
+ 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();
+
+ scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
+ tabbedPane.addTab("\u00D6ffentliche Vorlagen", null, scrollPanePublicVorlagen, null);
+ tabbedPane.setEnabledAt(4, false);
+
+
+
+
+ JButton btnDelete = new JButton("L\u00F6schen");
+ btnDelete.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ //Öffnet den Downloader
+ FTPDownloader_GUI down=new FTPDownloader_GUI();
+ down.setVisible(true);
+ DeleteImage_GUI.this.setVisible(false);
+ }
+ });
+ btnDelete.setBounds(449, 508, 118, 23);
+ contentPanel.add(btnDelete);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ JButton mainButton = new JButton("Hauptmen\u00FC");
+ mainButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ EditImageAllgemein_GUI ea=new EditImageAllgemein_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ mainButton.setActionCommand("Cancel");
+ buttonPane.add(mainButton);
+ }
+ }
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 78, 597, 2);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 597, 2);
+ getContentPane().add(separator_1);
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu mnNewMenu_1 = new JMenu("Hilfe");
+ menuBar.add(mnNewMenu_1);
+
+ JMenuItem mntmFaq = new JMenuItem("FAQ");
+ mnNewMenu_1.add(mntmFaq);
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mnNewMenu_1.add(mntmOtrs);
+
+ }
+ //Initiale Beffülung 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;
+
+ while(i.hasNext())
+ {
+ //erzeuge Objekte für die Tabelle
+ Object [] obj={images.get(x).getImageName(),images.get(x).getLicenseRestriction(),images.get(x).getOsName(),images.get(x).getLectureName(),images.get(x).getUserData(),images.get(x).getUpdateTime()};
+ //Füge diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+ x++;
+ i.next();
+
+ }
+
+ return model;
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ return model;
+ }
+
+ }
+
+
diff --git a/Dozentenmodul/src/gui/image/EditImageAllgemein_GUI.java b/Dozentenmodul/src/gui/image/EditImageAllgemein_GUI.java
new file mode 100644
index 00000000..b80e4953
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/EditImageAllgemein_GUI.java
@@ -0,0 +1,342 @@
+package gui.image;
+
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.util.Map;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JSeparator;
+import javax.swing.JTextArea;
+import javax.swing.JTextField;
+import javax.swing.JTextPane;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+import org.apache.thrift.TException;
+import models.Image;
+import models.person;
+import server.Server.Client;
+import thrift.ThriftConnection;
+
+@SuppressWarnings("serial")
+public class EditImageAllgemein_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ private JTextField Vorname;
+ private JTextField Nachname;
+ private JTextField Hochschule;
+ private JTextField EMail;
+ private JTextField imagename;
+ ThriftConnection con=new ThriftConnection();
+ Client client=con.getThriftConnection();
+ private JPanel panel_2;
+ private JLabel lblNewLabel;
+ private JTextPane txtpnBitteWhlenSie;
+ private JPanel buttonPane;
+ private JButton backButton;
+ private JButton okButton;
+
+ /**
+ * Create the dialog.
+ */
+ public EditImageAllgemein_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ //Beendet die Anwendung bei einem Klick auf das X
+ con.closeThriftConnection();
+ System.exit(0);
+ }
+ });
+ //Verhindert das vergrößern des Fensters
+ setResizable(false);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ //Setzt den Fenstertitel
+ setTitle("bwLehrpool Suite *Prototyp*");
+
+ //Zentriert das Fenster in der Bildmitte
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top=(screenSize.height - 722) / 2;
+ int left=(screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+ initData();
+ getContentPane().setLayout(null);
+ {
+ panel_2 = new JPanel();
+ panel_2.setBackground(SystemColor.menu);
+ panel_2.setBounds(10, 11, 577, 57);
+ getContentPane().add(panel_2);
+ panel_2.setLayout(null);
+ {
+ lblNewLabel = new JLabel("Bearbeiten Ihrer Daten");
+ lblNewLabel.setBounds(10, 11, 509, 22);
+ panel_2.add(lblNewLabel);
+ lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18));
+ }
+
+ txtpnBitteWhlenSie = new JTextPane();
+ txtpnBitteWhlenSie.setEditable(false);
+ txtpnBitteWhlenSie.setBackground(SystemColor.menu);
+ txtpnBitteWhlenSie.setText("Geben Sie hier bitte einen sprechenden Imagename sowie Ihre Kontaktdaten an");
+ txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
+ panel_2.add(txtpnBitteWhlenSie);
+ }
+ contentPanel.setBounds(10, 85, 577, 493);
+ contentPanel.setBackground(SystemColor.menu);
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel);
+ contentPanel.setLayout(null);
+
+ JPanel panel_1 = new JPanel();
+ panel_1.setBackground(SystemColor.menu);
+ panel_1.setBorder(new TitledBorder(null, "Informationen zum Besitzer", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 66, 557, 369);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel label = new JLabel("Vorname: *");
+ label.setBackground(SystemColor.menu);
+ label.setBounds(10, 245, 125, 20);
+ panel_1.add(label);
+
+ Vorname = new JTextField();
+ Vorname.setEditable(false);
+ Vorname.setEnabled(false);
+ Vorname.setBackground(Color.WHITE);
+ Vorname.setText(person.verantwortlicher.getVorname());
+ Vorname.setColumns(10);
+ Vorname.setBounds(145, 245, 350, 20);
+ panel_1.add(Vorname);
+
+ JLabel label_7 = new JLabel("Nachname: *");
+ label_7.setBackground(SystemColor.menu);
+ label_7.setBounds(10, 276, 125, 20);
+ panel_1.add(label_7);
+
+ Nachname = new JTextField();
+ Nachname.setEnabled(false);
+ Nachname.setEditable(false);
+ Nachname.setBackground(Color.WHITE);
+ Nachname.setText(person.verantwortlicher.getName());
+ Nachname.setColumns(10);
+ Nachname.setBounds(145, 276, 350, 20);
+ panel_1.add(Nachname);
+
+ JLabel label_8 = new JLabel("Hochschule: *");
+ label_8.setBackground(SystemColor.menu);
+ label_8.setBounds(10, 307, 125, 20);
+ panel_1.add(label_8);
+
+ Hochschule = new JTextField();
+ Hochschule.setEnabled(false);
+ Hochschule.setEditable(false);
+ Hochschule.setBackground(Color.WHITE);
+ Hochschule.setText(person.verantwortlicher.getHochschule());
+ Hochschule.setColumns(10);
+ Hochschule.setBounds(145, 307, 350, 20);
+ panel_1.add(Hochschule);
+
+ JLabel label_9 = new JLabel("E-Mail: *");
+ label_9.setBackground(SystemColor.menu);
+ label_9.setBounds(10, 338, 125, 20);
+ panel_1.add(label_9);
+
+ EMail = new JTextField();
+ EMail.setEnabled(false);
+ EMail.setEditable(false);
+ EMail.setBackground(Color.WHITE);
+ EMail.setText(person.verantwortlicher.getEMail());
+ EMail.setColumns(10);
+ EMail.setBounds(145, 338, 350, 20);
+ panel_1.add(EMail);
+
+ JLabel lblImagename = new JLabel("Imagename: *");
+ lblImagename.setBackground(SystemColor.menu);
+ lblImagename.setBounds(10, 31, 125, 20);
+ panel_1.add(lblImagename);
+
+ imagename = new JTextField();
+ imagename.setToolTipText("Bitte geben Sie hier den Namen des Image ein, z.B. \"Programmieren\".");
+ imagename.setBackground(Color.WHITE);
+ imagename.setText(Image.image.getImagename());
+ imagename.setColumns(10);
+ imagename.setBounds(145, 31, 350, 20);
+ panel_1.add(imagename);
+
+ JTextArea txtrGebenSieBitte = new JTextArea();
+ txtrGebenSieBitte.setBackground(SystemColor.menu);
+ txtrGebenSieBitte.setLineWrap(true);
+ txtrGebenSieBitte.setFont(new Font("Tahoma", Font.PLAIN, 12));
+ txtrGebenSieBitte.setText("Geben Sie bitte einen sprechenden Namen f\u00FCr das Image an.\r\nDieser soll jedoch recht allgemein gehalten werden.\r\nBeispiel: \"Programmieren\", nicht \"Programmieren 1\"");
+ txtrGebenSieBitte.setBounds(145, 62, 350, 110);
+ panel_1.add(txtrGebenSieBitte);
+
+ JPanel panel = new JPanel();
+ panel.setBounds(10, 402, 577, 33);
+ contentPanel.add(panel);
+ panel.setLayout(null);
+ panel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ panel.setBackground(SystemColor.menu);
+
+ JLabel lblPflichtfelder = new JLabel("* Pflichtfelder");
+ lblPflichtfelder.setBounds(10, 442, 136, 14);
+ contentPanel.add(lblPflichtfelder);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ //Durch den Klick auf Button Hauptmenpü wird dieses Fenster unsichtbar und das Hauptmenü sichtbar
+ con.closeThriftConnection();
+ EditImageAllgemein_GUI.this.setVisible(false);
+ MainMenue_GUI main=new MainMenue_GUI();
+ main.setVisible(true);
+ }
+ });
+ lblHauptmen.setForeground(Color.BLUE);
+ lblHauptmen.setBounds(10, 11, 61, 14);
+ contentPanel.add(lblHauptmen);
+
+ JLabel label_1 = new JLabel(">");
+ label_1.setBounds(69, 11, 13, 14);
+ contentPanel.add(label_1);
+
+ JLabel lblVlimage = new JLabel("VL-Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 11, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Bearbeiten");
+ lblNewLabel_1.setBounds(146, 11, 71, 14);
+ contentPanel.add(lblNewLabel_1);
+ {
+ buttonPane = new JPanel();
+ buttonPane.setBounds(0, 640, 597, 33);
+ buttonPane.setBackground(SystemColor.menu);
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane);
+ {
+ backButton = new JButton("Zur\u00FCck");
+ backButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ //Setzen der Eingabe im Model, dadurch bleiben die Daten bei einem erneuten Aufruf verfügbar
+ //Image.image.setImagename(imagename.getText());
+ con.closeThriftConnection();
+ 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) {
+ //check is textfield has content
+ if(imagename.getText().length() <= 0){
+ JOptionPane.showMessageDialog(null,
+ "Bitte geben Sie einen Labornamen ein.",
+ "Daten nicht vollständig",
+ JOptionPane.INFORMATION_MESSAGE);
+ } else {
+ Image.image.setNewName(imagename.getText());
+ con.closeThriftConnection();
+ EditImageTechnisch_GUI ea=new EditImageTechnisch_GUI();
+ ea.setVisible(true);
+ dispose();
+ }//end else
+ }
+ });
+
+ okButton.setActionCommand("OK");
+ buttonPane.add(okButton);
+ getRootPane().setDefaultButton(okButton);
+ }
+ }
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 78, 597, 2);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 597, 2);
+ getContentPane().add(separator_1);
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu mnNewMenu_1 = new JMenu("Hilfe");
+ menuBar.add(mnNewMenu_1);
+
+ JMenuItem mntmFaq = new JMenuItem("FAQ");
+ mnNewMenu_1.add(mntmFaq);
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mnNewMenu_1.add(mntmOtrs);
+ //setFocusTraversalPolicy(new FocusTraversalOnArray(new Component[]{getContentPane(), panel_2, lblNewLabel, txtpnBitteWhlenSie, contentPanel, panel_1, label, Vorname, label_7, Nachname, label_8, Hochschule, label_9, EMail, lblImagename, imagename, txtrGebenSieBitte, panel, lblPflichtfelder, lblHauptmen, label_1, lblVlimage, label_2, lblNewLabel_1, buttonPane, backButton, okButton, separator, separator_1, menuBar, mnNewMenu_1, mntmFaq, mntmOtrs}));
+
+ }
+
+ public void initData(){
+ try {
+
+ Map<String,String> map=client.getImageData(Image.image.getImageId(),Image.image.getVersion());
+ if(map.get("internet").equals("0")){
+ Image.image.setInternet(false);
+ }
+ else
+ {
+ Image.image.setInternet(true);
+ }
+ if(map.get("license").equals("0")){
+ Image.image.setLicensed(false);
+ }
+ else{
+ Image.image.setLicensed(true);
+ }
+ Image.image.setImagename(map.get("name"));
+ Image.image.setRam(Integer.parseInt(map.get("ram")));
+ Image.image.setCpu(Integer.parseInt(map.get("cpu")));
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+
+}
diff --git a/Dozentenmodul/src/gui/image/EditImageTechnisch_GUI.java b/Dozentenmodul/src/gui/image/EditImageTechnisch_GUI.java
new file mode 100644
index 00000000..7d9de383
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/EditImageTechnisch_GUI.java
@@ -0,0 +1,351 @@
+package gui.image;
+
+import gui.intro.MainMenue_GUI;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import 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 models.Image;
+
+@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;
+ private final ButtonGroup buttonGrouplicense = new ButtonGroup();
+ private final ButtonGroup buttonGroupInternet = new ButtonGroup();
+
+ /**
+ * 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 Vergröß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 *Prototyp*");
+ // Zentriert das Fenster
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top = (screenSize.height - 722) / 2;
+ int left = (screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+
+ 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 Imagename 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 Image",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_1.setBounds(10, 66, 557, 95);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel(
+ "Image enth\u00E4lt lizenzpflichtige Software:");
+ lblNewLabel_2.setBounds(10, 30, 250, 20);
+ panel_1.add(lblNewLabel_2);
+
+ rdbtnlicenseJa = new JRadioButton("Ja");
+ rdbtnlicenseJa.setSelected(true);
+ buttonGrouplicense.add(rdbtnlicenseJa);
+ rdbtnlicenseJa.setBounds(266, 29, 109, 23);
+ panel_1.add(rdbtnlicenseJa);
+
+ rdbtnlicenseNein = new JRadioButton("Nein");
+ buttonGrouplicense.add(rdbtnlicenseNein);
+ rdbtnlicenseNein.setBounds(377, 29, 109, 23);
+ panel_1.add(rdbtnlicenseNein);
+ if (Image.image.isLicensed() == true) {
+ rdbtnlicenseJa.setSelected(true);
+ } else {
+ rdbtnlicenseNein.setSelected(true);
+ }
+
+ JLabel lblInternetIstInnerhalb = new JLabel(
+ "Internet ist innerhalb des Image gesperrt:");
+ lblInternetIstInnerhalb.setBounds(10, 58, 250, 20);
+ panel_1.add(lblInternetIstInnerhalb);
+
+ rdbtnInternetJa = new JRadioButton("Ja");
+ buttonGroupInternet.add(rdbtnInternetJa);
+ rdbtnInternetJa.setBounds(266, 57, 109, 23);
+ panel_1.add(rdbtnInternetJa);
+
+ rdbtnInternetNein = new JRadioButton("Nein");
+ rdbtnInternetNein.setSelected(true);
+ buttonGroupInternet.add(rdbtnInternetNein);
+ rdbtnInternetNein.setBounds(377, 57, 109, 23);
+ panel_1.add(rdbtnInternetNein);
+ if (Image.image.isInternet() == true) {
+ rdbtnInternetJa.setSelected(true);
+ } else {
+ rdbtnInternetNein.setSelected(true);
+ }
+ 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, 11, 61, 14);
+ contentPanel.add(lblHauptmen);
+
+ JLabel label_1 = new JLabel(">");
+ label_1.setBounds(69, 11, 13, 14);
+ contentPanel.add(label_1);
+
+ JLabel lblVlimage = new JLabel("VL-Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 11, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Neu");
+ lblNewLabel_1.setBounds(146, 11, 46, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ JPanel panel_2 = new JPanel();
+ panel_2.setLayout(null);
+ panel_2.setBorder(new TitledBorder(null,
+ "Empfehlung bezüglich Ressourcen", TitledBorder.LEADING,
+ TitledBorder.TOP, null, null));
+ panel_2.setBackground(SystemColor.menu);
+ panel_2.setBounds(10, 172, 557, 338);
+ 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, 25, 537, 55);
+ panel_2.add(txtrHinweisSolltenSie);
+
+ 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);
+
+ JLabel lblMindestens = new JLabel("mindestens");
+ lblMindestens.setBounds(315, 91, 60, 20);
+ panel_2.add(lblMindestens);
+
+ spinnerRam = new JSpinner();
+ spinnerRam.setModel(new SpinnerNumberModel(1, 1, 8, 1));
+ spinnerRam.setBounds(385, 88, 29, 20);
+ spinnerRam.setValue(Image.image.getRam());
+ panel_2.add(spinnerRam);
+
+ JLabel lblGbyte = new JLabel("GByte");
+ lblGbyte.setBounds(424, 91, 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, 111, 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, 226, 280, 55);
+ panel_2.add(txtrBeispielWindows_1);
+
+ JLabel lblWieVieleCpus = new JLabel(
+ "Wie viele CPUs empfehlen Sie f\u00FCr das Image:");
+ lblWieVieleCpus.setBounds(10, 201, 280, 20);
+ panel_2.add(lblWieVieleCpus);
+
+ JLabel label_3 = new JLabel("mindestens");
+ label_3.setBounds(315, 201, 60, 20);
+ panel_2.add(label_3);
+
+ spinnerCPU = new JSpinner();
+ spinnerCPU.setModel(new SpinnerNumberModel(1, 1, 4, 1));
+ spinnerCPU.setBounds(385, 198, 29, 20);
+ spinnerCPU.setValue(Image.image.getCpu());
+ panel_2.add(spinnerCPU);
+
+ JLabel lblKerne = new JLabel("Kerne");
+ lblKerne.setBounds(424, 201, 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 (rdbtnInternetJa.isSelected() == true) {
+ Image.image.setInternet(true);
+ } else {
+ Image.image.setInternet(false);
+ }
+
+ if (rdbtnlicenseJa.isSelected() == true) {
+ Image.image.setLicensed(true);
+ } else {
+ Image.image.setLicensed(false);
+ }
+ // Öffnet 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 (rdbtnInternetJa.isSelected() == true) {
+ Image.image.setInternet(true);
+ } else {
+ Image.image.setInternet(false);
+ }
+
+ if (rdbtnlicenseJa.isSelected() == true) {
+ Image.image.setLicensed(true);
+ } else {
+ Image.image.setLicensed(false);
+ }
+ // Öffnet das nächste Fenster
+ FTPEditUploader_GUI ea = new FTPEditUploader_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");
+ mnNewMenu_1.add(mntmFaq);
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mnNewMenu_1.add(mntmOtrs);
+
+ }
+
+}
diff --git a/Dozentenmodul/src/gui/image/FTPCreateUploader_GUI.java b/Dozentenmodul/src/gui/image/FTPCreateUploader_GUI.java
new file mode 100644
index 00000000..1bf8cc3a
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/FTPCreateUploader_GUI.java
@@ -0,0 +1,493 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+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.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.person;
+import org.apache.thrift.TException;
+import server.Server.Client;
+import thrift.ThriftConnection;
+//import util.XMLCreator;
+import ftp.UploadTask;
+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 = "141.79.128.121";
+ String host = "141.79.128.102";
+ 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;
+ long filesize;
+ double speed;
+ long bytesread;
+ boolean taskrun = false;
+ ThriftConnection thrift = new ThriftConnection();
+ Client client = thrift.getThriftConnection();
+ 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
+
+ /**
+ * Launch the application.
+ */
+ public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ FTPCreateUploader_GUI frame = new FTPCreateUploader_GUI();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ /**
+ * Create the frame.
+ */
+ public FTPCreateUploader_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ if (taskrun == true) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ }
+ System.exit(0);
+ }// end window closing
+ });
+ setResizable(false);
+
+ 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 *Prototyp*");
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top = (screenSize.height - 722) / 2;
+ int left = (screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+ // setBounds(100, 100, 603, 250);
+ 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) {
+ JFileChooser fc = new JFileChooser();
+ 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("");
+ 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 {
+ // wenn leer, dann upload button nicht 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("VL-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);
+
+ JButton btnCopyFileTo = new JButton("Copy File to Prod");
+ btnCopyFileTo.setEnabled(false);
+ btnCopyFileTo.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ try {
+ System.out.println("Copying file to " + user.path + "/"
+ + uploadFile.getName());
+ client.startFileCopy(user.path + "/" + uploadFile.getName());
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ });
+ btnCopyFileTo.setBounds(102, 375, 173, 23);
+ contentPanel.add(btnCopyFileTo);
+
+ 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();
+ dispose();
+ MainMenue_GUI m = new MainMenue_GUI();
+ m.setVisible(true);
+ if (taskrun == true) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ thrift.closeThriftConnection();
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ }
+
+ }
+ });
+
+ btnZurck.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ dispose();
+ thrift.closeThriftConnection();
+ CreateImageTechnisch_GUI m = new CreateImageTechnisch_GUI();
+ m.setVisible(true);
+ }
+ });
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ finishButton.setActionCommand("Cancel");
+ buttonPane.add(finishButton);
+ }
+ }
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu mnHillfe = new JMenu("Hillfe");
+ menuBar.add(mnHillfe);
+ setVisible(true);
+
+ }
+
+ private void buttonUploadActionPerformed(ActionEvent event) {
+
+ 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();
+ }
+ DateFormat formatter = new SimpleDateFormat("yyyMMddhhmmss");
+
+ System.out.println(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, 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);
+
+ // Button zum Fertigstellen freischalten, wenn 100% erreicht sind
+ if (progress == 0 || progress == 100) {
+ // not uploading currently
+ btnZurck.setEnabled(true);
+ } else {
+ // currently uploading, don't let user interact
+ btnZurck.setEnabled(false);
+ }
+
+ // Fertigstellen erlauben wenn upload abgeschlossen
+ if (progress == 100) {
+ 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(),
+ person.verantwortlicher.getVorname(),
+ person.verantwortlicher.getName(),
+ person.verantwortlicher.getHochschule(),
+ person.verantwortlicher.getEMail(),
+ person.verantwortlicher.getTel(),
+ person.verantwortlicher.getFakultät(),
+ Image.image.isLicensed(), Image.image.isInternet(),
+ Image.image.getRam(), Image.image.getCpu(),
+ "/srv/openslx/nfs/temp/" + Image.image.getNewName());
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+
+ }
+} \ No newline at end of file
diff --git a/Dozentenmodul/src/gui/image/FTPDownloader_GUI.java b/Dozentenmodul/src/gui/image/FTPDownloader_GUI.java
new file mode 100644
index 00000000..d0f789f4
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/FTPDownloader_GUI.java
@@ -0,0 +1,400 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Toolkit;
+import java.io.File;
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.SwingConstants;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+import ftp.DownloadTask;
+import gui.intro.MainMenue_GUI;
+
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.SystemColor;
+import java.awt.Font;
+import javax.swing.JTextPane;
+import javax.swing.JSeparator;
+import models.Image;
+import org.apache.thrift.TException;
+import server.Server.Client;
+import server.User;
+import thrift.ThriftConnection;
+
+@SuppressWarnings("serial")
+public class FTPDownloader_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 = "141.79.128.121";
+ String host = "141.79.128.102";
+ int port = 21;
+ String downloadFile = "";
+ static String arg = "";
+ DownloadTask task;
+ JLabel lblBytesread;
+ JLabel lblNewLabel_3;
+ JLabel labelVerbleibend;
+ long filesize;
+ double speed;
+ int progress = 0; // progress of download
+ long bytesread;
+ JLabel labelZeit;
+ boolean taskrun = false;
+ ThriftConnection thrift = new ThriftConnection();
+ Client client = thrift.getThriftConnection();
+ JButton btnZurck = new JButton("Zur\u00FCck");
+ JButton btnDownloadStarten = new JButton("Download starten");
+ JButton btnMainMenu = new JButton("Hauptmen\u00FC");
+
+
+ /**
+ * Create the frame.
+ */
+ public FTPDownloader_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if (taskrun == true) {
+ try {
+ client.DeleteFtpUser(user.userName);
+ thrift.closeThriftConnection();
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ }
+ //dispose();
+ System.exit(0);
+ }//end window closing
+ });
+ setResizable(false);
+ // setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (ClassNotFoundException | InstantiationException
+ | IllegalAccessException | UnsupportedLookAndFeelException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ setBackground(Color.WHITE);
+ setTitle("Dozentenmodul *Prototyp*");
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top = (screenSize.height - 722) / 2;
+ int left = (screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+ 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) {
+ JFileChooser fc = new JFileChooser();
+ fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+
+ fc.showOpenDialog(getParent());
+ 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("");
+ lblPath.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent arg0) {
+ if (lblPath.getText().isEmpty()) {
+ // 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, 11, 577, 57);
+ contentPanel.add(panel);
+
+ JLabel label = new JLabel("Eingabe Ihrer Daten");
+ label.setFont(new Font("Tahoma", Font.BOLD, 18));
+ label.setBounds(10, 11, 509, 22);
+ panel.add(label);
+
+ JTextPane textPane = new JTextPane();
+ textPane.setText("Geben Sie hier bitte einen sprechenden Imagename sowie Ihre Kontaktdaten an");
+ textPane.setEditable(false);
+ textPane.setBackground(SystemColor.menu);
+ textPane.setBounds(10, 36, 509, 32);
+ panel.add(textPane);
+
+ JSeparator separator = new JSeparator();
+ separator.setBounds(0, 79, 597, 2);
+ contentPanel.add(separator);
+
+ JLabel label_1 = new JLabel("Hauptmen\u00FC");
+ label_1.setForeground(Color.BLUE);
+ label_1.setBounds(20, 88, 61, 20);
+ contentPanel.add(label_1);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(80, 91, 14, 14);
+ contentPanel.add(label_2);
+
+ JLabel label_3 = new JLabel("VL-Image");
+ label_3.setForeground(Color.BLUE);
+ label_3.setBounds(91, 88, 46, 20);
+ contentPanel.add(label_3);
+
+ JLabel label_4 = new JLabel(">");
+ label_4.setBounds(139, 91, 14, 14);
+ contentPanel.add(label_4);
+
+ JLabel label_5 = new JLabel("Neu/Bearbeiten");
+ label_5.setBounds(149, 91, 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(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);
+ {
+ btnZurck.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if (taskrun == true) {
+ task.cancel(true);
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ thrift.closeThriftConnection();
+ SearchEditImage_GUI se = new SearchEditImage_GUI();
+ se.setVisible(true);
+ dispose();
+ }
+ });
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ }
+
+
+ btnMainMenu.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ thrift.closeThriftConnection();
+ 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 = client.getPathOfImage(Image.image.getImageId(),
+ Image.image.getVersion());
+
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ task = new DownloadTask(host, port, user.userName, user.password,
+ downloadFile, lblPath.getText(), this);
+ 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 (progress == 0 || progress == 100) {
+ // not uploading currently
+ btnZurck.setEnabled(true);
+ btnMainMenu.setEnabled(true);
+ } else {
+ // currently uploading, don't let user interact
+ btnZurck.setEnabled(false);
+ btnMainMenu.setEnabled(false);
+ }
+ }
+
+ 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");
+
+ }
+
+ }
+} \ No newline at end of file
diff --git a/Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java b/Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java
new file mode 100644
index 00000000..b184c96c
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java
@@ -0,0 +1,475 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.EventQueue;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+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.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.person;
+import org.apache.thrift.TException;
+import server.Server.Client;
+import thrift.ThriftConnection;
+import ftp.UploadTask;
+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 = "141.79.128.121";
+ String host = "141.79.128.102";
+ 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;
+ long filesize;
+ double speed;
+ long bytesread;
+ boolean taskrun = false;
+ int progress = 0;
+ ThriftConnection thrift = new ThriftConnection();
+ Client client = thrift.getThriftConnection();
+ JButton btnUploadStarten = new JButton("Upload auf Server starten");
+ JButton btnSpeicherortAuswhlen = new JButton("Image ausw\u00E4hlen");
+ JButton btnCopyFileTo = new JButton("Copy File to Prod");
+ JButton finishButton = new JButton("Fertigstellen");
+ JButton btnZurck = new JButton("Zur\u00FCck");
+
+ /**
+ * Launch the application.
+ */
+ public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ FTPEditUploader_GUI frame = new FTPEditUploader_GUI();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ /**
+ * Create the frame.
+ */
+ public FTPEditUploader_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ if (taskrun == true) {
+ try {
+
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ }
+ System.exit(0);
+ }// end window closing
+ });
+ setResizable(false);
+ // setDefaultCloseOperation(JDialog.DISPOSE_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 *Prototyp*");
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top = (screenSize.height - 722) / 2;
+ int left = (screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+ // setBounds(100, 100, 603, 250);
+ 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) {
+ JFileChooser fc = new JFileChooser();
+ fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
+
+ fc.showOpenDialog(getParent());
+ File file = fc.getSelectedFile();
+ // check if a file is selected and exists
+ if (file != null) {
+ // file exists
+ 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("");
+ 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 {
+ // wenn leer, dann upload button nicht 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("VL-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);
+
+ btnCopyFileTo.setEnabled(false);
+ btnCopyFileTo.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ try {
+ client.startFileCopy(user.path + "/" + uploadFile.getName());
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ });
+ btnCopyFileTo.setBounds(102, 375, 173, 23);
+ contentPanel.add(btnCopyFileTo);
+
+ 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();
+ 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();
+ }
+ task.cancel(true);
+ }
+ thrift.closeThriftConnection();
+ }
+ });
+ btnZurck.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ dispose();
+ EditImageTechnisch_GUI ei = new EditImageTechnisch_GUI();
+ ei.setVisible(true);
+ }
+ });
+
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ finishButton.setActionCommand("Cancel");
+ buttonPane.add(finishButton);
+ }
+ }
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu mnHillfe = new JMenu("Hillfe");
+ menuBar.add(mnHillfe);
+ setVisible(true);
+
+ }
+
+ private void buttonUploadActionPerformed(ActionEvent event) {
+
+ 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();
+ }
+ DateFormat formatter = new SimpleDateFormat("yyyMMddhhmmss");
+ 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, uploadFile);
+
+ task.addPropertyChangeListener(this);
+ task.execute();
+ taskrun = true;
+
+ }
+
+ public void propertyChange(PropertyChangeEvent arg0) {
+ if ("progress" == arg0.getPropertyName()) {
+ progress = (Integer) arg0.getNewValue();
+ progressBar.setValue(progress);
+
+ // Button zum Fertigstellen freischalten, wenn 100% erreicht sind
+ if (progress == 0 || progress == 100) {
+ // not uploading currently
+ btnZurck.setEnabled(true);
+ } else {
+ // currently uploading, don't let user interact
+ btnZurck.setEnabled(false);
+ }
+
+ // Fertigstellen erlauben wenn upload abgeschlossen
+ if (progress == 100) {
+ 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 updateData() {
+
+ try {
+ client.updateImageData(Image.image.getImagename(),
+ Image.image.getNewName(), Image.image.isLicensed(),
+ Image.image.isInternet(), Image.image.getRam(),
+ Image.image.getCpu(), Image.image.getImageId(),
+ Image.image.getVersion());
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return false;
+ }
+ return true;
+
+ }
+} \ No newline at end of file
diff --git a/Dozentenmodul/src/gui/image/SearchEditImage_GUI.java b/Dozentenmodul/src/gui/image/SearchEditImage_GUI.java
new file mode 100644
index 00000000..e6bb055e
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/SearchEditImage_GUI.java
@@ -0,0 +1,520 @@
+package gui.image;
+
+import gui.intro.MainMenue_GUI;
+import gui.lecture.ExtendedSearchForImages_GUI;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.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.util.Iterator;
+import java.util.List;
+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.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.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+import models.Image;
+import models.person;
+//import models.person;
+
+import org.apache.thrift.TException;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+
+@SuppressWarnings("serial")
+public class SearchEditImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ JRadioButton rdbtnInternetJa;
+ JRadioButton rdbtnInternetNein;
+ JComboBox<String> comboBox;
+ JTable tableAllImages;
+ JTable tablemyImages;
+ private JTextField textFieldName;
+ JTabbedPane tabbedPane;
+ String[] titles = { "Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung",
+ "Verantwortlicher", "Letztes Update", "Schlagwort", "ID", "Version" };
+ ThriftConnection con = new ThriftConnection();
+ Client client = con.getThriftConnection();
+ final DefaultTableModel modelAll = new DefaultTableModel(titles, 0);
+ final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0);
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(
+ modelAll);
+ final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>(
+ modelMyImages);
+
+ /**
+ * Launch the application.
+ *
+ * public static void main(String[] args) { try { SearchEditImage_GUI dialog
+ * = new SearchEditImage_GUI();
+ * dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+ * dialog.setVisible(true); } catch (Exception e) { e.printStackTrace(); } }
+ */
+
+ /**
+ * 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) {
+ textFieldName.requestFocusInWindow();
+ }
+ });
+ // Verhindert das Vergrößern 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 *Prototyp*");
+ // Zentriert das Fenster in die Bildmitte
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top = (screenSize.height - 722) / 2;
+ int left = (screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+
+ final DefaultTableModel model = new DefaultTableModel(titles, 0);
+
+ 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("Suche nach VL-Image");
+ 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 VL-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, 131);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Anzeigename:");
+ lblNewLabel_2.setBounds(10, 30, 250, 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 != "") {
+ // Filtere nach der Eingabe
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+
+ }
+ }
+ });
+
+ textFieldName.setBounds(270, 30, 250, 20);
+ panel_1.add(textFieldName);
+ textFieldName.setColumns(10);
+
+ JLabel lblErweiterteSuche = new JLabel(
+ "<html><u>Erweiterte Suche</u></html>");
+ lblErweiterteSuche.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // Öffnet das Fenster Extended GUI
+ con.closeThriftConnection();
+ ExtendedSearchForImages_GUI es = new ExtendedSearchForImages_GUI();
+ es.setVisible(true);
+ }
+ });
+ lblErweiterteSuche.setForeground(Color.BLUE);
+
+ lblErweiterteSuche.setBounds(431, 106, 89, 14);
+ panel_1.add(lblErweiterteSuche);
+
+ comboBox = new JComboBox<String>();
+ try {
+ // Holt sich eine Liste aller verfügbaren Betriebssysteme vom Server
+ List<String> list = client.getAllOS();
+ // Leeres Item hinzufügen
+ comboBox.addItem("");
+ for (int i = 0; i < list.size(); i++) {
+ // Hinzufügen der verfügbaren Betriebssysteme
+ comboBox.addItem(list.get(i));
+ }
+ } catch (TException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ // Registriert Auswahländerungen der Box
+ comboBox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Prüft das die Auswahl nicht leer ist
+ if (comboBox.getSelectedItem().toString() != "") {
+ // Filtert nach dem ausgewählten Betriebssystem
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox
+ .getSelectedItem().toString(), 2));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ }
+ }
+
+ });
+ comboBox.setBounds(270, 58, 250, 20);
+ panel_1.add(comboBox);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // Öffnet das Hauütmenü
+ con.closeThriftConnection();
+ 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("VL-Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 11, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Imageauswahl");
+ lblNewLabel_1.setBounds(146, 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) {
+
+ String username = person.verantwortlicher.getName() + " "
+ + person.verantwortlicher.getVorname();
+ // String username="Spitzer Tobias";
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ } else if (tabbedPane.getSelectedIndex() == 1) {
+
+ }
+
+ }
+ });
+
+ tabbedPane.setBounds(10, 197, 557, 300);
+ contentPanel.add(tabbedPane);
+ initTableModel(modelMyImages);
+
+ JScrollPane scrollPaneAllImages = new JScrollPane();
+ tableAllImages = new JTable();
+ 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();
+ initTableModel(modelAll);
+
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ tablemyImages = new JTable();
+ 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);
+ 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("Kooperative Images", null, scrollPaneCoopImages,
+ null);
+ tabbedPane.setEnabledAt(2, false);
+
+ JScrollPane scrollPanePublicImages = new JScrollPane();
+ JTable tablePublicImages = new JTable();
+ tablePublicImages.setModel(model);
+ tablePublicImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(5).sizeWidthToFit();
+
+ scrollPanePublicImages.setViewportView(tablePublicImages);
+ tabbedPane.addTab("\u00D6ffentliche Images", null,
+ scrollPanePublicImages, null);
+ tabbedPane.setEnabledAt(3, false);
+
+ JScrollPane scrollPanePublicVorlagen = new JScrollPane();
+ JTable tablePublicVorlagen = new JTable();
+ tablePublicVorlagen.setModel(model);
+ 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();
+
+ scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
+ tabbedPane.addTab("\u00D6ffentliche Vorlagen", null,
+ scrollPanePublicVorlagen, null);
+ tabbedPane.setEnabledAt(4, false);
+
+ JButton btnDownload = new JButton("Download");
+ btnDownload.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Öffnet den Downloader
+
+ if (tablemyImages.getSelectedRow() != -1) {
+ String imageid = modelMyImages.getValueAt(
+ tablemyImages.convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 7).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelMyImages.getValueAt(
+ tablemyImages.convertRowIndexToModel(tablemyImages
+ .getSelectedRow()), 8).toString();
+
+ Image.image.setVersion(imageversion);
+ SearchEditImage_GUI.this.setVisible(false);
+ FTPDownloader_GUI down = new FTPDownloader_GUI();
+ down.setVisible(true);
+ con.closeThriftConnection();
+
+ } else {
+ JOptionPane.showMessageDialog(null,
+ "Bitte wählen Sie ein Image für den Download aus",
+ "Message", JOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+ });
+ btnDownload.setBounds(449, 508, 118, 23);
+ contentPanel.add(btnDownload);
+ {
+ 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) {
+ // Öffnet das Hauptmenü
+ con.closeThriftConnection();
+ 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) {
+ con.closeThriftConnection();
+
+ // 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()),
+ 7).toString();
+
+ Image.image.setImageId(imageid);
+ String imageversion = modelMyImages
+ .getValueAt(
+ tablemyImages
+ .convertRowIndexToModel(tablemyImages
+ .getSelectedRow()),
+ 8).toString();
+
+ Image.image.setVersion(imageversion);
+ con.closeThriftConnection();
+ EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI();
+ ea.setVisible(true);
+ dispose();
+ } else {
+ JOptionPane.showMessageDialog(null,
+ "Bitte wählen Sie ein Image aus.",
+ "Image Auswahl", JOptionPane.INFORMATION_MESSAGE);
+ }// end check if row is selected
+ } else {
+ JOptionPane.showMessageDialog(null,
+ "Bitte wählen 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, 78, 597, 2);
+ getContentPane().add(separator);
+
+ JSeparator separator_1 = new JSeparator();
+ separator_1.setBounds(0, 627, 597, 2);
+ getContentPane().add(separator_1);
+
+ JMenuBar menuBar = new JMenuBar();
+ setJMenuBar(menuBar);
+
+ JMenu mnNewMenu_1 = new JMenu("Hilfe");
+ menuBar.add(mnNewMenu_1);
+
+ JMenuItem mntmFaq = new JMenuItem("FAQ");
+ mnNewMenu_1.add(mntmFaq);
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mnNewMenu_1.add(mntmOtrs);
+
+ }
+
+ // Initiale Beffülung 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;
+
+ while (i.hasNext()) {
+ // erzeuge Objekte für die Tabelle
+ Object[] obj = { images.get(x).getImageName(),
+ images.get(x).getLicenseRestriction(),
+ images.get(x).getOsName(),
+ images.get(x).getLectureName(),
+ images.get(x).getUserData(),
+ images.get(x).getUpdateTime(), "", images.get(x).id,
+ images.get(x).getVersion() };
+ // Füge diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+ x++;
+ i.next();
+
+ }
+
+ return model;
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ return model;
+ }
+
+}
diff --git a/Dozentenmodul/src/gui/image/SearchImage_GUI.java b/Dozentenmodul/src/gui/image/SearchImage_GUI.java
new file mode 100644
index 00000000..493230d3
--- /dev/null
+++ b/Dozentenmodul/src/gui/image/SearchImage_GUI.java
@@ -0,0 +1,459 @@
+package gui.image;
+
+import gui.intro.MainMenue_GUI;
+import gui.lecture.ExtendedSearchForImages_GUI;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.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.util.Iterator;
+import java.util.List;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JDialog;
+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.JScrollPane;
+import javax.swing.JSeparator;
+import javax.swing.JTabbedPane;
+import javax.swing.JTable;
+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.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+import org.apache.thrift.TException;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+
+@SuppressWarnings("serial")
+public class SearchImage_GUI extends JFrame {
+
+ private final JPanel contentPanel = new JPanel();
+ String[] result;
+ JRadioButton rdbtnInternetJa;
+ JRadioButton rdbtnInternetNein;
+ JComboBox<String> comboBox;
+ JTable tableAllImages;
+ JTable tablemyImages;
+ private JTextField textFieldName;
+ JTabbedPane tabbedPane;
+ String[] titles = { "Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung",
+ "Verantwortlicher", "Letztes Update", "Schlagwort" };
+ ThriftConnection con = new ThriftConnection();
+ Client client = con.getThriftConnection();
+ final DefaultTableModel modelAll = new DefaultTableModel(titles, 0);
+ final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0);
+ final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(
+ modelAll);
+ final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>(
+ modelMyImages);
+
+ /**
+ * Launch the application.
+ */
+ public static void main(String[] args) {
+ try {
+ SearchImage_GUI dialog = new SearchImage_GUI();
+ dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+ dialog.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Create the dialog.
+ */
+ public SearchImage_GUI() {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent arg0) {
+ // Beendet die Anwendung nach klick auf X
+ System.exit(0);
+ }
+ });
+ // Verhindert das Vergrößern 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 *Prototyp*");
+ // Zentriert das Fenster in die Bildmitte
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ int top = (screenSize.height - 722) / 2;
+ int left = (screenSize.width - 603) / 2;
+ setBounds(left, top, 603, 722);
+
+ final DefaultTableModel model = new DefaultTableModel(titles, 0);
+
+ 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("Suche nach VL-Image");
+ 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 VL-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, 131);
+ contentPanel.add(panel_1);
+ panel_1.setLayout(null);
+
+ JLabel lblNewLabel_2 = new JLabel("Anzeigename:");
+ lblNewLabel_2.setBounds(10, 30, 250, 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 != "") {
+ // Filtere nach der Eingabe
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ textFieldName.getText(), 0));
+
+ }
+ }
+ });
+
+ textFieldName.setBounds(270, 30, 250, 20);
+ panel_1.add(textFieldName);
+ textFieldName.setColumns(10);
+
+ JLabel lblErweiterteSuche = new JLabel(
+ "<html><u>Erweiterte Suche</u></html>");
+ lblErweiterteSuche.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // Öffnet das Fenster Extended GUI
+ ExtendedSearchForImages_GUI es = new ExtendedSearchForImages_GUI();
+ es.setVisible(true);
+ }
+ });
+ lblErweiterteSuche.setForeground(Color.BLUE);
+
+ lblErweiterteSuche.setBounds(431, 106, 89, 14);
+ panel_1.add(lblErweiterteSuche);
+
+ comboBox = new JComboBox<String>();
+ try {
+ // Holt sich eine Liste aller verfügbaren Betriebssysteme vom Server
+ List<String> list = client.getAllOS();
+ // Leeres Item hinzufügen
+ comboBox.addItem("");
+ for (int i = 0; i < list.size(); i++) {
+ // Hinzufügen der verfügbaren Betriebssysteme
+ comboBox.addItem(list.get(i));
+ }
+ } catch (TException e2) {
+ // TODO Auto-generated catch block
+ e2.printStackTrace();
+ }
+ // Registriert Auswahländerungen der Box
+ comboBox.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Prüft das die Auswahl nicht leer ist
+ if (comboBox.getSelectedItem().toString() != "") {
+ // Filtert nach dem ausgewählten Betriebssystem
+ rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox
+ .getSelectedItem().toString(), 2));
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ comboBox.getSelectedItem().toString(), 2));
+ }
+ }
+
+ });
+ comboBox.setBounds(270, 58, 250, 20);
+ panel_1.add(comboBox);
+
+ JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
+ lblHauptmen.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent arg0) {
+ // Öffnet das Hauütmenü
+ 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("VL-Image");
+ lblVlimage.setForeground(Color.BLUE);
+ lblVlimage.setBounds(81, 11, 45, 14);
+ contentPanel.add(lblVlimage);
+
+ JLabel label_2 = new JLabel(">");
+ label_2.setBounds(133, 11, 13, 14);
+ contentPanel.add(label_2);
+
+ JLabel lblNewLabel_1 = new JLabel("Imageauswahl");
+ lblNewLabel_1.setBounds(146, 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) {
+
+ } else if (tabbedPane.getSelectedIndex() == 1) {
+ String username = "Spitzer Tobias";
+ rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
+ username, 4));
+ // rowSorterMyImages.toggleSortOrder(0);
+ }
+
+ }
+ });
+
+ tabbedPane.setBounds(10, 197, 557, 300);
+ contentPanel.add(tabbedPane);
+
+ JScrollPane scrollPaneMyImage = new JScrollPane();
+ tablemyImages = new JTable();
+ 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();
+ initTableModel(modelMyImages);
+ tablemyImages.setRowSorter(rowSorterMyImages);
+
+ JScrollPane scrollPaneAllImages = new JScrollPane();
+ tableAllImages = new JTable();
+ 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();
+ initTableModel(modelAll);
+ tableAllImages.setRowSorter(rowSorterAll);
+
+ scrollPaneAllImages.setViewportView(tableAllImages);
+ tabbedPane.addTab("Alle", null, scrollPaneAllImages, null);
+
+ 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();
+
+ scrollPaneCoopImages.setViewportView(tableCoopImages);
+ tabbedPane.addTab("Kooperative Images", null, scrollPaneCoopImages,
+ null);
+ tabbedPane.setEnabledAt(2, false);
+
+ JScrollPane scrollPanePublicImages = new JScrollPane();
+ JTable tablePublicImages = new JTable();
+ tablePublicImages.setModel(model);
+ tablePublicImages.getColumnModel().getColumn(1).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(2).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(3).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(4).sizeWidthToFit();
+ tablePublicImages.getColumnModel().getColumn(5).sizeWidthToFit();
+
+ scrollPanePublicImages.setViewportView(tablePublicImages);
+ tabbedPane.addTab("\u00D6ffentliche Images", null,
+ scrollPanePublicImages, null);
+ tabbedPane.setEnabledAt(3, false);
+
+ JScrollPane scrollPanePublicVorlagen = new JScrollPane();
+ JTable tablePublicVorlagen = new JTable();
+ tablePublicVorlagen.setModel(model);
+ 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();
+
+ scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
+ tabbedPane.addTab("\u00D6ffentliche Vorlagen", null,
+ scrollPanePublicVorlagen, null);
+ tabbedPane.setEnabledAt(4, false);
+
+ JButton btnDownload = new JButton("Download");
+ btnDownload.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ // Öffnet den Downloader
+ FTPDownloader_GUI down = new FTPDownloader_GUI();
+ down.setVisible(true);
+ SearchImage_GUI.this.setVisible(false);
+ }
+ });
+ btnDownload.setBounds(449, 508, 118, 23);
+ contentPanel.add(btnDownload);
+ {
+ 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) {
+ // Öffnet das Hauptmenü
+ MainMenue_GUI main = new MainMenue_GUI();
+ main.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) {
+
+ con.closeThriftConnection();
+ EditImageAllgemein_GUI ea = new EditImageAllgemein_GUI();
+ ea.setVisible(true);
+ dispose();
+
+ }
+ });
+ continueButton.setActionCommand("Cancel");
+ buttonPane.add(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");
+ mnNewMenu_1.add(mntmFaq);
+
+ JMenuItem mntmOtrs = new JMenuItem("OTRS");
+ mnNewMenu_1.add(mntmOtrs);
+
+ }
+
+ // Initiale Beffülung 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;
+
+ while (i.hasNext()) {
+ // erzeuge Objekte für die Tabelle
+ Object[] obj = { images.get(x).getImageName(),
+ images.get(x).getLicenseRestriction(),
+ images.get(x).getOsName(),
+ images.get(x).getLectureName(),
+ images.get(x).getUserData(),
+ images.get(x).getUpdateTime() };
+ // Füge diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+ x++;
+ i.next();
+
+ }
+
+ return model;
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ return model;
+ }
+
+}