# Coverage details for edu.uci.ics.jung.graph.decorators.GradientEdgePaintFunction

Line | Hits | Source
--- | --- | ---
1 |  | `/*`
2 |  | `* Created on Apr 8, 2005`
3 |  | `*`
4 |  | `* Copyright (c) 2004, the JUNG Project and the Regents of the University`
5 |  | `* of California`
6 |  | `* All rights reserved.`
7 |  | `*`
8 |  | `* This software is open-source under the BSD license; see either`
9 |  | `* "license.txt" or`
10 |  | `* http://jung.sourceforge.net/license.txt for a description.`
11 |  | `*/`
12 |  | `package edu.uci.ics.jung.graph.decorators;`
13 |  | ``
14 |  | `import java.awt.Color;`
15 |  | `import java.awt.GradientPaint;`
16 |  | `import java.awt.Paint;`
17 |  | `import java.awt.geom.Point2D;`
18 |  | ``
19 |  | `import edu.uci.ics.jung.graph.Edge;`
20 |  | `import edu.uci.ics.jung.graph.UndirectedEdge;`
21 |  | `import edu.uci.ics.jung.graph.Vertex;`
22 |  | `import edu.uci.ics.jung.utils.Pair;`
23 |  | `import edu.uci.ics.jung.visualization.HasGraphLayout;`
24 |  | `import edu.uci.ics.jung.visualization.Layout;`
25 |  | `import edu.uci.ics.jung.visualization.transform.LayoutTransformer;`
26 |  | ``
27 |  | `/**`
28 |  | `* Creates <code>GradientPaint</code> instances which can be used`
29 |  | `* to paint an <code>Edge</code>. For <code>DirectedEdge</code>s,`
30 |  | `* the color will blend from <code>c1</code> (source) to`
31 |  | `* <code>c2</code> (destination); for <code>UndirectedEdge</code>s,`
32 |  | `* the color will be <code>c1</code> at each end and <code>c2</code>`
33 |  | `* in the middle.`
34 |  | `*`
35 |  | `* @author Joshua O'Madadhain`
36 |  | `*/`
37 |  | `public class GradientEdgePaintFunction extends AbstractEdgePaintFunction`
38 |  | `{`
39 |  | `protected Color c1;`
40 |  | `protected Color c2;`
41 |  | `HasGraphLayout vv;`
42 |  | `LayoutTransformer transformer;`
43 |  | ``
44 |  | `public GradientEdgePaintFunction(Color c1, Color c2,`
45 |  | `HasGraphLayout vv, LayoutTransformer transformer)`
46 | 0 | `{`
47 | 0 | `this.c1 = c1;`
48 | 0 | `this.c2 = c2;`
49 | 0 | `this.vv = vv;`
50 | 0 | `this.transformer = transformer;`
51 | 0 | `}`
52 |  | ``
53 |  | `public Paint getDrawPaint(Edge e)`
54 |  | `{`
55 | 0 | `Layout layout = vv.getGraphLayout();`
56 | 0 | `Pair p = e.getEndpoints();`
57 | 0 | `Vertex b = (Vertex)p.getFirst();`
58 | 0 | `Vertex f = (Vertex)p.getSecond();`
59 | 0 | `Point2D pb = transformer.layoutTransform(layout.getLocation(b));`
60 | 0 | `Point2D pf = transformer.layoutTransform(layout.getLocation(f));`
61 | 0 | `float xB = (float) pb.getX();`
62 | 0 | `float yB = (float) pb.getY();`
63 | 0 | `float xF = (float) pf.getX();`
64 | 0 | `float yF = (float) pf.getY();`
65 | 0 | `if (e instanceof UndirectedEdge )`
66 |  | `{`
67 | 0 | `xF = (xF + xB) / 2;`
68 | 0 | `yF = (yF + yB) / 2;`
69 |  | `}`
70 | 0 | `if(xB == xF && yB == yF)`
71 |  | `{`
72 |  | `// hack so loop edges don't 'vanish'`
73 | 0 | `xB -= 10;`
74 | 0 | `yB -= 10;`
75 | 0 | `xF += 10;`
76 | 0 | `yF += 10;`
77 |  | `}`
78 |  | ``
79 | 0 | `return new GradientPaint(xB, yB, getColor1(e), xF, yF, getColor2(e), true);`
80 |  | `}`
81 |  | ``
82 |  | `/**`
83 |  | `* Returns <code>c1</code>. Subclasses may override`
84 |  | `* this method to enable more complex behavior (e.g., for`
85 |  | `* picked edges).`
86 |  | `*/`
87 |  | `protected Color getColor1(Edge e)`
88 |  | `{`
89 | 0 | `return c1;`
90 |  | `}`
91 |  | ``
92 |  | `/**`
93 |  | `* Returns <code>c2</code>. Subclasses may override`
94 |  | `* this method to enable more complex behavior (e.g., for`
95 |  | `* picked edges).`
96 |  | `*/`
97 |  | `protected Color getColor2(Edge e)`
98 |  | `{`
99 | 0 | `return c2;`
100 |  | `}`
101 |  | `}`

this report was generated by version 1.0.5 of jcoverage. visit www.jcoverage.com for updates. | copyright © 2003, jcoverage ltd. all rights reserved. Java is a trademark of Sun Microsystems, Inc. in the United States and other countries.