diff options
Diffstat (limited to 'Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java')
| -rw-r--r-- | Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java | 460 |
1 files changed, 253 insertions, 207 deletions
diff --git a/Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java b/Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java index c8a23428..9e60e788 100644 --- a/Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java +++ b/Dozentenmodul/src/gui/image/FTPEditUploader_GUI.java @@ -18,7 +18,6 @@ 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; @@ -35,30 +34,27 @@ import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.EmptyBorder; import models.Image; import models.person; -//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 { +public class FTPEditUploader_GUI extends JFrame implements + PropertyChangeListener { @SuppressWarnings("unused") private JPanel contentPane; private final JPanel contentPanel = new JPanel(); - JLabel lblNewLabel; + JLabel lblPath; JProgressBar progressBar; - String host="141.79.128.121"; - int port=21; + String host = "141.79.128.121"; + int port = 21; server.User user; - String filename=""; + String filename = ""; File uploadFile; - static String arg=""; + static String arg = ""; UploadTask task; JLabel UpSpeed; JLabel labelfertig; @@ -68,9 +64,16 @@ public class FTPEditUploader_GUI extends JFrame implements PropertyChangeListene long filesize; double speed; long bytesread; - boolean taskrun=false; - ThriftConnection thrift=new ThriftConnection(); - Client client=thrift.getThriftConnection(); + 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. */ @@ -94,24 +97,21 @@ public class FTPEditUploader_GUI extends JFrame implements PropertyChangeListene addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { - if(taskrun==true) - { + if (taskrun == true) { try { - + client.DeleteFtpUser(user.userName); } catch (TException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } - task.cancel(true); + task.cancel(true); } } }); setResizable(false); - //setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); - - - + // setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); + try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException @@ -120,309 +120,355 @@ public class FTPEditUploader_GUI extends JFrame implements PropertyChangeListene e.printStackTrace(); } - //filename=name; + // 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; + int top = (screenSize.height - 722) / 2; + int left = (screenSize.width - 603) / 2; setBounds(left, top, 603, 722); - //setBounds(100, 100, 603, 250); + // 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(); + 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()); + File file = fc.getSelectedFile(); + // check if a file is selected and exists + if (file != null) { + System.out.println("File to upload exists"); + uploadFile = file; + filename = uploadFile.getName(); + lblPath.setText(file.getAbsolutePath()); + } else { + System.out.println("No file selected"); + lblPath.setText(""); + }// end if } }); - btnSpeicherortAuswhlen.setBounds(10, 124, 141, 23); + btnSpeicherortAuswhlen.setBounds(102, 124, 173, 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() { + + 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); - + } }); - btnDownloadStarten.setBounds(10, 330, 141, 23); - contentPanel.add(btnDownloadStarten); - - progressBar = new JProgressBar(0,100); + btnUploadStarten.setBounds(102, 200, 173, 23); + contentPanel.add(btnUploadStarten); + + progressBar = new JProgressBar(0, 100); progressBar.setStringPainted(true); - - progressBar.setBounds(10, 158, 577, 30); + progressBar.setBounds(102, 234, 485, 30); contentPanel.add(progressBar); - - JLabel label = new JLabel("Downloadgeschwindigkeit:"); - label.setBounds(10, 199, 141, 14); - contentPanel.add(label); - + + JLabel lblUploadgeschwindigkeit = new JLabel("Uploadgeschwindigkeit:"); + lblUploadgeschwindigkeit.setBounds(102, 275, 141, 14); + contentPanel.add(lblUploadgeschwindigkeit); + JLabel label_1 = new JLabel("Fertig:"); - label_1.setBounds(10, 249, 46, 14); + label_1.setBounds(102, 325, 46, 14); contentPanel.add(label_1); - + labelfertig = new JLabel("0"); - labelfertig.setBounds(66, 249, 108, 14); + labelfertig.setBounds(183, 325, 108, 14); contentPanel.add(labelfertig); - + UpSpeed = new JLabel("0"); - UpSpeed.setBounds(329, 199, 95, 14); + UpSpeed.setBounds(374, 275, 117, 14); contentPanel.add(UpSpeed); - + JLabel label_4 = new JLabel("von:"); - label_4.setBounds(184, 249, 46, 14); + label_4.setBounds(318, 325, 46, 14); contentPanel.add(label_4); - + labelfilesize = new JLabel("0"); - labelfilesize.setBounds(240, 249, 108, 14); + labelfilesize.setBounds(374, 325, 117, 14); contentPanel.add(labelfilesize); - + JLabel label_6 = new JLabel("Verbleibend:"); - label_6.setBounds(10, 274, 71, 14); + label_6.setBounds(102, 350, 71, 14); contentPanel.add(label_6); - + JLabel label_7 = new JLabel("Gesch\u00E4tzte Verbleibende Zeit:"); - label_7.setBounds(10, 224, 150, 14); + label_7.setBounds(102, 300, 150, 14); contentPanel.add(label_7); - + labelZeit = new JLabel("0"); - labelZeit.setBounds(329, 224, 117, 14); + labelZeit.setBounds(374, 300, 117, 14); contentPanel.add(labelZeit); - + labelverbleibend = new JLabel("0"); - labelverbleibend.setBounds(91, 274, 108, 14); + 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 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); - + + 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/Bearbeiten"); + + 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); - - JButton btnCopyFileTo = new JButton("Copy File to Prod"); + + btnCopyFileTo.setEnabled(false); btnCopyFileTo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { - client.startFileCopy(user.path+"/"+uploadFile.getName()); + client.startFileCopy(user.path + "/" + uploadFile.getName()); } catch (TException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); - btnCopyFileTo.setBounds(10, 375, 264, 23); + 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); { - JButton ButtonReady = new JButton("Abschlie\u00DFen"); - ButtonReady.addActionListener(new ActionListener() { + + finishButton.setEnabled(false); + finishButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - + updateData(); dispose(); - MainMenue_GUI m=new MainMenue_GUI(); + 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); + + if (taskrun == true) { + try { + client.DeleteFtpUser(user.userName); + + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + task.cancel(true); } thrift.closeThriftConnection(); } }); - - JButton buttonCancel = new JButton("Schlie\u00DFen"); - buttonCancel.setActionCommand("Cancel"); - buttonPane.add(buttonCancel); - ButtonReady.setActionCommand("Cancel"); - buttonPane.add(ButtonReady); + 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) { - // 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); + + 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("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(); } - DateFormat formatter = new SimpleDateFormat("yyyMMddhhmmss"); + 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; - - //createXML(); - //TransferToSatellit(); - - - } + 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()) { - 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 updateData(){ - - try { - - - System.out.println("Start Update"); - 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) { + 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 { + + System.out.println("Start Update"); + 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 |
