lib/browser/GraphBrowser/TreeBrowser.java
changeset 3599 89cbba12863d
child 6541 d3ac35b2bfbf
equal deleted inserted replaced
3598:28b6670e415a 3599:89cbba12863d
       
     1 /***************************************************************************
       
     2   Title:      GraphBrowser/TreeBrowser.java
       
     3   ID:         $Id$
       
     4   Author:     Stefan Berghofer, TU Muenchen
       
     5   Copyright   1997  TU Muenchen
       
     6 
       
     7   This class defines the browser window which is used to display directory
       
     8   trees. It contains methods for handling events.
       
     9 ***************************************************************************/
       
    10 
       
    11 package GraphBrowser;
       
    12 
       
    13 import java.awt.*;
       
    14 import awtUtilities.ScrollCanvas;
       
    15 import java.util.*;
       
    16 
       
    17 
       
    18 public class TreeBrowser extends ScrollCanvas
       
    19 {
       
    20 	TreeNode t;
       
    21 	TreeNode selected;
       
    22 	GraphView gv;
       
    23 	long timestamp;
       
    24 
       
    25 	public TreeBrowser(TreeNode tn,GraphView gr) {
       
    26 		t=tn;gv=gr;
       
    27 	}
       
    28 
       
    29 	public boolean mouseDown(Event e,int x,int y)
       
    30 	{
       
    31 		TreeNode l=t.lookup(y);
       
    32 
       
    33 		if (l!=null)
       
    34 		{
       
    35 			if (l.select()) {
       
    36 				Vector v=new Vector(10,10);
       
    37 				t.collapsedDirectories(v);
       
    38 				gv.collapseDir(v);
       
    39 				gv.relayout();
       
    40 			} else {
       
    41 				Vertex vx=gv.getGraph().getVertexByNum(l.getNumber());
       
    42 				gv.focusToVertex(l.getNumber());
       
    43 				vx=gv.getOriginalGraph().getVertexByNum(l.getNumber());
       
    44 				if (e.when-timestamp < 400 && !(vx.getPath().equals("")))
       
    45 					gv.getBrowser().viewFile(vx.getPath());
       
    46 				timestamp=e.when;
       
    47 
       
    48 			}
       
    49 			selected=l;repaint();
       
    50 			
       
    51 		}
       
    52 		return true;
       
    53 	}
       
    54 
       
    55 	public void selectNode(TreeNode nd) {
       
    56 		Vector v=new Vector(10,10);
       
    57 		nd.select();
       
    58 		t.collapsedDirectories(v);
       
    59 		gv.collapseDir(v);
       
    60 		gv.relayout();
       
    61 		selected=nd;repaint();
       
    62 	}
       
    63 
       
    64 	public void paintCanvas(Graphics g)
       
    65 	{
       
    66 		Dimension d=t.draw(g,5,5,selected);
       
    67 		set_size(5+d.width,5+d.height);
       
    68 	}
       
    69 }
       
    70