lib/browser/GraphBrowser/GraphBrowser.java
author berghofe
Wed, 06 Aug 1997 00:06:47 +0200
changeset 3599 89cbba12863d
child 3641 f52a8342e944
permissions -rw-r--r--
Source files for Isabelle theory graph browser. Initial revision.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3599
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     1
/***************************************************************************
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     2
  Title:      GraphBrowser/GraphBrowser.java
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     3
  ID:         $Id$
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     4
  Author:     Stefan Berghofer, TU Muenchen
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     5
  Copyright   1997  TU Muenchen
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     6
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     7
  This is the graph browser's main class. It contains the "main(...)"
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     8
  method, which is used for the stand-alone version, as well as
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     9
  "init(...)", "start(...)" and "stop(...)" methods which are used for
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    10
  the applet version.
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    11
  Note: GraphBrowser is designed for the 1.0.2 version of the JDK.
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    12
***************************************************************************/
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    13
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    14
package GraphBrowser;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    15
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    16
import java.awt.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    17
import java.applet.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    18
import java.io.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    19
import java.util.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    20
import java.net.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    21
import awtUtilities.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    22
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    23
public class GraphBrowser extends Applet {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    24
	GraphView gv;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    25
	TreeBrowser tb=null;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    26
	String gfname;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    27
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    28
	static boolean isApplet;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    29
	static Frame f;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    30
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    31
	public GraphBrowser(String name) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    32
		gfname=name;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    33
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    34
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    35
	public GraphBrowser() {}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    36
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    37
	public void showWaitMessage() {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    38
		if (isApplet)
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    39
			getAppletContext().showStatus("calculating layout, please wait ...");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    40
		else {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    41
			f.setCursor(Frame.WAIT_CURSOR);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    42
		}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    43
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    44
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    45
	public void showReadyMessage() {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    46
		if (isApplet)
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    47
			getAppletContext().showStatus("ready !");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    48
		else {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    49
			f.setCursor(Frame.DEFAULT_CURSOR);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    50
		}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    51
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    52
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    53
	public void viewFile(String fname) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    54
		try {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    55
			if (isApplet)
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    56
				getAppletContext().showDocument(new URL(getDocumentBase(), fname),"_blank");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    57
			else {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    58
				String path=gfname.substring(0,gfname.lastIndexOf('/')+1);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    59
				InputStream is;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    60
				String line, text="";
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    61
				DataInputStream di;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    62
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    63
				is=new FileInputStream(path+fname);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    64
				di=new DataInputStream(is);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    65
				while ((line=di.readLine())!=null)
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    66
					text+=line+"\n";
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    67
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    68
				if (fname.endsWith(".html")) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    69
					/**** convert HTML to text (just a quick hack) ****/
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    70
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    71
					String buf="";
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    72
					char[] text2,text3;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    73
					int i,j=0;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    74
					boolean special=false, html=false;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    75
					char ctrl;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    76
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    77
					text2 = text.toCharArray();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    78
					text3 = new char[text.length()];
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    79
					for (i = 0; i < text.length(); i++) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    80
						char c = text2[i];
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    81
						if (c == '&') {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    82
							special = true;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    83
							buf = "";
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    84
						} else if (special) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    85
							if (c == ';') {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    86
								special = false;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    87
								if (buf.equals("lt"))
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    88
									text3[j++] = '<';
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    89
								else if (buf.equals("gt"))
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    90
									text3[j++] = '>';
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    91
								else if (buf.equals("amp"))
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    92
									text3[j++] = '&';
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    93
							} else
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    94
								buf += c;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    95
						} else if (c == '<') {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    96
							html = true;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    97
							ctrl = text2[i+1];
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    98
							if ((ctrl == 'P') || (ctrl == 'B'))
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    99
								text3[j++] = '\n';		
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   100
						} else if (c == '>')
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   101
							html = false;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   102
						else if (!html)
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   103
							text3[j++] = c;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   104
					}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   105
					text = String.valueOf(text3);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   106
				}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   107
							
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   108
				Frame f=new TextFrame(fname.substring(fname.lastIndexOf('/')+1),text);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   109
				f.resize(500,600);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   110
				f.show();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   111
			}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   112
		} catch (Exception exn) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   113
			System.out.println("Can't read file "+fname);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   114
		}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   115
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   116
				
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   117
	public void PS(String fname,boolean printable) throws IOException {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   118
		gv.PS(fname,printable);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   119
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   120
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   121
	public boolean isEmpty() {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   122
		return tb==null;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   123
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   124
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   125
	public void initBrowser(InputStream is) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   126
		try {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   127
			TreeNode tn=new TreeNode("Directories","",-1,true);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   128
			gv=new GraphView(new Graph(is,tn),this);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   129
			tb=new TreeBrowser(tn,gv);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   130
			gv.setTreeBrowser(tb);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   131
			Vector v=new Vector(10,10);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   132
			tn.collapsedDirectories(v);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   133
			gv.collapseDir(v);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   134
			Component gv2=new Border(gv,5);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   135
			Component tb2=new Border(tb,5);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   136
			GridBagLayout gridbag = new GridBagLayout();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   137
			GridBagConstraints cnstr = new GridBagConstraints();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   138
			setLayout(gridbag);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   139
			cnstr.fill = GridBagConstraints.BOTH;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   140
			cnstr.insets = new Insets(5,5,5,5);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   141
			cnstr.weightx = 1;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   142
			cnstr.weighty = 1;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   143
			cnstr.gridwidth = 1;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   144
			gridbag.setConstraints(tb2,cnstr);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   145
			add(tb2);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   146
			cnstr.weightx = 2.5;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   147
			cnstr.gridwidth = GridBagConstraints.REMAINDER;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   148
			gridbag.setConstraints(gv2,cnstr);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   149
			add(gv2);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   150
		} catch (IOException exn) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   151
			System.out.println("\nI/O error while reading graph file.");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   152
		} catch (ParseError exn) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   153
			System.out.println("\nParse error in graph file:");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   154
			System.out.println(exn.getMessage());
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   155
			System.out.println("\nSyntax:\n<vertexname> <dirname> [ + ] <path> [ < | > ] [ <vertexname> [ ... [ <vertexname> ] ... ] ] ;");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   156
		}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   157
	}		
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   158
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   159
	public void init() {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   160
		isApplet=true;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   161
		gfname=getParameter("graphfile");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   162
		try {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   163
			InputStream is=(new URL(getDocumentBase(), gfname)).openConnection().getInputStream();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   164
			initBrowser(is);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   165
			is.close();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   166
		} catch (MalformedURLException exn) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   167
			System.out.println("Invalid URL: "+gfname);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   168
		} catch (IOException exn) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   169
			System.out.println("I/O error while reading "+gfname+".");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   170
		}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   171
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   172
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   173
	public static void main(String[] args) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   174
		isApplet=false;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   175
		try {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   176
			GraphBrowser gb=new GraphBrowser(args.length > 0 ? args[0] : "");
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   177
			if (args.length>0) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   178
				InputStream is=new FileInputStream(args[0]);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   179
				gb.initBrowser(is);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   180
				is.close();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   181
			}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   182
			f=new GraphBrowserFrame(gb);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   183
			f.resize(700,500);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   184
			f.show();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   185
		} catch (IOException exn) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   186
			System.out.println("Can't open graph file "+args[0]);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   187
		}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   188
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   189
}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
   190