lib/browser/GraphBrowser/TreeBrowser.java
author paulson
Wed, 25 Nov 1998 15:54:41 +0100
changeset 5971 c5a7a7685826
parent 3599 89cbba12863d
child 6541 d3ac35b2bfbf
permissions -rw-r--r--
simplified ensures_UNIV
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/TreeBrowser.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 class defines the browser window which is used to display directory
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     8
  trees. It contains methods for handling events.
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
     9
***************************************************************************/
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    10
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    11
package GraphBrowser;
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
import java.awt.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    14
import awtUtilities.ScrollCanvas;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    15
import java.util.*;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    16
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    17
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    18
public class TreeBrowser extends ScrollCanvas
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    19
{
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    20
	TreeNode t;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    21
	TreeNode selected;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    22
	GraphView gv;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    23
	long timestamp;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    24
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    25
	public TreeBrowser(TreeNode tn,GraphView gr) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    26
		t=tn;gv=gr;
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
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    29
	public boolean mouseDown(Event e,int x,int y)
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
		TreeNode l=t.lookup(y);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    32
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    33
		if (l!=null)
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
			if (l.select()) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    36
				Vector v=new Vector(10,10);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    37
				t.collapsedDirectories(v);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    38
				gv.collapseDir(v);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    39
				gv.relayout();
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
				Vertex vx=gv.getGraph().getVertexByNum(l.getNumber());
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    42
				gv.focusToVertex(l.getNumber());
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    43
				vx=gv.getOriginalGraph().getVertexByNum(l.getNumber());
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    44
				if (e.when-timestamp < 400 && !(vx.getPath().equals("")))
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    45
					gv.getBrowser().viewFile(vx.getPath());
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    46
				timestamp=e.when;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    47
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    48
			}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    49
			selected=l;repaint();
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
		return true;
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    53
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    54
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    55
	public void selectNode(TreeNode nd) {
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    56
		Vector v=new Vector(10,10);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    57
		nd.select();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    58
		t.collapsedDirectories(v);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    59
		gv.collapseDir(v);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    60
		gv.relayout();
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    61
		selected=nd;repaint();
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
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    64
	public void paintCanvas(Graphics g)
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    65
	{
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    66
		Dimension d=t.draw(g,5,5,selected);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    67
		set_size(5+d.width,5+d.height);
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    68
	}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    69
}
89cbba12863d Source files for Isabelle theory graph browser.
berghofe
parents:
diff changeset
    70