package GUI; import java.awt.BorderLayout; import java.awt.Color; import java.awt.EventQueue; import java.awt.FlowLayout; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Properties; 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 com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSch; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import Models.person; import Models.vm; import downloader.UploadTask; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @SuppressWarnings("serial") public class FTPUploader extends JFrame implements PropertyChangeListener { @SuppressWarnings("unused") private JPanel contentPane; private final JPanel contentPanel = new JPanel(); JLabel lblNewLabel; JLabel UpSpeed; JProgressBar progressBar; String host="bwlp-masterserver.ruf.uni-freiburg.de"; int port=21; String username="openslx"; String password="openslx-ng"; String uploadPath="/"; String filename=""; File uploadFile; static String arg=""; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { FTPUploader frame = new FTPUploader(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public FTPUploader() { //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("Uploader"); setBounds(100, 100, 450, 218); getContentPane().setLayout(new BorderLayout()); contentPanel.setBackground(Color.WHITE); 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, 11, 141, 23); btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP); btnSpeicherortAuswhlen.setHorizontalAlignment(SwingConstants.LEFT); contentPanel.add(btnSpeicherortAuswhlen); } lblNewLabel = new JLabel(""); lblNewLabel.setBounds(169, 11, 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, 106, 141, 23); contentPanel.add(btnDownloadStarten); progressBar = new JProgressBar(0,100); progressBar.setStringPainted(true); progressBar.setBounds(10, 45, 414, 30); contentPanel.add(progressBar); JLabel lblUploadgeschwindigkeit = new JLabel("Uploadgeschwindigkeit:"); lblUploadgeschwindigkeit.setBounds(10, 75, 150, 14); contentPanel.add(lblUploadgeschwindigkeit); UpSpeed = new JLabel(""); UpSpeed.setBounds(169, 75, 170, 14); UpSpeed.setText(String.valueOf(0)); contentPanel.add(UpSpeed); { JPanel buttonPane = new JPanel(); buttonPane.setBackground(Color.WHITE); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { JButton okButton = new JButton("OK"); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton("Zur\u00FCck"); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); } } setVisible(true); } private void buttonUploadActionPerformed(ActionEvent event) { //File f=new File(lblNewLabel.getText()); //boolean nextStep=f.renameTo(new File(f.getAbsolutePath().substring(0,f.getAbsolutePath().lastIndexOf(File.separator))+"//"+vm.vl.getLaborname()+".vmdk")); //if(nextStep==true) //{ progressBar.setValue(0); UploadTask task=new UploadTask(host,port,username,password,uploadPath, uploadFile); task.addPropertyChangeListener(this); task.execute(); createXML(); //} } public void propertyChange(PropertyChangeEvent arg0) { if ("progress" == arg0.getPropertyName()) { int progress = (Integer) arg0.getNewValue(); progressBar.setValue(progress); } if("speed"==arg0.getPropertyName()){ double speed=(double)arg0.getNewValue(); //if(speed<=1){ UpSpeed.setText(String.valueOf(speed)); //}else //{ // double MBSpeed=speed/1024; // UpSpeed.setText(String.valueOf((MBSpeed)).substring(0, String.valueOf(MBSpeed).indexOf("."))); // } } } public void createXML() { JSch j=new JSch(); try { Session se=j.getSession("openslx", "132.230.4.16", 22); Properties config = new Properties(); config.setProperty("StrictHostKeyChecking", "no"); se.setConfig(config); se.setPassword("openslx-ng"); se.connect(); ChannelExec ch=(ChannelExec) se.openChannel("exec"); String OS="winvista"; ch.setCommand("sh /home/openslx/scripts/xml_file_creator.sh '"+vm.vl.getLaborname()+"' '"+person.ersteller.getName()+" "+person.ersteller.getVorname()+"' '"+person.ersteller.getEMail()+"' '"+vm.vl.getShortDesc()+"' '"+vm.vl.getLongDesc()+"' '"+OS+"'"); //ch.setCommand("ls"); ch.connect(); ch.disconnect(); se.disconnect(); } catch (JSchException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }