summaryrefslogtreecommitdiffstats
path: root/Dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java
diff options
context:
space:
mode:
Diffstat (limited to 'Dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java')
-rw-r--r--Dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java538
1 files changed, 538 insertions, 0 deletions
diff --git a/Dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java b/Dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java
new file mode 100644
index 00000000..a2123712
--- /dev/null
+++ b/Dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java
@@ -0,0 +1,538 @@
+package gui.image;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.FlowLayout;
+import java.awt.Font;
+import java.awt.SystemColor;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.io.File;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import javax.swing.JButton;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JLabel;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.JSeparator;
+import javax.swing.JTextPane;
+import javax.swing.SwingConstants;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+import javax.swing.border.EmptyBorder;
+
+import models.Image;
+import models.Links;
+import models.SessionData;
+import models.person;
+
+import org.apache.thrift.TException;
+
+import server.Server.Client;
+import thrift.ThriftConnection;
+import util.GuiOrganizer;
+import util.OpenLinks;
+import ftp.UploadTask;
+import gui.intro.About_GUI;
+import gui.intro.MainMenue_GUI;
+
+@SuppressWarnings("serial")
+public class FTPEditUploader_GUI extends JFrame implements
+ PropertyChangeListener {
+
+ @SuppressWarnings("unused")
+ private JPanel contentPane;
+ private final JPanel contentPanel = new JPanel();
+ JLabel lblPath;
+ JProgressBar progressBar;
+ String host = SessionData.session.getServerAdress();
+ int port = 21;
+ server.User user;
+ String filename = "";
+ File uploadFile;
+ static String arg = "";
+ UploadTask task;
+ JLabel UpSpeed;
+ JLabel labelfertig;
+ JLabel labelfilesize;
+ JLabel labelZeit;
+ JLabel labelverbleibend;
+ long filesize;
+ double speed;
+ long bytesread;
+ boolean taskrun = false;
+ int progress = 0;
+ ThriftConnection con = new ThriftConnection();
+ Client client = models.Client.clientcon.getClient();
+ JButton btnUploadStarten = new JButton("Upload auf Server starten");
+ JButton btnSpeicherortAuswhlen = new JButton("Image ausw\u00E4hlen");
+ JButton finishButton = new JButton("Fertigstellen");
+ JButton btnZurck = new JButton("Zur\u00FCck");
+
+
+ /**
+ * 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);
+ }
+ con.closeThriftConnection();
+ 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* - Image bearbeiten");
+
+ setBounds(0, 0, 603, 722);
+ GuiOrganizer.centerGUI(this);
+
+ getContentPane().setLayout(new BorderLayout());
+ contentPanel.setBackground(SystemColor.menu);
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel, BorderLayout.CENTER);
+ contentPanel.setLayout(null);
+ {
+
+ btnSpeicherortAuswhlen.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ 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);
+
+ 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();
+ JOptionPane.showMessageDialog(null,
+ e1.getCause()+"\n"+e1.getMessage(),
+ "Debug-Message", JOptionPane.ERROR_MESSAGE);
+ }
+ task.cancel(true);
+ }
+
+ }
+ });
+ 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 menu = new JMenu("Hilfe");
+ menuBar.add(menu);
+
+ JMenuItem menuItem = new JMenuItem("FAQ");
+ menuItem.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mousePressed(MouseEvent arg0) {
+
+ OpenLinks open = new OpenLinks();
+
+ URI windows;
+ try {
+ windows = new URI(Links.getFAQ());
+
+ open.openWebpage(windows);
+
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ }
+ });
+
+ menu.add(menuItem);
+
+ JMenuItem menuItem_1 = new JMenuItem("OTRS");
+ menuItem_1.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mousePressed(MouseEvent arg0) {
+
+ OpenLinks open = new OpenLinks();
+
+ URI windows;
+ try {
+ windows = new URI(Links.getOTRS());
+
+ open.openWebpage(windows);
+
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+
+ }
+ });
+
+ menu.add(menuItem_1);
+
+ JMenuItem mntmAbout = new JMenuItem("About");
+ mntmAbout.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ About_GUI ab = new About_GUI();
+ ab.setVisible(true);
+ }
+ });
+ menu.add(mntmAbout);
+ setVisible(true);
+
+ }
+
+ private void buttonUploadActionPerformed(ActionEvent event) {
+
+ progressBar.setValue(0);
+ btnUploadStarten.setEnabled(false); // verhindert einen weiteren klick
+ btnUploadStarten.setText("Bitte warten");
+
+ try {
+ user = client.getFtpUser();
+ System.out.println("FTP name" + user.userName);
+ System.out.println("FTP path" + user.path);
+ System.out.println("FTP pass" + user.password);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause()+"\n"+e.getMessage(),
+ "Debug-Message", JOptionPane.ERROR_MESSAGE);
+ }
+ 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+"temp/", 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 == 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 {
+ System.out.println("NewName="+Image.image.getNewName());
+ System.out.println("OldName="+Image.image.getImagename());
+ if(Image.image.getNewName().isEmpty()){
+ client.updateImageData(Image.image.getImagename(),
+ Image.image.getImagename(),Image.image.getImagepath(), Image.image.isLicensed(),
+ Image.image.isInternet(), Image.image.getRam(),
+ Image.image.getCpu(), Image.image.getImageId(),
+ Image.image.getVersion(), false,Image.image.getFilesize(),Image.image.getShareMode());
+ client.startFileCopy(Image.image.getNewName());
+ }
+ else{
+
+
+ client.updateImageData(Image.image.getImagename(),
+ Image.image.getImagename(),"temp/" + Image.image.getNewName(), Image.image.isLicensed(),
+ Image.image.isInternet(), Image.image.getRam(),
+ Image.image.getCpu(), Image.image.getImageId(),
+ Image.image.getVersion(), false,Image.image.getFilesize(),Image.image.getShareMode());
+ client.startFileCopy(Image.image.getNewName());
+ }
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ JOptionPane.showMessageDialog(null,
+ e.getCause()+"\n"+e.getMessage(),
+ "Debug-Message", JOptionPane.ERROR_MESSAGE);
+ return false;
+ }
+ return true;
+
+ }
+} \ No newline at end of file