123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- package schemaspygui;
- import java.io.*;
- import java.io.InputStreamReader;
- //Catches every error output from SchemaSpy
- /**
- *
- * @author joachim uhl; mailto:admin@joachim-uhl.de; http://www.joachim-uhl.de/projekte/schemaspygui/
- */
- public class RunSchemaSpy implements Runnable {
- private SchemaSpyGUIApp gui;
- private String command;
- private String displ_command;
- public RunSchemaSpy(SchemaSpyGUIApp gui, String run_command, String display_command) {
- this.gui = gui;
- this.command = run_command;
- this.displ_command = display_command;
- }
- public void run( ) {
- try {
- gui.setOutputText("This is the command (password not displayed!) SchemaSpyGUI has generated:" +"\n");
- gui.setOutputText(displ_command +"\n");
- gui.setOutputText("\n");
- Process d = Runtime.getRuntime().exec(command);
- ErrStreamOut errOut = new ErrStreamOut(d, gui);
- InputStreamOut inOut = new InputStreamOut(d, gui);
- Thread terrOut = new Thread(errOut);
- Thread tinOut = new Thread(inOut);
- terrOut.setName("terrOut");
- terrOut.start();
- tinOut.setName("tinOut");
- tinOut.start();
- } catch ( Exception ioe ) {
- System.err.println( "IO error: " + ioe );
- ioe.printStackTrace();
- }
- }
- }
- class ErrStreamOut implements Runnable {
- private Process p;
- private SchemaSpyGUIApp gui;
- public ErrStreamOut(Process d, SchemaSpyGUIApp gui) {
- this.p = d;
- this.gui = gui;
- }
- public void run() {
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(p.getErrorStream()));
- String s;
- while ((s = in.readLine()) != null) {
- gui.setOutputText(s +"\n");
- }
- int exitVal = p.waitFor();
- gui.setOutputText("E=" + exitVal);
- in.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- //Catches every "normal" output from SchemaSpy
- class InputStreamOut implements Runnable {
-
- private Process p;
- private SchemaSpyGUIApp gui;
-
- public InputStreamOut(Process d, SchemaSpyGUIApp gui) {
- this.p = d;
- this.gui = gui;
- }
-
- public void run() {
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
- //String s;
- int c;
- /*while ((s = in.readLine()) != null)
- {GuiSchema.setText(s +"\n");}
- int exitVal = p.waitFor();
- GuiSchema.setText("" +exitVal);
- */
- while ((c = in.read()) != -1) {
- /*String aChar = new Character((char)c).toString();
- GuiSchema.setText(aChar);*/
- gui.setOutputText(String.valueOf(Character.toChars(c)));
- }
- int exitVal = p.waitFor();
- gui.setOutputText("I=" + exitVal);
- in.close();
- // Launch the result when finish if checked and No Errors
- if (exitVal == 0 && gui.getAutoLaunchInfo()) {gui.startShowOutput();}
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|