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 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
115 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
116 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
117 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
118 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
119 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
120 |
|
// TODO TEST, whether we still need to recreate the renderer here.... |
121 |
return new LegendIconFeatureRenderer(); |
return new LegendIconFeatureRenderer(); |
122 |
// return instance; |
// return instance; |
123 |
} |
} |
124 |
|
|
|
/** The image produced at <code>produceLegendGraphic</code> */ |
|
|
private BufferedImage legendGraphic; |
|
|
|
|
125 |
/** |
/** |
126 |
* used to create sample point shapes with LiteShape (not lines nor |
* used to create sample point shapes with LiteShape (not lines nor |
127 |
* polygons) |
* polygons) |
128 |
*/ |
*/ |
129 |
private static final GeometryFactory geomFac = new GeometryFactory(); |
private static final GeometryFactory geomFac = FeatureUtil.GEOMETRY_FACTORY; |
130 |
|
|
131 |
/** padding percentage factor at both sides of the legend. */ |
/** padding percentage factor at both sides of the legend. */ |
132 |
private static final float hpaddingFactor = 0.11f; // was 0.15 |
private static final float hpaddingFactor = 0.11f; // was 0.15 |
135 |
private static final float vpaddingFactor = 0.08f; // was 0.15 |
private static final float vpaddingFactor = 0.08f; // was 0.15 |
136 |
|
|
137 |
/** |
/** |
|
* 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(); |
|
|
|
|
|
/** |
|
138 |
* Just a holder to avoid creating many polygon shapes from inside |
* Just a holder to avoid creating many polygon shapes from inside |
139 |
* <code>getSampleShape()</code> |
* <code>getSampleShape()</code> |
140 |
*/ |
*/ |
478 |
|
|
479 |
// TODO scaleDenominator = 100000000000000000000000000000d; Was ist das |
// TODO scaleDenominator = 100000000000000000000000000000d; Was ist das |
480 |
// fuer ein Quatsch? |
// fuer ein Quatsch? |
481 |
final double scaleDenominator = 100000000000000000000000000000d; |
final NumberRange<Integer> scaleRange = NumberRange.create(Integer.MAX_VALUE,Integer.MAX_VALUE); |
|
final NumberRange scaleRange = new NumberRange(scaleDenominator, |
|
|
scaleDenominator); |
|
482 |
|
|
483 |
try { |
try { |
484 |
|
|
509 |
|
|
510 |
if (style2d != null) { |
if (style2d != null) { |
511 |
new StyledShapePainter(null).paint(graphics, shape, |
new StyledShapePainter(null).paint(graphics, shape, |
512 |
style2d, scaleDenominator); |
style2d, Integer.MAX_VALUE ); |
513 |
} |
} |
514 |
} |
} |
515 |
} catch (Exception e) { |
} catch (Exception e) { |