@Override
	protected void processAction() {
		
		log.info("Process Clicked");
		
		saveFields();
		
		StringBuffer errors = new StringBuffer();
		
		if (reportFolder.getText().isEmpty()) {
			errors.append("You must specify a Music Action folder\r\n");
		}
		
		if (errors.length() > 0) {
			log.info("Errors: " + errors.toString());
			Run.showErrorDialog(getSelfRef(), errors.toString());
			return;
		}
				
		File dir = new File(reportFolder.getText());
		
		if (!dir.exists()) {
			errors.append("The Music Action folder '"+reportFolder.getText()+"' does not exist.");
		} else if (!dir.isDirectory()) {
			errors.append("The Music Action '"+reportFolder.getText()+"' must be a directory.");
		} else if (!dir.canRead()) {
			errors.append("The Music Action '"+reportFolder.getText()+"' can't be read. Check directory permissions");
		}
		
		if (errors.length() > 0) {
			log.info("Errors: " + errors.toString());
			Run.showErrorDialog(getSelfRef(), errors.toString());
			return;
		}
		
		
		 Runnable r = new Runnable() {

			public void run() {
				disableGUI();
				processFileAction();
				enableGUI();
				
			}
			 
		 };
		 
		 processingThread = new Thread(r);
		 processingThread.start();
		
	}