1
2
3
4
5
6
7
8
9
10
11 package edu.uci.ics.jung.visualization.transform;
12
13 import java.awt.Dimension;
14
15 import edu.uci.ics.jung.algorithms.layout.GraphElementAccessor;
16 import edu.uci.ics.jung.visualization.Layer;
17 import edu.uci.ics.jung.visualization.VisualizationViewer;
18 import edu.uci.ics.jung.visualization.control.ModalGraphMouse;
19 import edu.uci.ics.jung.visualization.control.ModalLensGraphMouse;
20 import edu.uci.ics.jung.visualization.picking.LayoutLensShapePickSupport;
21
22
23
24
25
26
27
28
29
30 public class LayoutLensSupport<V,E> extends AbstractLensSupport<V,E>
31 implements LensSupport {
32
33 protected GraphElementAccessor<V,E> pickSupport;
34
35 public LayoutLensSupport(VisualizationViewer<V,E> vv) {
36 this(vv, new HyperbolicTransformer(
37 vv, vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.LAYOUT)),
38 new ModalLensGraphMouse());
39 }
40
41
42
43
44
45
46
47
48 public LayoutLensSupport(VisualizationViewer<V,E> vv, LensTransformer lensTransformer,
49 ModalGraphMouse lensGraphMouse) {
50 super(vv, lensGraphMouse);
51 this.lensTransformer = lensTransformer;
52 this.pickSupport = vv.getPickSupport();
53
54 Dimension d = vv.getSize();
55 if(d.width <= 0 || d.height <= 0) {
56 d = vv.getPreferredSize();
57 }
58 lensTransformer.setViewRadius(d.width/5);
59 }
60
61 public void activate() {
62 if(lens == null) {
63 lens = new Lens(lensTransformer);
64 }
65 if(lensControls == null) {
66 lensControls = new LensControls(lensTransformer);
67 }
68 vv.getRenderContext().setPickSupport(new LayoutLensShapePickSupport<V,E>(vv));
69 vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.LAYOUT, lensTransformer);
70 vv.prependPreRenderPaintable(lens);
71 vv.addPostRenderPaintable(lensControls);
72 vv.setGraphMouse(lensGraphMouse);
73 vv.setToolTipText(instructions);
74 vv.repaint();
75 }
76
77 public void deactivate() {
78 if(lensTransformer != null) {
79 vv.removePreRenderPaintable(lens);
80 vv.removePostRenderPaintable(lensControls);
81 vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.LAYOUT, lensTransformer.getDelegate());
82 }
83 vv.getRenderContext().setPickSupport(pickSupport);
84 vv.setToolTipText(defaultToolTipText);
85 vv.setGraphMouse(graphMouse);
86 vv.repaint();
87 }
88 }