summaryrefslogtreecommitdiffstats
path: root/Dozentenmodul/src/gui/FTPDownloader_GUI.java
diff options
context:
space:
mode:
Diffstat (limited to 'Dozentenmodul/src/gui/FTPDownloader_GUI.java')
-rw-r--r--Dozentenmodul/src/gui/FTPDownloader_GUI.java348
1 files changed, 348 insertions, 0 deletions
diff --git a/Dozentenmodul/src/gui/FTPDownloader_GUI.java b/Dozentenmodul/src/gui/FTPDownloader_GUI.java
new file mode 100644
index 00000000..94e1e05d
--- /dev/null
+++ b/Dozentenmodul/src/gui/FTPDownloader_GUI.java
@@ -0,0 +1,348 @@
+package gui;
+
+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 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 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 lblNewLabel;
+ JLabel downspeed;
+ User user;
+ JProgressBar progressBar;
+ String host="141.79.128.121";
+ int port=21;
+ String username="openslx";
+ String password="openslx-ng";
+ String downloadPath="";
+ String filename="";
+ static String arg="";
+ DownloadTask task;
+ JLabel bytesreadlbl;
+ JLabel lblNewLabel_3;
+ JLabel labelVerbleibend;
+ long filesize;
+ double speed;
+ long bytesread;
+ JLabel labelZeit;
+ boolean taskrun=false;
+ ThriftConnection thrift=new ThriftConnection();
+ Client client=thrift.getThriftConnection();
+ /**
+ * Launch the application.
+ */
+ /*public static void main(String[] args) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ try {
+ FTPDownloader frame = new FTPDownloader();
+ frame.setVisible(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }*/
+
+ /**
+ * Create the frame.
+ */
+ public FTPDownloader_GUI(String name) {
+ addWindowListener(new WindowAdapter() {
+ @Override
+ public void windowClosing(WindowEvent e) {
+ if(taskrun==true)
+ {
+ try {
+ client.DeleteFtpUser(user.userName);
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ task.cancel(true);
+ }
+ dispose();
+ }
+ });
+ setResizable(false);
+ //setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
+
+ filename=name;
+
+ 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);
+ 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();
+ lblNewLabel.setText(dir.getAbsolutePath());
+ }
+ });
+
+ btnSpeicherortAuswhlen.setBounds(10, 124, 141, 23);
+ btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP);
+ btnSpeicherortAuswhlen.setHorizontalAlignment(SwingConstants.LEFT);
+ contentPanel.add(btnSpeicherortAuswhlen);
+ }
+
+ lblNewLabel = new JLabel("C:\\");
+ lblNewLabel.setBounds(169, 124, 255, 23);
+ contentPanel.add(lblNewLabel);
+
+ JButton btnDownloadStarten = new JButton("Download starten");
+ btnDownloadStarten.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent arg0) {
+ buttonDownloadActionPerformed(arg0);
+ }
+ });
+
+ btnDownloadStarten.setBounds(10, 294, 141, 23);
+ contentPanel.add(btnDownloadStarten);
+
+ progressBar = new JProgressBar(0,100);
+ progressBar.setStringPainted(true);
+
+
+ progressBar.setBounds(10, 158, 577, 30);
+ contentPanel.add(progressBar);
+
+ JLabel lblDownloadgeschwindigkeit = new JLabel("Downloadgeschwindigkeit:");
+ lblDownloadgeschwindigkeit.setBounds(10, 194, 141, 14);
+ contentPanel.add(lblDownloadgeschwindigkeit);
+
+ downspeed = new JLabel("0");
+ downspeed.setBounds(261, 194, 95, 14);
+ contentPanel.add(downspeed);
+
+ JLabel lblNewLabel_1 = new JLabel("Fertig:");
+ lblNewLabel_1.setBounds(10, 244, 46, 14);
+ contentPanel.add(lblNewLabel_1);
+
+ bytesreadlbl = new JLabel("");
+ bytesreadlbl.setBounds(66, 244, 108, 14);
+ contentPanel.add(bytesreadlbl);
+
+ JLabel lblNewLabel_2 = new JLabel("von:");
+ lblNewLabel_2.setBounds(179, 244, 46, 14);
+ contentPanel.add(lblNewLabel_2);
+
+ lblNewLabel_3 = new JLabel("");
+ lblNewLabel_3.setBounds(235, 244, 108, 14);
+ contentPanel.add(lblNewLabel_3);
+
+ JLabel lblMbVerbleibend = new JLabel("Verbleibend:");
+ lblMbVerbleibend.setBounds(10, 269, 71, 14);
+ contentPanel.add(lblMbVerbleibend);
+
+ labelVerbleibend = new JLabel("");
+ labelVerbleibend.setBounds(91, 269, 108, 14);
+ contentPanel.add(labelVerbleibend);
+
+ JLabel lblGeschtzteVerbleibendeZeit = new JLabel("Gesch\u00E4tzte Verbleibende Zeit:");
+ lblGeschtzteVerbleibendeZeit.setBounds(10, 219, 150, 14);
+ contentPanel.add(lblGeschtzteVerbleibendeZeit);
+
+ labelZeit = new JLabel("");
+ labelZeit.setBounds(261, 219, 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);
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setBackground(UIManager.getColor("Button.background"));
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane, BorderLayout.SOUTH);
+ {
+ JButton cancelButton = new JButton("Weiter");
+ cancelButton.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();
+ }
+ }
+ dispose();
+ }
+ });
+
+ JButton btnZurck = new JButton("Zur\u00FCck");
+ btnZurck.setActionCommand("Cancel");
+ buttonPane.add(btnZurck);
+ cancelButton.setActionCommand("Cancel");
+ buttonPane.add(cancelButton);
+ }
+ }
+ setVisible(true);
+
+ }
+
+ private void buttonDownloadActionPerformed(ActionEvent event) {
+
+ progressBar.setValue(0);
+
+ try {
+ user=client.getFtpUser();
+ //downloadPath=client.getPathOfImage(filename);
+ } catch (TException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ task = new DownloadTask(host, port, user.userName, user.password,user.path+filename+".vmdk", lblNewLabel.getText(), this);
+ task.addPropertyChangeListener(this);
+ task.execute();
+ taskrun=true;
+
+ }
+
+ public void propertyChange(PropertyChangeEvent arg0) {
+
+
+ if ("progress" == arg0.getPropertyName()) {
+ int progress = (Integer) arg0.getNewValue();
+ progressBar.setValue(progress);
+ }
+ 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");
+
+ // }else
+ //{
+ //double MBSpeed=speed/1024;
+ //downspeed.setText(String.valueOf((MBSpeed)).substring(0, String.valueOf(MBSpeed).indexOf(".")));
+ //}
+
+ }
+ if("bytesread"==arg0.getPropertyName())
+ {
+ bytesread=(long)arg0.getNewValue();
+ bytesreadlbl.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