Revision 19440 trunk/libraries/libDataSource/src/org/gvsig/data/datastores/vectorial/driver/DriverStore.java
DriverStore.java | ||
---|---|---|
9 | 9 |
import org.gvsig.data.IDataCollection; |
10 | 10 |
import org.gvsig.data.IDataStoreParameters; |
11 | 11 |
import org.gvsig.data.commands.implementation.AbstractFeatureCommand; |
12 |
import org.gvsig.data.spatialprovisional.IExtent; |
|
12 | 13 |
import org.gvsig.data.vectorial.AbstractFeatureStore; |
13 | 14 |
import org.gvsig.data.vectorial.FeatureStoreNotification; |
14 | 15 |
import org.gvsig.data.vectorial.IFeature; |
15 | 16 |
import org.gvsig.data.vectorial.IFeatureCollection; |
16 | 17 |
import org.gvsig.data.vectorial.IFeatureID; |
17 | 18 |
import org.gvsig.data.vectorial.IFeatureType; |
19 |
import org.gvsig.metadata.IMetadata; |
|
20 |
import org.gvsig.metadata.IMetadataManager; |
|
21 |
import org.gvsig.metadata.Metadata; |
|
22 |
import org.gvsig.metadata.MetadataManager; |
|
18 | 23 |
|
19 | 24 |
/** |
20 | 25 |
* |
... | ... | |
32 | 37 |
|
33 | 38 |
private Rectangle2D fullExtent; |
34 | 39 |
|
35 |
public void init(IDataStoreParameters parameters) {
|
|
40 |
public void init(IDataStoreParameters parameters) {
|
|
36 | 41 |
super.init(parameters); |
37 | 42 |
IDriverStoreParameters driverStoreParameters=(IDriverStoreParameters)parameters; |
38 | 43 |
DataSourceManager dsm = DataSourceManager.getManager(); |
... | ... | |
164 | 169 |
return driver.isEditable(); |
165 | 170 |
} |
166 | 171 |
|
167 |
public Object getFullExtent() { |
|
168 |
//TODO este m?todo est? para poder calcular un extent en m?s de 2 dimensiones si hace falta. |
|
169 |
return getFullExtent2D(); |
|
170 |
} |
|
171 |
|
|
172 |
public Rectangle2D getFullExtent2D() { |
|
173 |
IFeatureCollection featureCollection=(IFeatureCollection)getDataCollection(); |
|
174 |
if (spatialManager.isFullExtentDirty()){ |
|
175 |
if (!featureCollection.isEmpty()){ |
|
176 |
Iterator featureIterator=featureCollection.iterator(); |
|
177 |
fullExtent = ((IFeature)featureIterator.next()).getBoundingBox2D(); |
|
178 |
while(featureIterator.hasNext()){ |
|
179 |
IFeature feature=(IFeature)featureIterator.next(); |
|
180 |
Rectangle2D bound=feature.getBoundingBox2D(); |
|
181 |
if (bound!=null) |
|
182 |
fullExtent.add(bound); |
|
183 |
} |
|
184 |
} else { |
|
185 |
fullExtent = driver.getFullExtent(); |
|
186 |
} |
|
187 |
} |
|
188 |
return fullExtent; |
|
189 |
} |
|
190 |
|
|
191 |
public List getAllSRS() { |
|
192 |
return driver.getAllSRS(); |
|
193 |
} |
|
194 |
|
|
195 |
public String getDefaultSRS() { |
|
196 |
List listProjections=driver.getAllSRS(); |
|
197 |
if (!listProjections.isEmpty()) |
|
198 |
return (String)listProjections.get(0); |
|
199 |
return null; |
|
200 |
} |
|
201 |
|
|
202 |
public boolean isWithDefaultLegend() { |
|
172 |
public boolean isWithDefaultLegend() { |
|
203 | 173 |
return (driver instanceof IDefaultLegend); |
204 | 174 |
} |
205 | 175 |
|
... | ... | |
218 | 188 |
public boolean canAlterFeatureType() { |
219 | 189 |
return driver.canAlterFeatureType(); |
220 | 190 |
} |
191 |
|
|
192 |
public IMetadata getMetadata() { |
|
193 |
IMetadata metadata=driver.getMetadata(); |
|
194 |
if (this.alterMode){ |
|
195 |
IExtent extent=(IExtent)metadata.get("extent"); |
|
196 |
IFeatureCollection featureCollection=(IFeatureCollection)getDataCollection(); |
|
197 |
if (spatialManager.isFullExtentDirty()){ |
|
198 |
if (!featureCollection.isEmpty()){ |
|
199 |
Iterator featureIterator=featureCollection.iterator(); |
|
200 |
extent = ((IFeature)featureIterator.next()).getExtent(); |
|
201 |
while(featureIterator.hasNext()){ |
|
202 |
IFeature feature=(IFeature)featureIterator.next(); |
|
203 |
IExtent boundExtent=feature.getExtent(); |
|
204 |
if (boundExtent!=null) |
|
205 |
extent.add(boundExtent); |
|
206 |
} |
|
207 |
} |
|
208 |
} |
|
209 |
metadata.set("extent",extent); |
|
210 |
} |
|
211 |
return metadata; |
|
212 |
} |
|
221 | 213 |
} |
222 | 214 |
|
Also available in: Unified diff