diff options
| author | Jonathan Bauer | 2015-06-22 13:40:02 +0200 |
|---|---|---|
| committer | Jonathan Bauer | 2015-06-22 13:40:02 +0200 |
| commit | bb09d09546c00fe8b0c21d525af31c87097367d4 (patch) | |
| tree | 61fd648989bcde8ed32b3bf426870d9846e948cb /dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java | |
| parent | [server] Implement getOperatingSystems and getVirtualizers (diff) | |
| download | tutor-module-bb09d09546c00fe8b0c21d525af31c87097367d4.tar.gz tutor-module-bb09d09546c00fe8b0c21d525af31c87097367d4.tar.xz tutor-module-bb09d09546c00fe8b0c21d525af31c87097367d4.zip | |
[client] rebasing the whole app...
Diffstat (limited to 'dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java | 489 |
1 files changed, 0 insertions, 489 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java b/dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java deleted file mode 100644 index 11aed0f9..00000000 --- a/dozentenmodul/src/main/java/gui/image/FTPEditDownloader_GUI.java +++ /dev/null @@ -1,489 +0,0 @@ -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.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.JInternalFrame; -import javax.swing.JLabel; -import javax.swing.JMenuBar; -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.border.EmptyBorder; -import javax.swing.event.InternalFrameAdapter; -import javax.swing.event.InternalFrameEvent; - -import models.Image; -import models.SessionData; -import models.person; - -import org.apache.log4j.Logger; -import org.apache.thrift.TException; -import org.openslx.sat.thrift.iface.TransferInformation; -import org.openslx.thrifthelper.ThriftManager; - -import util.GuiManager; -import util.OpenLinks; -import config.Config; -import ftp.DownloadTask; -import gui.intro.MainMenue_GUI; - -@SuppressWarnings("serial") -public class FTPEditDownloader_GUI extends JInternalFrame implements PropertyChangeListener { - - /** - * Logger instance for this class. - */ - private final static Logger LOGGER = Logger.getLogger(FTPEditDownloader_GUI.class); - - private final JPanel contentPanel = new JPanel(); - private JLabel lblPath; - private JLabel lblDownSpeed; - private JProgressBar progressBar; - private String host = SessionData.serverAdress; - private DownloadTask task; - private JLabel lblFertig; - private JLabel lblFilesize; - private JLabel lblVerbleibend; - private JFileChooser fc; - private long filesize; - private double speed; - private int progress = 0; // progress of download - private long bytesread; - private JLabel lblZeit; - private boolean taskrun = false; - private JButton btnZurck = new JButton("Zurück"); - private JButton btnDownloadStarten = new JButton("Download starten"); - private JButton btnDownloadStoppen = new JButton("Download abbrechen"); - private JLabel lblAnleitung; - private boolean isCurrentlyLoading = false; // currently up or downloading file - private boolean isAborted = false; // down- or upload was manually aborted - private TransferInformation transferInfo = null; - public static final String HELP_MESSAGE = "<html><div align=\"center\">" - + "Hier können Sie Images herunterladen.<br />" - + "Klicken Sie anschließend auf \"Zurück\", um zu Ihrer vorherigen Auswahl zurückzugelangen.<br />" - + "</div></html>"; - - /** - * Create the frame. - */ - public FTPEditDownloader_GUI() { - - final String[] options = { "Beenden", "Abbrechen" }; - - addInternalFrameListener(new InternalFrameAdapter() { - @Override - public void internalFrameClosing(InternalFrameEvent arg0) { - if (taskrun == true) { - // check if user wants to quit. - int choice = JOptionPane.showOptionDialog( - null, - "Aktuell ist ein Download aktiv. Wollen Sie diesen Abbrechen und das Programm beenden?", - "Upload aktiv", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, - null, options, options[1]); - // 0=beenden, 1=abbrechen - if (choice == 0) { - try { - ThriftManager.getSatClient().cancelDownload(transferInfo.token); - ThriftManager.getSatClient().setSessionInvalid(SessionData.authToken); - } catch (TException e1) { - LOGGER.error("Error cancelling download..", e1); - } - task.cancel(true); - System.exit(0); - }// end if coice - } - } - }); - setResizable(false); - - setBackground(Color.WHITE); - setTitle("Dozentenmodul - Image herunterladen - " + person.verantwortlicher.getUserID()); - // Aktion die beim Schliessen durchgefuehrt werden soll - setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - - setBounds(0, 0, 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ählen"); - btnSpeicherortAuswhlen.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent arg0) { - - fc = new JFileChooser(Config.getLastDownloadPath()); - fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - fc.showOpenDialog(getParent()); - - File dir = fc.getSelectedFile(); - // check if directory is selected - if (dir != null) { - // is selected - // create dir if it does not exists. - if (!dir.exists()) - dir.mkdirs(); - lblPath.setText(dir.getAbsolutePath()); - } else { - // no directory selected - lblPath.setText(""); - }// end if - } - }); - - btnSpeicherortAuswhlen.setBounds(102, 124, 173, 23); - btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP); - contentPanel.add(btnSpeicherortAuswhlen); - } - - lblPath = new JLabel(""); - lblPath.setText(Config.getLastDownloadPath()); - - lblPath.addPropertyChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent arg0) { - if (lblPath.getText().trim().isEmpty()) { - // wenn leer, dann upload button nicht freigeben - btnDownloadStarten.setEnabled(false); - btnDownloadStarten.setText("Bitte warten"); - } else { - // wenn NICHT leer, dann upload button freigeben - btnDownloadStarten.setEnabled(true); - btnDownloadStarten.setText("Download starten"); - } - } - }); - lblPath.setBounds(102, 158, 485, 23); - contentPanel.add(lblPath); - - btnDownloadStarten.setEnabled(false); - btnDownloadStarten.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent arg0) { - buttonDownloadActionPerformed(arg0); - } - }); - - btnDownloadStarten.setBounds(102, 200, 173, 23); - contentPanel.add(btnDownloadStarten); - - progressBar = new JProgressBar(0, 100); - progressBar.setStringPainted(true); - - progressBar.setBounds(102, 234, 485, 30); - contentPanel.add(progressBar); - - JLabel lblDownloadgeschwindigkeit = new JLabel("Downloadgeschwindigkeit:"); - lblDownloadgeschwindigkeit.setBounds(102, 275, 141, 14); - contentPanel.add(lblDownloadgeschwindigkeit); - - lblDownSpeed = new JLabel("0"); - lblDownSpeed.setBounds(374, 275, 117, 14); - contentPanel.add(lblDownSpeed); - - JLabel lblFertig_1 = new JLabel("Fertig:"); - lblFertig_1.setBounds(102, 325, 46, 14); - contentPanel.add(lblFertig_1); - - lblFertig = new JLabel("0"); - lblFertig.setBounds(183, 325, 108, 14); - contentPanel.add(lblFertig); - - JLabel lblVon = new JLabel("von:"); - lblVon.setBounds(318, 325, 46, 14); - contentPanel.add(lblVon); - - lblFilesize = new JLabel("0"); - lblFilesize.setBounds(374, 325, 117, 14); - contentPanel.add(lblFilesize); - - JLabel lblMbVerbleibend = new JLabel("Verbleibend:"); - lblMbVerbleibend.setBounds(102, 350, 71, 14); - contentPanel.add(lblMbVerbleibend); - - lblVerbleibend = new JLabel("0"); - lblVerbleibend.setBounds(183, 350, 108, 14); - contentPanel.add(lblVerbleibend); - - JLabel lblGeschtzteVerbleibendeZeit = new JLabel("Geschätzte Verbleibende Zeit:"); - lblGeschtzteVerbleibendeZeit.setBounds(102, 300, 150, 14); - contentPanel.add(lblGeschtzteVerbleibendeZeit); - - lblZeit = new JLabel("0"); - lblZeit.setBounds(374, 300, 117, 14); - contentPanel.add(lblZeit); - - JPanel panel = new JPanel(); - panel.setLayout(null); - panel.setBackground(SystemColor.menu); - panel.setBounds(10, 24, 577, 57); - contentPanel.add(panel); - - JLabel lblImageDownloader = new JLabel("Image Downloader"); - lblImageDownloader.setFont(new Font("Tahoma", Font.BOLD, 18)); - lblImageDownloader.setBounds(10, 11, 509, 22); - panel.add(lblImageDownloader); - - JTextPane txtpnWhlenSieEinen = new JTextPane(); - txtpnWhlenSieEinen.setText("Wählen Sie einen Ort aus, um das von Ihnen gewählte Image herunterzuladen."); - txtpnWhlenSieEinen.setEditable(false); - txtpnWhlenSieEinen.setBackground(SystemColor.menu); - txtpnWhlenSieEinen.setBounds(10, 36, 509, 32); - panel.add(txtpnWhlenSieEinen); - - JSeparator separator = new JSeparator(); - separator.setBounds(0, 88, 597, 2); - contentPanel.add(separator); - - JLabel label_1 = new JLabel("Hauptmenü"); - label_1.setForeground(Color.BLUE); - label_1.setBounds(20, 92, 61, 20); - contentPanel.add(label_1); - label_1.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent arg0) { - // oeffnet das Hauptmenue - GuiManager.show(new MainMenue_GUI()); - } - }); - - JLabel label_2 = new JLabel(">"); - label_2.setBounds(80, 95, 14, 14); - contentPanel.add(label_2); - - JLabel label_3 = new JLabel("Image"); - label_3.setForeground(Color.BLUE); - label_3.setBounds(91, 92, 46, 20); - contentPanel.add(label_3); - - JLabel label_4 = new JLabel(">"); - label_4.setBounds(139, 95, 14, 14); - contentPanel.add(label_4); - - JLabel lblNeuBearbeiten = new JLabel("Bearbeiten"); - lblNeuBearbeiten.setBounds(149, 95, 155, 14); - contentPanel.add(lblNeuBearbeiten); - - JSeparator separator_1 = new JSeparator(); - separator_1.setBounds(-10, 648, 597, 2); - contentPanel.add(separator_1); - - JLabel lblSchritt = new JLabel("Schritt 1:"); - lblSchritt.setBounds(24, 128, 57, 14); - contentPanel.add(lblSchritt); - - JLabel lblSchritt_1 = new JLabel("Schritt 2:"); - lblSchritt_1.setBounds(24, 204, 57, 14); - contentPanel.add(lblSchritt_1); - - JLabel lblSchritt_3 = new JLabel("Schritt 3:"); - lblSchritt_3.setBounds(20, 423, 57, 14); - contentPanel.add(lblSchritt_3); - - JLabel lblKlickenSieAuf = new JLabel("Klicken Sie auf \"Zurück\"."); - lblKlickenSieAuf.setBounds(102, 423, 241, 14); - contentPanel.add(lblKlickenSieAuf); - - JMenuBar menuBar = new JMenuBar(); - menuBar.setBounds(0, 0, 597, 21); - contentPanel.add(menuBar); - - lblAnleitung = new JLabel( - "<HTML><U>Anleitung zum Erstellen einer virtuellen Maschine herunterladen</U></HTML>"); - lblAnleitung.setForeground(Color.BLUE); - lblAnleitung.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent arg0) { - OpenLinks.openWebpage("intro"); - } - }); - lblAnleitung.setBounds(102, 448, 311, 14); - contentPanel.add(lblAnleitung); - btnDownloadStoppen.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - - isAborted = true; // set flag - try { - ThriftManager.getSatClient().cancelDownload(transferInfo.token); - } catch (TException e1) { - } - task.cancel(true); - resetValues(); - - // reset buttons - resetButtons(); - } - }); - - btnDownloadStoppen.setEnabled(false); - btnDownloadStoppen.setBounds(305, 200, 173, 23); - contentPanel.add(btnDownloadStoppen); - { - JPanel buttonPane = new JPanel(); - buttonPane.setBackground(UIManager.getColor("Button.background")); - buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); - getContentPane().add(buttonPane, BorderLayout.SOUTH); - { - btnZurck.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - // check if loading file or not - if (isCurrentlyLoading() == true) { - int choice = JOptionPane.showOptionDialog(null, - "Nicht abgeschlossene Uploads werden beendet. Trotzdem zurück gehen?", - "Warnung", JOptionPane.YES_NO_CANCEL_OPTION, - JOptionPane.QUESTION_MESSAGE, null, options, options[1]); - // 0=beenden, 1=abbrechen - if (choice == 0) { - task.cancel(true); - try { - ThriftManager.getSatClient().cancelDownload(transferInfo.token); - } catch (TException e1) { - } - - // go back one page - GuiManager.show(new SearchEditImage_GUI()); - }// end choice - - } else { - - // go back one page - GuiManager.show(new SearchEditImage_GUI()); - - }// end else - // always save download path - File f = new File(lblPath.getText().trim().trim()); - if (f.isDirectory()) { - Config.setLastDownloadPath(f.toString()); - } else if (f.getParentFile().isDirectory()) { - Config.setLastDownloadPath(f.getParentFile().toString()); - } - Config.store(); - - } - }); - btnZurck.setActionCommand("Cancel"); - buttonPane.add(btnZurck); - } - } - setVisible(true); - - } - - private void buttonDownloadActionPerformed(ActionEvent event) { - - isAborted = false; - progressBar.setValue(0); - btnDownloadStarten.setEnabled(false); // verhindert schnellen zweiten - // Klick - btnDownloadStarten.setText("Bitte warten"); - try { - transferInfo = ThriftManager.getSatClient().requestDownload(SessionData.authToken, Image.ImageId); - } catch (TException e) { - transferInfo = null; - JOptionPane.showMessageDialog(null, e.getCause() + "\n" + e.getStackTrace(), "Debug-Message", - JOptionPane.ERROR_MESSAGE); - } - - task = new DownloadTask(host, transferInfo.plainPort, transferInfo.token, lblPath.getText().trim(), Image.Filesize); - task.addPropertyChangeListener(this); - task.execute(); - taskrun = true; - - } - - @Override - public void propertyChange(PropertyChangeEvent arg0) { - - if (isAborted) - return; - progress = 0; - if ("progress".equals(arg0.getPropertyName())) { - progress = (Integer) arg0.getNewValue(); - progressBar.setValue(progress); - } - - if ("speed".equals(arg0.getPropertyName())) { - speed = (double) arg0.getNewValue(); - lblDownSpeed.setText(String.format("%.2f", speed) + " MB/s"); - } - - // Button zum Fertigstellen freischalten, wenn 100% erreicht sind - if (isCurrentlyLoading() == false || progressBar.getPercentComplete() == 1.0) { - // no download - btnDownloadStoppen.setEnabled(false); - } else { - // currently uploading, don't let user interact - btnDownloadStoppen.setEnabled(true); - } - - if (arg0.getPropertyName().equals("bytesread")) { - bytesread = (long) arg0.getNewValue(); - lblFertig.setText((bytesread / 1024 / 1024) + " MB"); - lblVerbleibend.setText(((filesize / 1024 / 1024) - (bytesread / 1024 / 1024)) + " MB"); - - lblZeit.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 (arg0.getPropertyName().equals("filesize")) { - filesize = (long) arg0.getNewValue(); - lblFilesize.setText((filesize / 1024 / 1024) + " MB"); - - } - - }// end PropertyChange() - - private boolean isCurrentlyLoading() { - isCurrentlyLoading = false; - - if (lblVerbleibend.getText().trim().equals("0 MB") || lblVerbleibend.getText().trim().equals("0")) { - isCurrentlyLoading = false; - } else { - isCurrentlyLoading = true; - } - return isCurrentlyLoading; - }// end isCurrentlyLoading() - - private void resetValues() { - lblDownSpeed.setText("0"); - lblZeit.setText("0"); - lblFertig.setText("0"); - lblFilesize.setText("0"); - lblVerbleibend.setText("0"); - progressBar.setValue(0); - }// end resetValues - - private void resetButtons() { - btnDownloadStarten.setEnabled(true); - btnDownloadStarten.setText("Download starten"); - btnDownloadStoppen.setEnabled(false); - - }// end resetButtons - -}// end class |
