@Override
	public void launch(ISelection editor, String mode) 
	{
		IWorkbench wb = PlatformUI.getWorkbench();
		IWorkbenchWindow window = wb.getActiveWorkbenchWindow();

		if(window != null)
		{
			IWorkbenchPage page = window.getActivePage();
			if(page != null)
			{
				IEditorPart editorPart = page.getActiveEditor();
				IEditorInput input = editorPart.getEditorInput();
				IPath path = ((FileEditorInput)input).getPath();

				String cmd = "shadowc";
				String pathName = path.toString();																			

				ArrayList<String> inputArgs = new ArrayList<String>();
				inputArgs.add(cmd);				
				inputArgs.add(pathName);

				try {

					ShadowLauncherUtil launchProcesses = new ShadowLauncherUtil(); 
					CommandPromptOutput results = launchProcesses.runProcess(inputArgs);					

					if(results.getStatus() == 0)
					{
						/* TODO: The execution of .exe files are only proven to work on Windows machines.
						 * Editions need to be made to make sure that they run on Linux and Mac.
						 */ 

						ShadowLauncherUtil.resetConsole();
						
						IPath executableFile; 


						String osName = System.getProperty("os.name").toLowerCase();
						inputArgs = new ArrayList<String>();


						if(osName.contains("windows"))
						{
							executableFile = path.removeFileExtension().addFileExtension("exe");
							inputArgs.add(executableFile.toString());
						}
						else
						{
							executableFile = path.removeFileExtension();
							inputArgs.add("./" + executableFile.toString());
						}		

						results = launchProcesses.runProcess(inputArgs);

						System.out.println("STDOUT:");
						System.out.println(results.getStdout());
						System.out.println("STDERR:");
						System.err.println(results.getStderr());

					}
					else
					{
						System.err.println("STDERR:");
						System.err.println(results.getStderr());
					}

					ShadowLauncherUtil.resetConsole();

				} catch (IOException e)
				{
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}

		}
	}