summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
blob: 0c588656684a991af1d4990f4fedcca50930bbd3 (plain) (tree)
1
2
3
4
5
6
7
8
9

                                        


                                     
                               
                                  
                                                 
                                                  


                                              

                           
                                                

                                                                                 
 

                                              

                                               
                                                     
                                                                              
                                                               
                                   
                                                   

         


                                                              




                                                                                                                
                                                       












                                                                                                                                        

                 
 
package org.openslx.dozmod.gui.activity;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import org.apache.log4j.Logger;
import org.openslx.dozmod.gui.Gui;
import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.state.UploadWizardState;
import org.openslx.thrifthelper.ThriftManager;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;

@SuppressWarnings("serial")
public class UploadPanel extends TransferPanel {

	private static final Logger LOGGER = Logger.getLogger(UploadPanel.class);

	private final UploadWizardState state;

	private final UploadPanel panel = this;

	public UploadPanel(UploadWizardState state) {
		super(state.uploadTask, state.name, state.diskFile.getName());
		btnClose.addActionListener(new ButtonAction());
		this.state = state;
		state.uploadTask.addListener(this);
	}

	private class ButtonAction implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
			if (!state.uploadTask.isCanceled()) {
				if (!Gui.showMessageBox(panel, "Wollen Sie diesen Transfer wirklich abbrechen?",
						MessageType.QUESTION_YESNO, null, null))
					return;
				state.uploadTask.cancel();
				state.hashGen.cancel();
				QuickTimer.scheduleOnce(new Task() {
					@Override
					public void fire() {
						try {
							ThriftManager.getSatClient().cancelUpload(state.transferInformation.getToken());
						} catch (Exception ex) {
							LOGGER.debug("Remote error while canceling upload for " + state.uuid, ex);
						}
					}
				});
			}
			state.uploadTask.removeListener(panel);
			close();
		}
	}
}