diff options
Diffstat (limited to 'dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java | 626 |
1 files changed, 0 insertions, 626 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java b/dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java deleted file mode 100644 index 27f3d7ce..00000000 --- a/dozentenmodul/src/main/java/gui/image/FTPEditUploader_GUI.java +++ /dev/null @@ -1,626 +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.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 javax.swing.filechooser.FileNameExtensionFilter; - -import models.Image; -import models.RightsManagement; -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.MessageType; -import config.Config; -import ftp.UploadTask; -import gui.intro.MainMenue_GUI; - -@SuppressWarnings("serial") -public class FTPEditUploader_GUI extends JInternalFrame implements PropertyChangeListener { - - /** - * Logger instance for this class. - */ - private final static Logger LOGGER = Logger.getLogger(FTPEditUploader_GUI.class); - - private final JPanel contentPanel = new JPanel(); - private JLabel lblPath; - private JProgressBar progressBar; - private String host = SessionData.serverAdress; - private File uploadFile; - private UploadTask task = null; - private JLabel lblUpSpeed; - private JLabel lblFertig; - private JLabel lblFilesize; - private JLabel lblZeit; - private JLabel lblVerbleibend; - private JFileChooser fc; - private long filesize; - private double speed; - private long bytesread; - private int progress = 0; - private JButton btnUploadStarten = new JButton("Upload auf Server starten"); - private JButton btnSpeicherortAuswhlen = new JButton("Image auswählen"); - private JButton btnFinish = new JButton("Fertigstellen"); - private JButton btnZurck = new JButton("Zurück"); - private JButton btnUploadStoppen = new JButton("Upload abbrechen"); - private TransferInformation transferInfo = null; - // file - private boolean isAborted = false; // down- or upload was manually aborted - public static final String HELP_MESSAGE = "<html><div align = \"center\">" - + "Laden Sie hier Ihre bearbeitete .vmdk-Datei hoch, die dann als virtuelles Labor geladen werden kann.<br />" - + "Wichtig ist, dass Sie zum Schluss auf \"Fertigstellen\" klicken, damit die Daten übernommen werden.<br />" - + "Wenn Sie die Datei hochgeladen haben, dann aber auf \"zurück\" klicken, oder die Anwendung beenden,<br />" - + "werden die Änderungen NICHT übernommen und auch die .vmdk-Datei wird nicht aktiv geschaltet." - + "</div></html>"; - - /** - * Create the frame. - */ - public FTPEditUploader_GUI() { - - final String[] options = { "Beenden", "Abbrechen" }; - addInternalFrameListener(new InternalFrameAdapter() { - @Override - public void internalFrameClosing(InternalFrameEvent arg0) { - if (!isCurrentlyLoading()) - return; - // check if user wants to quit. - int choice = JOptionPane.showOptionDialog( - null, - "Aktuell ist ein Upload 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) { - } - task.cancel(true); - System.exit(0); - }// end if choice - } - }); - setResizable(false); - // Aktion die beim Schliessen durchgefuehrt werden soll - setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); - - setBackground(Color.WHITE); - setTitle("Dozentenmodul - Image bearbeiten - " + person.verantwortlicher.getUserID()); - - 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); - { - - btnSpeicherortAuswhlen.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - fc = new JFileChooser(Config.getLastUploadPath()); - fc.setFileSelectionMode(JFileChooser.FILES_ONLY); - FileNameExtensionFilter filter = new FileNameExtensionFilter("VMDK-Container", "vmdk"); - fc.setFileFilter(filter); - - fc.showOpenDialog(getParent()); - File file = fc.getSelectedFile(); - // check if a file is selected and exists - if (file != null) { - // file selected - uploadFile = file; - uploadFile.getName(); - lblPath.setText(file.getAbsolutePath()); - } else { - // no file selected - lblPath.setText(""); - }// end if - } - }); - - btnSpeicherortAuswhlen.setBounds(102, 162, 173, 23); - btnSpeicherortAuswhlen.setVerticalAlignment(SwingConstants.TOP); - contentPanel.add(btnSpeicherortAuswhlen); - } - - lblPath = new JLabel(""); - lblPath.setText(Config.getLastUploadPath()); - - lblPath.addPropertyChangeListener(new PropertyChangeListener() { - public void propertyChange(PropertyChangeEvent arg0) { - if (lblPath.getText().trim().isEmpty()) { - // wenn leer, dann upload button nicht freigeben - btnUploadStarten.setEnabled(false); - btnUploadStarten.setText("Bitte warten"); - } else if (lblPath.getText().trim().endsWith(".vmdk")) { - // wenn leer, dann upload button freigeben - btnUploadStarten.setEnabled(true); - btnUploadStarten.setText("Upload auf Server starten"); - } - } - }); - lblPath.setBounds(102, 196, 485, 23); - contentPanel.add(lblPath); - - btnUploadStarten.setEnabled(false); - btnUploadStarten.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - buttonUploadActionPerformed(arg0); - - } - }); - - btnUploadStarten.setBounds(102, 238, 173, 23); - contentPanel.add(btnUploadStarten); - - progressBar = new JProgressBar(0, 100); - progressBar.setStringPainted(true); - - progressBar.setBounds(102, 272, 485, 30); - contentPanel.add(progressBar); - - JLabel lblUploadgeschwindigkeit = new JLabel("Uploadgeschwindigkeit:"); - lblUploadgeschwindigkeit.setBounds(102, 313, 141, 14); - contentPanel.add(lblUploadgeschwindigkeit); - - JLabel label_1 = new JLabel("Fertig:"); - label_1.setBounds(102, 363, 46, 14); - contentPanel.add(label_1); - - lblFertig = new JLabel("0"); - lblFertig.setBounds(183, 363, 108, 14); - contentPanel.add(lblFertig); - - lblUpSpeed = new JLabel("0"); - lblUpSpeed.setBounds(374, 313, 117, 14); - contentPanel.add(lblUpSpeed); - - JLabel label_4 = new JLabel("von:"); - label_4.setBounds(318, 363, 46, 14); - contentPanel.add(label_4); - - lblFilesize = new JLabel("0"); - lblFilesize.setBounds(374, 363, 117, 14); - contentPanel.add(lblFilesize); - - JLabel label_6 = new JLabel("Verbleibend:"); - label_6.setBounds(102, 388, 71, 14); - contentPanel.add(label_6); - - JLabel label_7 = new JLabel("Geschätzte Verbleibende Zeit:"); - label_7.setBounds(102, 338, 150, 14); - contentPanel.add(label_7); - - lblZeit = new JLabel("0"); - lblZeit.setBounds(374, 338, 117, 14); - contentPanel.add(lblZeit); - - lblVerbleibend = new JLabel("0"); - lblVerbleibend.setBounds(183, 388, 108, 14); - contentPanel.add(lblVerbleibend); - - JPanel panel = new JPanel(); - panel.setLayout(null); - panel.setBackground(SystemColor.menu); - panel.setBounds(10, 11, 577, 73); - contentPanel.add(panel); - - JLabel lblUploadIhresImage = new JLabel("Upload Ihres Images"); - lblUploadIhresImage.setFont(new Font("Tahoma", Font.BOLD, 18)); - lblUploadIhresImage.setBounds(10, 11, 509, 22); - panel.add(lblUploadIhresImage); - - JTextPane txtpnFhreSieBitte = new JTextPane(); - txtpnFhreSieBitte.setText("Laden Sie optional ein neues Image hoch, oder klicken Sie direkt auf \"Fertigstellen\", um reine Änderungen der Angaben direkt zu übernehmen."); - txtpnFhreSieBitte.setEditable(false); - txtpnFhreSieBitte.setBackground(SystemColor.menu); - txtpnFhreSieBitte.setBounds(10, 36, 509, 42); - panel.add(txtpnFhreSieBitte); - - JSeparator separator = new JSeparator(); - separator.setBounds(10, 88, 597, 14); - contentPanel.add(separator); - - JLabel lblNewLabel_1 = new JLabel("Hauptmenü"); - lblNewLabel_1.setForeground(Color.BLUE); - lblNewLabel_1.setBounds(20, 88, 61, 20); - contentPanel.add(lblNewLabel_1); - lblNewLabel_1.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent arg0) { - GuiManager.show(new MainMenue_GUI()); - } - }); - - JLabel label_3 = new JLabel(">"); - label_3.setBounds(80, 91, 14, 14); - contentPanel.add(label_3); - - JLabel lblVlimage = new JLabel("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("Bearbeiten"); - lblNeubearbeiten.setBounds(149, 91, 155, 14); - contentPanel.add(lblNeubearbeiten); - - JSeparator separator_1 = new JSeparator(); - separator_1.setBounds(0, 627, 597, 2); - contentPanel.add(separator_1); - - JLabel lblSchritt_1 = new JLabel("Schritt 1:"); - lblSchritt_1.setBounds(24, 166, 61, 14); - contentPanel.add(lblSchritt_1); - - JLabel lblSchritt_2 = new JLabel("Schritt 2:"); - lblSchritt_2.setBounds(24, 242, 57, 14); - contentPanel.add(lblSchritt_2); - - JLabel label = new JLabel("Schritt 3:"); - label.setBounds(20, 461, 57, 14); - contentPanel.add(label); - - JLabel label_2 = new JLabel("Klicken Sie auf \"Fertigstellen\"."); - label_2.setBounds(98, 461, 241, 14); - contentPanel.add(label_2); - btnUploadStoppen.addActionListener(new ActionListener() { - 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(); - - } - }); - - btnUploadStoppen.setEnabled(false); - btnUploadStoppen.setBounds(307, 238, 173, 23); - contentPanel.add(btnUploadStoppen); - - JLabel lblNewLabel = new JLabel(" (opt.)"); - lblNewLabel.setBounds(20, 179, 46, 14); - contentPanel.add(lblNewLabel); - - JLabel lblopt = new JLabel(" (opt.)"); - lblopt.setBounds(20, 257, 46, 14); - contentPanel.add(lblopt); - { - JPanel buttonPane = new JPanel(); - buttonPane.setBackground(UIManager.getColor("Button.background")); - buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); - getContentPane().add(buttonPane, BorderLayout.SOUTH); - { - - // finishButton.setEnabled(false); - btnFinish.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - - // save data - boolean success = updateData(); - if (!success) - return; - LOGGER.info("Bearbeitetes Image '" + Image.Imagename + "' erfolgreich gespeichert."); - JOptionPane.showMessageDialog(null, "Die Änderungen wurden erfolgreich gespeichert.", - "Änderungen gespeichert", JOptionPane.INFORMATION_MESSAGE); - - if (lblPath.getText().trim().length() > 0) { - File f = new File(lblPath.getText().trim()); - - if (f.isDirectory()) { - Config.setLastUploadPath(f.toString()); - } else if (f.getParentFile().isDirectory()) { - Config.setLastUploadPath(f.getParentFile().toString()); - } - } - - Config.store(); - - GuiManager.show(new MainMenue_GUI()); - - if (isCurrentlyLoading()) { - task.cancel(true); - } - - } - }); - btnZurck.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - - // 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) { - try { - ThriftManager.getSatClient().cancelDownload(transferInfo.token); - } catch (TException e1) { - e1.printStackTrace(); - } - task.cancel(true); - // not loading files, go back one page - - try { - - if (ThriftManager.getSatClient().userIsImageAdmin(Image.ImageId, - SessionData.authToken, person.verantwortlicher.getUserID()) == true - || person.verantwortlicher.getRole().equals("Admin")) { - - //user is admin and may change permissions - GuiManager.show(new PermissionEditImage_GUI()); - } else { - //user may not change permissions - GuiManager.show(new EditImageTechnisch_GUI()); - } - } catch (TException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - }// end if coice - } else { - - int selectedOption = JOptionPane.showConfirmDialog( - null, - "<html>Achtung: Alle Änderungen gehen verloren!<br />Klicken Sie auf fertigstellen, wenn Sie die Änderungen dauerhaft speichern möchten.<br /><br />Möchten Sie jetzt abbrechen und zurück?</html>", - "Abbrechen und zurück", JOptionPane.YES_NO_OPTION); - if (selectedOption == JOptionPane.YES_OPTION) { - try { - System.out.println("userID in editimageuploader is : " - + person.verantwortlicher.getUserID()); - - if (ThriftManager.getSatClient().userIsImageAdmin(Image.ImageId, - SessionData.authToken, person.verantwortlicher.getUserID()) == true) { - //user is admin and may change permissions - GuiManager.show(new PermissionEditImage_GUI()); - } else { - //user may not change permissions - GuiManager.show(new EditImageTechnisch_GUI()); - } - } catch (TException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } else { - // for actions if "no" is selected. tbd. - } - - }// end else - }// end action - }); - - btnZurck.setActionCommand("Cancel"); - buttonPane.add(btnZurck); - btnFinish.setActionCommand("Cancel"); - buttonPane.add(btnFinish); - } - } - - } - - private void buttonUploadActionPerformed(ActionEvent event) { - - isAborted = false; - progressBar.setValue(0); - btnUploadStarten.setEnabled(false); // verhindert einen weiteren Klick - btnUploadStarten.setText("Bitte warten"); - - try { - transferInfo = ThriftManager.getSatClient().requestUpload(SessionData.authToken, - uploadFile.length(), null); - } catch (TException e) { - transferInfo = null; - JOptionPane.showMessageDialog(null, "Konnte vom Satelliten keine FTP-User erhalten!", - "Debug-Message", JOptionPane.ERROR_MESSAGE); - } - - task = new UploadTask(host, transferInfo.plainPort, transferInfo.token, uploadFile); - - task.addPropertyChangeListener(this); - task.execute(); - - } - - public void propertyChange(PropertyChangeEvent arg0) { - - if (isAborted == false) { - // set progressbar - if ("progress".equals(arg0.getPropertyName())) { - progress = (Integer) arg0.getNewValue(); - progressBar.setValue(progress); - } - - // Fertigstellen erlauben wenn upload abgeschlossen - if (isCurrentlyLoading() == false || progressBar.getPercentComplete() == 1.0) { - // no upload - // LOGGER.info("finished uploading file"); - btnUploadStoppen.setEnabled(false); - btnFinish.setEnabled(true); - } else { - // upload - btnUploadStoppen.setEnabled(true); - btnFinish.setEnabled(false); - } - - if ("speed".equals(arg0.getPropertyName())) { - speed = (double) arg0.getNewValue(); - // if(speed<=1){ - - lblUpSpeed.setText(String.format("%.2f", speed) + " MB/s"); - - } - if ("bytesread".equals(arg0.getPropertyName())) { - 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 ("filesize".equals(arg0.getPropertyName())) { - filesize = (long) arg0.getNewValue(); - lblFilesize.setText((filesize / 1024 / 1024) + " MB"); - - } - }// end if - }// end propertyChange - - public boolean updateData() { - if (isCurrentlyLoading()) { - JOptionPane.showMessageDialog(null, "Vorgang noch nicht abgeschlossen!!", "Fehler", - JOptionPane.ERROR_MESSAGE); - return false; - } - boolean ret; - Exception ex; - //if a new file has been uploaded and new filename is set - if (task != null && task.isDone()) { - LOGGER.debug("New file uploaded, updating DB entry..."); - - ret = false; - ex = null; - try { - ret = ThriftManager.getSatClient().updateImageFile(transferInfo.token, Image.ImageId); - } catch (Exception e) { - ex = e; - } - if (!ret) { - GuiManager.showMessageBox( - "Die Metadaten des Images konnten nicht auf das neue Image umgeschrieben werden.", - MessageType.ERROR, LOGGER, ex); - return false; - } - } - - LOGGER.debug("old file should remain"); - - ret = false; - ex = null; - try { - ret = ThriftManager.getSatClient().updateImageData(SessionData.authToken, Image.ImageId, - Image.Imagename, Image.Desc, Image.Licensed, Image.Internet, Image.ShareMode, Image.OS); - } catch (TException e) { - ex = e; - } - if (!ret) { - GuiManager.showMessageBox("Serverseitiger Fehler beim Aktualisieren der Metadaten", - MessageType.ERROR, LOGGER, ex); - return false; - } - - // remove all additional user permissions on first stage - ret = false; - ex = null; - try { - ThriftManager.getSatClient().deleteAllAdditionalImagePermissions(Image.ImageId, - SessionData.authToken, person.verantwortlicher.getUserID()); - } catch (TException e) { - ex = e; - } - if (ex != null) { - GuiManager.showMessageBox("Konnte alte Permissions nicht aus der Datenbank entfernen.", - MessageType.WARNING, LOGGER, ex); - } - - // then, add user permissions as they have been set new - ret = true; // (sic) - ex = null; - for (int i = 0; i < RightsManagement.rightsManagement.getPermittedUserList().size(); i++) { - try { - ret = ThriftManager.getSatClient().writeAdditionalImageRights(Image.ImageId, - RightsManagement.rightsManagement.getPermittedUserList().get(i).getUserID(), - RightsManagement.rightsManagement.getPermittedUserList().get(i).isImageRead(), - RightsManagement.rightsManagement.getPermittedUserList().get(i).isImageWrite(), - RightsManagement.rightsManagement.getPermittedUserList().get(i).isImageLinkAllowed(), - RightsManagement.rightsManagement.getPermittedUserList().get(i).isImageAdmin(), - SessionData.authToken) - && ret; - } catch (TException e) { - ex = e; - } - }// end for - if (!ret) { - GuiManager.showMessageBox("Serverseitiger Fehler beim Schreiben der neuen Berechtigungen.", - MessageType.WARNING, LOGGER, ex); - } - - return true; - - } - - public boolean isCurrentlyLoading() { - return task != null && !task.isDone(); - }// end isCurrentlyLoading() - - public void resetValues() { - lblUpSpeed.setText("0"); - lblZeit.setText("0"); - lblFertig.setText("0"); - lblFilesize.setText("0"); - lblVerbleibend.setText("0"); - progressBar.setValue(0); - }// end resetValues - - public void resetButtons() { - btnFinish.setEnabled(false); - btnUploadStarten.setEnabled(true); - btnUploadStarten.setText("Upload starten"); - btnUploadStoppen.setEnabled(false); - - }// end resetButtons -}// end class
\ No newline at end of file |
