42 |
**/ |
**/ |
43 |
package skrueger.geotools; |
package skrueger.geotools; |
44 |
|
|
|
import java.awt.Canvas; |
|
45 |
import java.awt.Color; |
import java.awt.Color; |
46 |
import java.awt.Dimension; |
import java.awt.Dimension; |
47 |
import java.awt.Graphics2D; |
import java.awt.Graphics2D; |
48 |
import java.awt.RenderingHints; |
import java.awt.RenderingHints; |
49 |
import java.awt.image.BufferedImage; |
import java.awt.image.BufferedImage; |
|
import java.awt.image.ImageObserver; |
|
50 |
|
|
51 |
import javax.swing.tree.DefaultTreeCellRenderer; |
import javax.swing.tree.DefaultTreeCellRenderer; |
52 |
|
|
95 |
* @author Stefan Alfons Krüger |
* @author Stefan Alfons Krüger |
96 |
*/ |
*/ |
97 |
public class LegendIconFeatureRenderer extends DefaultTreeCellRenderer { |
public class LegendIconFeatureRenderer extends DefaultTreeCellRenderer { |
98 |
private static final Dimension SIZE = new Dimension(30,20); |
// private static final Dimension SIZE = new Dimension(30,20); |
99 |
|
|
100 |
Logger LOGGER = Logger.getLogger(LegendIconFeatureRenderer.class); |
Logger LOGGER = Logger.getLogger(LegendIconFeatureRenderer.class); |
101 |
|
|
109 |
|
|
110 |
public static LegendIconFeatureRenderer getInstance() { |
public static LegendIconFeatureRenderer getInstance() { |
111 |
// In GT 2.4.5 it we have to create a new one all the time! |
// In GT 2.4.5 it we have to create a new one all the time! |
112 |
|
|
113 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
114 |
return new LegendIconFeatureRenderer(); |
return new LegendIconFeatureRenderer(); |
115 |
// return instance; |
// return instance; |
116 |
} |
} |
117 |
|
|
|
/** The image produced at <code>produceLegendGraphic</code> */ |
|
|
private BufferedImage legendGraphic; |
|
|
|
|
118 |
/** |
/** |
119 |
* used to create sample point shapes with LiteShape (not lines nor |
* used to create sample point shapes with LiteShape (not lines nor |
120 |
* polygons) |
* polygons) |
121 |
*/ |
*/ |
122 |
private static final GeometryFactory geomFac = new GeometryFactory(); |
private static final GeometryFactory geomFac = FeatureUtil.GEOMETRY_FACTORY; |
123 |
|
|
124 |
/** padding percentage factor at both sides of the legend. */ |
/** padding percentage factor at both sides of the legend. */ |
125 |
private static final float hpaddingFactor = 0.11f; // was 0.15 |
private static final float hpaddingFactor = 0.11f; // was 0.15 |
128 |
private static final float vpaddingFactor = 0.08f; // was 0.15 |
private static final float vpaddingFactor = 0.08f; // was 0.15 |
129 |
|
|
130 |
/** |
/** |
|
* Image observer to help in creating the stack like legend graphic from the |
|
|
* images created for each rule |
|
|
*/ |
|
|
private static final ImageObserver imgObs = new Canvas(); |
|
|
|
|
|
/** |
|
131 |
* Just a holder to avoid creating many polygon shapes from inside |
* Just a holder to avoid creating many polygon shapes from inside |
132 |
* <code>getSampleShape()</code> |
* <code>getSampleShape()</code> |
133 |
*/ |
*/ |