diff options
Diffstat (limited to 'Dozentenmodul/src/gui/FTPUploader_GUI.java')
| -rw-r--r-- | Dozentenmodul/src/gui/FTPUploader_GUI.java | 401 |
1 files changed, 401 insertions, 0 deletions
diff --git a/Dozentenmodul/src/gui/FTPUploader_GUI.java b/Dozentenmodul/src/gui/FTPUploader_GUI.java new file mode 100644 index 00000000..980f3481 --- /dev/null +++ b/Dozentenmodul/src/gui/FTPUploader_GUI.java @@ -0,0 +1,401 @@ +package gui; + +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 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; + + +@SuppressWarnings("serial") +public class FTPUploader_GUI extends JFrame implements PropertyChangeListener { + + @SuppressWarnings("unused") + private JPanel contentPane; + private final JPanel contentPanel = new JPanel(); + JLabel lblNewLabel; + JProgressBar progressBar; + String host="141.79.128.121"; + 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(); + /** + * Launch the application. + */ + public static void main(String[] args) { + EventQueue.invokeLater(new Runnable() { + public void run() { + try { + FTPUploader_GUI frame = new FTPUploader_GUI(); + frame.setVisible(true); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + } + + /** + * Create the frame. + */ + public FTPUploader_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); + } + } + }); + 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); + { + JButton btnSpeicherortAuswhlen = new JButton("VMDK ausw\u00E4hlen"); + btnSpeicherortAuswhlen.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + JFileChooser fc=new JFileChooser(); + fc.setFileSelectionMode(JFileChooser.FILES_ONLY); + + fc.showOpenDialog(getParent()); + File dir=fc.getSelectedFile(); + uploadFile=dir; + filename=uploadFile.getName(); + lblNewLabel.setText(dir.getAbsolutePath()); + } + }); + + btnSpeicherortAuswhlen.setBounds(10, 124, 141, 23); + btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP); + btnSpeicherortAuswhlen.setHorizontalAlignment(SwingConstants.LEFT); + contentPanel.add(btnSpeicherortAuswhlen); + } + + lblNewLabel = new JLabel(""); + lblNewLabel.setBounds(184, 124, 255, 23); + contentPanel.add(lblNewLabel); + + JButton btnDownloadStarten = new JButton("Upload starten"); + btnDownloadStarten.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + buttonUploadActionPerformed(arg0); + + } + }); + + btnDownloadStarten.setBounds(10, 330, 141, 23); + contentPanel.add(btnDownloadStarten); + + progressBar = new JProgressBar(0,100); + progressBar.setStringPainted(true); + + + progressBar.setBounds(10, 158, 577, 30); + contentPanel.add(progressBar); + + JLabel label = new JLabel("Downloadgeschwindigkeit:"); + label.setBounds(10, 199, 141, 14); + contentPanel.add(label); + + JLabel label_1 = new JLabel("Fertig:"); + label_1.setBounds(10, 249, 46, 14); + contentPanel.add(label_1); + + labelfertig = new JLabel("0"); + labelfertig.setBounds(66, 249, 108, 14); + contentPanel.add(labelfertig); + + UpSpeed = new JLabel("0"); + UpSpeed.setBounds(329, 199, 95, 14); + contentPanel.add(UpSpeed); + + JLabel label_4 = new JLabel("von:"); + label_4.setBounds(184, 249, 46, 14); + contentPanel.add(label_4); + + labelfilesize = new JLabel("0"); + labelfilesize.setBounds(240, 249, 108, 14); + contentPanel.add(labelfilesize); + + JLabel label_6 = new JLabel("Verbleibend:"); + label_6.setBounds(10, 274, 71, 14); + contentPanel.add(label_6); + + JLabel label_7 = new JLabel("Gesch\u00E4tzte Verbleibende Zeit:"); + label_7.setBounds(10, 224, 150, 14); + contentPanel.add(label_7); + + labelZeit = new JLabel("0"); + labelZeit.setBounds(329, 224, 117, 14); + contentPanel.add(labelZeit); + + labelverbleibend = new JLabel("0"); + labelverbleibend.setBounds(91, 274, 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 label_2 = new JLabel("Eingabe Ihrer Daten"); + label_2.setFont(new Font("Tahoma", Font.BOLD, 18)); + label_2.setBounds(10, 11, 509, 22); + panel.add(label_2); + + 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 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/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); + { + JPanel buttonPane = new JPanel(); + buttonPane.setBackground(UIManager.getColor("Button.background")); + buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); + getContentPane().add(buttonPane, BorderLayout.SOUTH); + { + JButton ButtonReady = new JButton("Abschlie\u00DFen"); + ButtonReady.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); + + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + task.cancel(true); + } + + } + }); + + JButton buttonCancel = new JButton("Schlie\u00DFen"); + buttonCancel.setActionCommand("Cancel"); + buttonPane.add(buttonCancel); + ButtonReady.setActionCommand("Cancel"); + buttonPane.add(ButtonReady); + } + } + + JMenuBar menuBar = new JMenuBar(); + setJMenuBar(menuBar); + + JMenu mnHillfe = new JMenu("Hillfe"); + menuBar.add(mnHillfe); + setVisible(true); + + } + + private void buttonUploadActionPerformed(ActionEvent event) { + // File (or directory) with old name + // File file = new File(lblNewLabel.getText()); + + // File (or directory) with new name + //System.out.println(file.getAbsolutePath().substring(0,file.getAbsolutePath().lastIndexOf("\\"))+"\\"+vm.vl.getLaborname()+".vmdk"); + //File file2 = new File(file.getAbsoluteFile()+"\\"+vm.vl.getLaborname()+".vmdk"); + + + // Rename file (or directory) + //boolean success = file.renameTo(file2); + //if (!success) { + // File was not successfully renamed + //System.out.println("Not OK"); + //} + //else + //{ + //System.out.println("OK"); + //} + progressBar.setValue(0); + + try { + user=client.getFtpUser(); + System.out.println("name"+user.userName); + System.out.println("path"+user.path); + System.out.println("pass"+user.password); + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + task=new UploadTask(host,port,user.userName,user.password,user.path, uploadFile); + + task.addPropertyChangeListener(this); + task.execute(); + taskrun=true; + + //createXML(); + //TransferToSatellit(); + + + } + + 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){ + + UpSpeed.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(); + 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.verantowrtlicher.getVorname(), person.verantowrtlicher.getName(), person.verantowrtlicher.getHochschule(), person.verantowrtlicher.getEMail(), person.verantowrtlicher.getTel(), person.verantowrtlicher.getFakultät(), Image.image.isLicensed(), Image.image.isInternet(), Image.image.getRam(), Image.image.getCpu()); + } catch (TException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return false; + } + return true; + + + } +}
\ No newline at end of file |
