lib/browser/GraphBrowser/Console.java
author haftmann
Sun, 16 Oct 2016 09:31:04 +0200
changeset 64240 eabf80376aab
parent 50473 ca4088bf8365
permissions -rw-r--r--
more standardized names
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
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
     3
  Author:     Gerwin Klein, TU Muenchen
50473
ca4088bf8365 added speculative options for jEdit;
wenzelm
parents: 33686
diff changeset
     4
  Options:    :tabSize=2:
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     5
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     6
  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
     7
  It duplicates some logic from GraphBrowser and GraphView.
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
     8
  It does so to remove dependency on AWT.
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
     9
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
package GraphBrowser;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    13
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    14
import java.io.*;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    15
import java.util.*;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    16
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    17
public class Console {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    18
	Graph g;
13972
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    19
	String gfname;  
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    20
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    21
  public Console(String name) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    22
    gfname = name;
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
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    25
	public void PS(String fname, boolean printable) throws IOException {
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    26
    g.layout(null);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    27
		g.PS(fname,printable);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    28
	}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    29
13972
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    30
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    31
	public void collapseNodes(Vector collapsedDir) { 
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    32
		Enumeration e1=collapsedDir.elements();
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    33
		Graph gra=(Graph)(g.clone());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    34
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    35
		while (e1.hasMoreElements()) {
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    36
			Directory d=(Directory)(e1.nextElement());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    37
			Vector v=gra.decode(d.getCollapsed());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    38
			if (!v.isEmpty())
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    39
				gra.collapse(v,"["+d.getName()+"]",d.getCollapsed());
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    40
		}
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    41
    
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    42
    g = gra;
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
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    46
	public void initBrowser(InputStream is) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    47
		try {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    48
			TreeNode tn = new TreeNode("Root", "", -1, true);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    49
      g = new Graph(is, tn);
13972
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    50
			Vector v = new Vector(10,10);
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    51
			tn.collapsedDirectories(v);      
fac2aa7618ed fixed uncollapsed dirs (should be collapsed by default)
kleing
parents: 13970
diff changeset
    52
      collapseNodes(v);
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    53
		} catch (IOException exn) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    54
			System.err.println("\nI/O error while reading graph file.");
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    55
		} catch (ParseError exn) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    56
			System.err.println("\nParse error in graph file:");
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    57
			System.err.println(exn.getMessage());
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    58
			System.err.println("\nSyntax:\n<vertexname> <vertexID> <dirname> [ + ] <path> "+
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    59
                         "[ < | > ] [ <vertexID> [ ... [ <vertexID> ] ... ] ] ;");
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    60
		}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    61
	}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    62
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    63
	public static void main(String[] args) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    64
		try {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    65
      if (args.length <= 1) {
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    66
        System.err.println("Graph and output file expected.");
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    67
        return;
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    68
      }
13970
4aef7117817b cleanup, comments
kleing
parents: 13968
diff changeset
    69
13968
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    70
			Console console=new Console(args[0]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    71
      InputStream is=new FileInputStream(args[0]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    72
      console.initBrowser(is);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    73
      is.close();      
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    74
    
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    75
      try {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    76
        if (args[1].endsWith(".ps"))
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    77
          console.PS(args[1], true);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    78
        else if (args[1].endsWith(".eps"))
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    79
          console.PS(args[1], false);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    80
        else
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    81
          System.err.println("Unknown file type: " + args[1]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    82
      } catch (IOException exn) {
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    83
        System.err.println("Unable to write file " + args[1]);
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    84
      }
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("Can't open graph file "+args[0]);
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
	}
689868b99bde eliminated dependencies on AWT for batch mode
kleing
parents:
diff changeset
    89
}