protected void runSootDirectly(String mainClass) { int length = getSootCommandList().getList().size(); String temp[] = new String[length]; getSootCommandList().getList().toArray(temp); sendSootOutputEvent(mainClass); sendSootOutputEvent(" "); final String[] cmdAsArray = temp; for (int i = 0; i < temp.length; i++) { sendSootOutputEvent(temp[i]); sendSootOutputEvent(" "); } sendSootOutputEvent("\n"); IRunnableWithProgress op; try { newProcessStarting(); op = new SootRunner(temp, Display.getCurrent(), mainClass); ((SootRunner) op).setParent(this); ModalContext.run(op, true, new NullProgressMonitor(), Display.getCurrent()); } catch (InvocationTargetException e1) { // handle exception System.out.println("InvocationTargetException: " + e1.getMessage()); System.out.println("InvocationTargetException: " + e1.getTargetException()); System.out.println(e1.getStackTrace()); } catch (InterruptedException e2) { // handle cancelation System.out.println("InterruptedException: " + e2.getMessage()); } }
private void sendSootOutputEvent(String toSend) { SootOutputEvent send = new SootOutputEvent(this, ISootOutputEventConstants.SOOT_NEW_TEXT_EVENT); send.setTextToAppend(toSend); final SootOutputEvent sendFinal = send; Display.getCurrent() .asyncExec( new Runnable() { public void run() { SootPlugin.getDefault().fireSootOutputEvent(sendFinal); }; }); }
protected void runSootAsProcess(String cmd) { SootProcessRunner op; try { newProcessStarting(); op = new SootProcessRunner(Display.getCurrent(), cmd, sootClasspath); if (window == null) { window = SootPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); } new ProgressMonitorDialog(window.getShell()).run(true, true, op); } catch (InvocationTargetException e1) { // handle exception } catch (InterruptedException e2) { // handle cancelation System.out.println(e2.getMessage()); } }