lib/browser/GraphBrowser/Console.java
author kleing
Wed, 07 May 2003 17:40:48 +0200
changeset 13972 fac2aa7618ed
parent 13970 4aef7117817b
child 14981 e73f8140af78
permissions -rw-r--r--
fixed uncollapsed dirs (should be collapsed by default)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     1
/***************************************************************************
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     2
  Title:      GraphBrowser/Console.java
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     3
  ID:         $Id$
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
     4
  Author:     Gerwin Klein, TU Muenchen
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     5
  License:    GPL (GNU GENERAL PUBLIC LICENSE)
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     6
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     7
  This is the graph browser's main class when run as a console application.
13972
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
     8
  It duplicates some logic from GraphBrowser and GraphView.
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
     9
  It does so to remove dependency on AWT.
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    10
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    11
***************************************************************************/
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    12
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    13
package GraphBrowser;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    14
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    15
import java.io.*;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    16
import java.util.*;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    17
import java.net.*;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    18
import awtUtilities.*;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    19
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    20
public class Console {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    21
	Graph g;
13972
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    22
	String gfname;  
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    23
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    24
  public Console(String name) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    25
    gfname = name;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    26
  }
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    27
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    28
	public void PS(String fname, boolean printable) throws IOException {
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    29
    g.layout(null);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    30
		g.PS(fname,printable);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    31
	}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    32
13972
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    33
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    34
	public void collapseNodes(Vector collapsedDir) { 
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    35
		Enumeration e1=collapsedDir.elements();
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    36
		Graph gra=(Graph)(g.clone());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    37
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    38
		while (e1.hasMoreElements()) {
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    39
			Directory d=(Directory)(e1.nextElement());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    40
			Vector v=gra.decode(d.getCollapsed());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    41
			if (!v.isEmpty())
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    42
				gra.collapse(v,"["+d.getName()+"]",d.getCollapsed());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    43
		}
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    44
    
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    45
    g = gra;
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    46
	}
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    47
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    48
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    49
	public void initBrowser(InputStream is) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    50
		try {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    51
			TreeNode tn = new TreeNode("Root", "", -1, true);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    52
      g = new Graph(is, tn);
13972
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    53
			Vector v = new Vector(10,10);
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    54
			tn.collapsedDirectories(v);      
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    55
      collapseNodes(v);
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    56
		} catch (IOException exn) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    57
			System.err.println("\nI/O error while reading graph file.");
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    58
		} catch (ParseError exn) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    59
			System.err.println("\nParse error in graph file:");
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    60
			System.err.println(exn.getMessage());
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    61
			System.err.println("\nSyntax:\n<vertexname> <vertexID> <dirname> [ + ] <path> "+
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    62
                         "[ < | > ] [ <vertexID> [ ... [ <vertexID> ] ... ] ] ;");
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    63
		}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    64
	}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    65
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    66
	public static void main(String[] args) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    67
		try {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    68
      if (args.length <= 1) {
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    69
        System.err.println("Graph and output file expected.");
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    70
        return;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    71
      }
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    72
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    73
			Console console=new Console(args[0]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    74
      InputStream is=new FileInputStream(args[0]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    75
      console.initBrowser(is);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    76
      is.close();      
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    77
    
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    78
      try {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    79
        if (args[1].endsWith(".ps"))
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    80
          console.PS(args[1], true);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    81
        else if (args[1].endsWith(".eps"))
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    82
          console.PS(args[1], false);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    83
        else
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    84
          System.err.println("Unknown file type: " + args[1]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    85
      } catch (IOException exn) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    86
        System.err.println("Unable to write file " + args[1]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    87
      }
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    88
		} catch (IOException exn) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    89
			System.err.println("Can't open graph file "+args[0]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    90
		}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    91
	}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    92
}