Revision 772 2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.vector/org.gvsig.view3d.vector.lib/org.gvsig.view3d.vector.lib.impl/src/main/java/org/gvsig/view3d/vector/lib/impl/AbstractRenderableLayer.java
AbstractRenderableLayer.java | ||
---|---|---|
19 | 19 |
import org.gvsig.fmap.dal.feature.FeatureType; |
20 | 20 |
import org.gvsig.fmap.geom.primitive.OrientablePrimitive; |
21 | 21 |
import org.gvsig.fmap.geom.primitive.Point; |
22 |
import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend; |
|
22 | 23 |
import org.gvsig.tools.dispose.DisposableIterator; |
23 | 24 |
import org.gvsig.view3d.vector.lib.api.VectorElevationMode; |
24 | 25 |
import org.gvsig.view3d.vector.lib.api.VectorLoaderParameters; |
... | ... | |
33 | 34 |
private static final Logger LOG = LoggerFactory.getLogger(AbstractRenderableLayer.class); |
34 | 35 |
|
35 | 36 |
protected FeatureStore featureStore; |
37 |
protected IVectorLegend legend; |
|
36 | 38 |
|
37 | 39 |
protected VectorLoaderParameters parameters; |
38 | 40 |
|
39 |
public AbstractRenderableLayer(VectorLoaderParameters parameters, FeatureStore featureStore) { |
|
41 |
public AbstractRenderableLayer(VectorLoaderParameters parameters, FeatureStore featureStore, IVectorLegend legend) {
|
|
40 | 42 |
this.featureStore = featureStore; |
43 |
this.legend = legend; |
|
41 | 44 |
this.parameters = parameters; |
45 |
addRenderableObjects(); |
|
46 |
} |
|
47 |
|
|
48 |
protected void addRenderableObjects() { |
|
42 | 49 |
ExecutorService executor = Executors.newSingleThreadExecutor(); |
43 |
executor.execute(addRenderableObjects()); |
|
44 |
} |
|
45 |
|
|
46 |
protected Runnable addRenderableObjects() { |
|
47 |
|
|
48 |
return new Runnable() { |
|
50 |
executor.execute( new Runnable() { |
|
49 | 51 |
|
50 | 52 |
@Override |
51 | 53 |
public void run() { |
... | ... | |
83 | 85 |
} |
84 | 86 |
} |
85 | 87 |
} |
86 |
}; |
|
88 |
});
|
|
87 | 89 |
} |
88 | 90 |
|
89 | 91 |
protected int getAltitudeMode(VectorElevationMode mode) { |
... | ... | |
138 | 140 |
IProjection destProj = CRSFactory.getCRS("EPSG:4326"); |
139 | 141 |
return origProj.getCT(destProj); |
140 | 142 |
} |
143 |
|
|
144 |
@Override |
|
145 |
public void setExpiryTime(long expiryTime) { |
|
146 |
// If expiry time is greater than last expiry time, reload |
|
147 |
// renderables |
|
148 |
if (expiryTime > this.getExpiryTime()) { |
|
149 |
reloadRenderables(); |
|
150 |
} |
|
151 |
super.setExpiryTime(expiryTime); |
|
152 |
} |
|
141 | 153 |
|
154 |
protected void reloadRenderables() { |
|
155 |
// Clear renderables |
|
156 |
clearRenderables(); |
|
157 |
// Clear render attibutes |
|
158 |
clearRenderAttributes(); |
|
159 |
// Reload renderables |
|
160 |
addRenderableObjects(); |
|
161 |
} |
|
162 |
|
|
163 |
/** |
|
164 |
* |
|
165 |
*/ |
|
166 |
protected abstract void clearRenderAttributes(); |
|
167 |
|
|
168 |
/** |
|
169 |
* |
|
170 |
* @param feature |
|
171 |
* @return |
|
172 |
*/ |
|
142 | 173 |
protected abstract List<Renderable> getRenderables(Feature feature); |
143 | 174 |
} |
Also available in: Unified diff