Coverage Report - edu.uci.ics.jung.visualization.jai.PerspectiveImageLensSupport
 
Classes in this File Line Coverage Branch Coverage Complexity
PerspectiveImageLensSupport
0%
0/28
N/A
1
 
 1  
 /*
 2  
  * Copyright (c) 2005, the JUNG Project and the Regents of the University of
 3  
  * California All rights reserved.
 4  
  *
 5  
  * This software is open-source under the BSD license; see either "license.txt"
 6  
  * or http://jung.sourceforge.net/license.txt for a description.
 7  
  *
 8  
  * Created on Jul 21, 2005
 9  
  */
 10  
 
 11  
 package edu.uci.ics.jung.visualization.jai;
 12  
 
 13  
 import javax.media.jai.PerspectiveTransform;
 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.RenderContext;
 18  
 import edu.uci.ics.jung.visualization.VisualizationViewer;
 19  
 import edu.uci.ics.jung.visualization.picking.ViewLensShapePickSupport;
 20  
 import edu.uci.ics.jung.visualization.renderers.BasicRenderer;
 21  
 import edu.uci.ics.jung.visualization.renderers.Renderer;
 22  
 import edu.uci.ics.jung.visualization.transform.shape.GraphicsDecorator;
 23  
 import edu.uci.ics.jung.visualization.transform.shape.TransformingGraphics;
 24  
 /**
 25  
  * A class to make it easy to add a Perspective projection
 26  
  * to a jung graph application. See PerspectiveTransformerDemo
 27  
  * for an example of how to use it.
 28  
  * 
 29  
  * @author Tom Nelson
 30  
  */
 31  
 public class PerspectiveImageLensSupport<V,E> extends AbstractPerspectiveTransformSupport<V,E> {
 32  
     
 33  
     protected RenderContext<V,E> renderContext;
 34  
     protected GraphicsDecorator lensGraphicsDecorator;
 35  
     protected GraphicsDecorator savedGraphicsDecorator;
 36  
     protected Renderer<V,E> renderer;
 37  
     protected Renderer<V,E> transformingRenderer;
 38  
         protected GraphElementAccessor<V,E> pickSupport;
 39  
     
 40  
     static final String instructions = "";
 41  
     
 42  
     /**
 43  
      * @param vv the VisualizationViewer to work on
 44  
      */
 45  
     public PerspectiveImageLensSupport(VisualizationViewer<V,E> vv) {
 46  0
         super(vv);
 47  0
         this.renderContext = vv.getRenderContext();
 48  0
         this.pickSupport = renderContext.getPickSupport();
 49  0
         this.renderer = vv.getRenderer();
 50  0
         this.transformingRenderer = new BasicRenderer<V,E>();
 51  0
         this.perspectiveTransformer = 
 52  
             new PerspectiveShapeTransformer(new PerspectiveTransform(), vv.getRenderContext().getMultiLayerTransformer().getTransformer(Layer.VIEW));
 53  0
         this.transformingRenderer.setVertexRenderer(new TransformingImageVertexIconRenderer<V,E>());
 54  0
         this.lensGraphicsDecorator = new TransformingGraphics(perspectiveTransformer);
 55  0
         this.savedGraphicsDecorator = renderContext.getGraphicsContext();
 56  
 
 57  0
         this.renderer = vv.getRenderer();
 58  0
     }
 59  
     
 60  
     public void activate() {
 61  0
         lens = new Lens(perspectiveTransformer, vv.getSize());
 62  0
         renderContext.setPickSupport(new ViewLensShapePickSupport<V,E>(vv));
 63  0
         vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.VIEW, perspectiveTransformer);
 64  0
         vv.getRenderContext().setGraphicsContext(lensGraphicsDecorator);
 65  0
         vv.setRenderer(transformingRenderer);
 66  0
         vv.addPreRenderPaintable(lens);
 67  0
         vv.setToolTipText(instructions);
 68  0
         vv.repaint();
 69  0
     }
 70  
     
 71  
     public void deactivate() {
 72  0
             renderContext.setPickSupport(pickSupport);
 73  0
         vv.getRenderContext().getMultiLayerTransformer().setTransformer(Layer.VIEW, perspectiveTransformer.getDelegate());
 74  0
         vv.removePreRenderPaintable(lens);
 75  0
         vv.getRenderContext().setGraphicsContext(savedGraphicsDecorator);
 76  0
         vv.setRenderer(renderer);
 77  0
         vv.setToolTipText(defaultToolTipText);
 78  0
         vv.repaint();
 79  0
     }
 80  
 }