@Override
		protected void done() {
			//when it have finish downloading
			try {
				errorCode=process.waitFor();
				get();
			} catch (InterruptedException e) {
			} catch (ExecutionException e) {
			} catch (CancellationException e){
				errorCode=-1;
			}
			switch(errorCode){
			case -1://cancel button
				//Helper.logFunction("d");
				JOptionPane.showMessageDialog(_DownloadFrame, "Download has been cancelled. Note partially downloaded to: \n" +Constants.CURRENT_DIR+urlEnd);
				break;
			case 0://nothing wrong so write to log
				//Helper.logFunction("d");
				JOptionPane.showMessageDialog(_DownloadFrame, "Download has finished. Note downloaded to: \n" +Constants.CURRENT_DIR+urlEnd);
				break;
			case 3://error message of File IO
				JOptionPane.showMessageDialog(_DownloadFrame, "File IO error. Make sure the directory is safe to write to. Or not denied by your anti-virus.");
				break;
			case 4://error message of Network
				JOptionPane.showMessageDialog(_DownloadFrame, "Network error. Make sure you are connected to the internet correctly. Or link is invalid");
				break;
			case 8://error message of Sever issue
				JOptionPane.showMessageDialog(_DownloadFrame, "Server issued error. Server could be down. Please try again later.");
				break;
			default://error message of generic
				JOptionPane.showMessageDialog(_DownloadFrame, "An error has occured. Please try again. The error code is: "+errorCode);
				break;
			}
			this._DownloadFrame.dispose();
			if (errorCode==0){
				VideoOperations.loadAndPreview(Constants.CURRENT_DIR+urlEnd, "00:00:00", "00:00:30");
			}
		}