01: /*
02: * Geotools2 - OpenSource mapping toolkit
03: * http://geotools.org
04: * (C) 2002, Geotools Project Managment Committee (PMC)
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation;
09: * version 2.1 of the License.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: */
17: package org.geotools.renderer.shape;
18:
19: import java.awt.Graphics2D;
20: import java.awt.Rectangle;
21: import java.util.List;
22:
23: import javax.media.jai.util.Range;
24:
25: import org.geotools.feature.Feature;
26: import org.geotools.geometry.jts.LiteShape2;
27: import org.geotools.renderer.lite.LabelCache;
28: import org.geotools.styling.TextSymbolizer;
29:
30: /**
31: * Wrapper around another {@link LabelCache} that disables the following methods:
32: * <ul>
33: * <li> {@link LabelCache#start()}</li>
34: * <li> {@link LabelCache#stop()}</li>
35: * <li> {@link LabelCache#clear()}</li>
36: * <li> {@link LabelCache#end()}</li>
37: * </ul>
38: * This class can be used to share a label cache with another renderer and making sure
39: * the other renderer cannot wipe out the cache contents or trigger the actual labelling start,
40: * allowing a "top" renderer to control the labelling lifecycle.
41: * @author Andrea Aime - TOPP
42: *
43: */
44: class IntegratingLabelCache implements LabelCache {
45:
46: LabelCache wrapped;
47:
48: public IntegratingLabelCache(LabelCache wrapped) {
49: this .wrapped = wrapped;
50: }
51:
52: public void clear() {
53: //
54: }
55:
56: public void clear(String layerId) {
57: wrapped.clear(layerId);
58: }
59:
60: public void disableLayer(String layerId) {
61: wrapped.disableLayer(layerId);
62: }
63:
64: public void enableLayer(String layerId) {
65: wrapped.enableLayer(layerId);
66: }
67:
68: public void end(Graphics2D graphics, Rectangle displayArea) {
69: //
70: }
71:
72: public void endLayer(String layerId, Graphics2D graphics,
73: Rectangle displayArea) {
74: wrapped.endLayer(layerId, graphics, displayArea);
75: }
76:
77: public List orderedLabels() {
78: return wrapped.orderedLabels();
79: }
80:
81: public void put(String layerId, TextSymbolizer symbolizer,
82: Feature feature, LiteShape2 shape, Range scaleRange) {
83: wrapped.put(layerId, symbolizer, feature, shape, scaleRange);
84: }
85:
86: public void start() {
87: //
88: }
89:
90: public void startLayer(String layerId) {
91: wrapped.startLayer(layerId);
92: }
93:
94: public void stop() {
95: //
96: }
97:
98: }
|