Revision 2616 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.stretch/src/main/java/org/gvsig/vectorediting/lib/prov/stretch/StretchEditingProvider.java
StretchEditingProvider.java | ||
---|---|---|
9 | 9 |
import java.util.Iterator; |
10 | 10 |
import java.util.List; |
11 | 11 |
import java.util.Map; |
12 |
|
|
13 |
import org.slf4j.Logger; |
|
14 |
import org.slf4j.LoggerFactory; |
|
15 |
|
|
16 | 12 |
import org.gvsig.fmap.dal.exception.DataException; |
17 | 13 |
import org.gvsig.fmap.dal.feature.EditableFeature; |
18 | 14 |
import org.gvsig.fmap.dal.feature.Feature; |
... | ... | |
37 | 33 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
38 | 34 |
import org.gvsig.tools.ToolsLocator; |
39 | 35 |
import org.gvsig.tools.dispose.DisposableIterator; |
36 |
import org.gvsig.tools.dispose.DisposeUtils; |
|
40 | 37 |
import org.gvsig.tools.dynobject.DynObject; |
41 | 38 |
import org.gvsig.tools.exception.BaseException; |
42 | 39 |
import org.gvsig.tools.i18n.I18nManager; |
... | ... | |
58 | 55 |
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator; |
59 | 56 |
import org.gvsig.vectorediting.lib.spi.EditingProviderManager; |
60 | 57 |
import org.gvsig.vectorediting.lib.spi.EditingProviderServices; |
58 |
import org.slf4j.Logger; |
|
59 |
import org.slf4j.LoggerFactory; |
|
61 | 60 |
|
62 | 61 |
public class StretchEditingProvider extends AbstractEditingProvider implements |
63 | 62 |
EditingProvider { |
64 | 63 |
|
65 |
private static Logger logger = LoggerFactory.getLogger(StretchEditingProvider.class);
|
|
64 |
private static final Logger LOGGER = LoggerFactory.getLogger(StretchEditingProvider.class);
|
|
66 | 65 |
|
67 |
private I18nManager i18nManager = ToolsLocator.getI18nManager();
|
|
66 |
private final EditingServiceParameter selectionParameter;
|
|
68 | 67 |
|
69 |
private EditingServiceParameter selectionParameter;
|
|
68 |
private final EditingServiceParameter geometryParameter;
|
|
70 | 69 |
|
71 |
private EditingServiceParameter geometryParameter;
|
|
70 |
private final EditingServiceParameter firstPointParameter;
|
|
72 | 71 |
|
73 |
private EditingServiceParameter firstPointParameter;
|
|
72 |
private final EditingServiceParameter secondPointParameter;
|
|
74 | 73 |
|
75 |
private EditingServiceParameter secondPointParameter; |
|
76 |
|
|
77 | 74 |
private Map<EditingServiceParameter, Object> values; |
78 | 75 |
|
79 |
private FeatureStore featureStore; |
|
76 |
private final FeatureStore featureStore;
|
|
80 | 77 |
|
81 | 78 |
public StretchEditingProvider(ProviderServices providerServices, |
82 | 79 |
DynObject parameters) { |
... | ... | |
84 | 81 |
this.featureStore = |
85 | 82 |
(FeatureStore) parameters |
86 | 83 |
.getDynValue(EditingProviderFactory.FEATURE_STORE_FIELD); |
84 |
|
|
85 |
I18nManager i18nManager = ToolsLocator.getI18nManager(); |
|
87 | 86 |
|
88 | 87 |
this.selectionParameter = |
89 | 88 |
new DefaultEditingServiceParameter("selection", |
... | ... | |
103 | 102 |
|
104 | 103 |
} |
105 | 104 |
|
105 |
@Override |
|
106 | 106 |
public List<EditingServiceParameter> getParameters() { |
107 | 107 |
List<EditingServiceParameter> list = |
108 |
new ArrayList<EditingServiceParameter>();
|
|
108 |
new ArrayList<>(); |
|
109 | 109 |
list.add(selectionParameter); |
110 | 110 |
list.add(geometryParameter); |
111 | 111 |
list.add(firstPointParameter); |
... | ... | |
118 | 118 |
if (param == selectionParameter) { |
119 | 119 |
if (value instanceof FeatureSelection) { |
120 | 120 |
values.put(param, value); |
121 |
return; |
|
122 | 121 |
} |
123 | 122 |
} else if (param == firstPointParameter) { |
124 | 123 |
if (value instanceof Point) { |
125 | 124 |
values.put(param, value); |
126 |
return; |
|
127 | 125 |
} |
128 | 126 |
} else if (param == secondPointParameter) { |
129 | 127 |
if (value instanceof Point) { |
130 | 128 |
values.put(param, value); |
131 |
return; |
|
132 | 129 |
} |
133 | 130 |
} else if (param == geometryParameter) { |
134 | 131 |
if (value instanceof Geometry) { |
... | ... | |
156 | 153 |
} catch (BaseException e) { |
157 | 154 |
throw new InvalidEntryException(e); |
158 | 155 |
} finally { |
159 |
it.dispose();
|
|
156 |
DisposeUtils.disposeQuietly(it);
|
|
160 | 157 |
} |
161 | 158 |
} |
162 | 159 |
} |
163 | 160 |
} |
164 | 161 |
|
162 |
@Override |
|
165 | 163 |
public EditingServiceParameter next() { |
166 | 164 |
if (values.get(selectionParameter) == null) { |
167 | 165 |
return this.selectionParameter; |
... | ... | |
195 | 193 |
} else if(element instanceof Primitive){ |
196 | 194 |
newAggregate.addPrimitive((Primitive)element); |
197 | 195 |
} else { |
198 |
logger.warn("StretchOperation has returned a not-supported geometry type. "+operation.toString()+" "+element.getClass().getName());
|
|
196 |
LOGGER.warn("StretchOperation has returned a not-supported geometry type. "+operation.toString()+" "+element.getClass().getName());
|
|
199 | 197 |
} |
200 | 198 |
} else { |
201 | 199 |
newAggregate.addPrimitive(primitive); |
... | ... | |
215 | 213 |
public static List<Point> getSelectedVertex(Geometry geometry, |
216 | 214 |
Geometry roi) throws CreateGeometryException, |
217 | 215 |
GeometryOperationNotSupportedException, GeometryOperationException { |
218 |
List<Point> selectedVertex = new ArrayList<Point>();
|
|
216 |
List<Point> selectedVertex = new ArrayList<>(); |
|
219 | 217 |
if (geometry instanceof MultiPrimitive) { |
220 | 218 |
MultiPrimitive aggregate = (MultiPrimitive)geometry; |
221 | 219 |
for (int i = 0; i < aggregate.getPrimitivesNumber(); i++) { |
... | ... | |
236 | 234 |
} |
237 | 235 |
|
238 | 236 |
|
237 |
@Override |
|
239 | 238 |
public DrawingStatus getDrawingStatus(Point mousePosition) |
240 | 239 |
throws DrawServiceException { |
241 | 240 |
DefaultDrawingStatus drawingStatus = new DefaultDrawingStatus(); |
... | ... | |
253 | 252 |
Geometry geometry = (Geometry) values.get(this.geometryParameter); |
254 | 253 |
if (geometry != null) { |
255 | 254 |
// |
256 |
List<Point> selectedVertex = new ArrayList<Point>();
|
|
255 |
List<Point> selectedVertex = new ArrayList<>(); |
|
257 | 256 |
DisposableIterator it = null; |
258 | 257 |
|
259 | 258 |
try { |
... | ... | |
270 | 269 |
} catch (BaseException e) { |
271 | 270 |
throw new InvalidEntryException(e); |
272 | 271 |
} finally { |
273 |
it.dispose();
|
|
272 |
DisposeUtils.disposeQuietly(it);
|
|
274 | 273 |
} |
275 | 274 |
|
276 | 275 |
if(!selectedVertex.isEmpty()){ |
277 |
for (Iterator<Point> iterator = selectedVertex.iterator(); iterator.hasNext();) { |
|
278 |
Point point = (Point) iterator.next(); |
|
276 |
for (Point point : selectedVertex) { |
|
279 | 277 |
drawingStatus.addStatus(point, selectedVertexEditingSymbol, ""); |
280 | 278 |
} |
281 | 279 |
} |
... | ... | |
298 | 296 |
|
299 | 297 |
while (it.hasNext()) { |
300 | 298 |
Feature feature = (Feature) it.next(); |
299 |
|
|
300 |
ISymbol previewSymbol = this.getPreviewSymbol(feature); |
|
301 |
|
|
301 | 302 |
Geometry featureGeometry = feature.getDefaultGeometry(); |
302 | 303 |
Geometry transformedGeometry = applyTransform(featureGeometry, at, geometry); |
303 | 304 |
ISymbol symbol=null; |
... | ... | |
312 | 313 |
int primitivesNumber = ((Aggregate)transformedGeometry).getPrimitivesNumber(); |
313 | 314 |
for (int i = 0; i < primitivesNumber; i++) { |
314 | 315 |
drawingStatus.addStatus(((Aggregate)transformedGeometry).getPrimitiveAt(i), symbol, ""); |
316 |
drawingStatus.addStatus(((Aggregate)transformedGeometry).getPrimitiveAt(i), previewSymbol, ""); |
|
315 | 317 |
} |
316 | 318 |
} else { |
317 | 319 |
drawingStatus.addStatus(transformedGeometry, symbol, ""); |
320 |
drawingStatus.addStatus(transformedGeometry, previewSymbol, ""); |
|
318 | 321 |
} |
319 | 322 |
} |
320 | 323 |
} catch (BaseException e) { |
321 | 324 |
throw new InvalidEntryException(e); |
322 | 325 |
} finally { |
323 |
it.dispose();
|
|
326 |
DisposeUtils.disposeQuietly(it);
|
|
324 | 327 |
} |
325 | 328 |
} |
326 | 329 |
} |
... | ... | |
341 | 344 |
return translate; |
342 | 345 |
} |
343 | 346 |
|
347 |
@Override |
|
344 | 348 |
public void stop() { |
345 | 349 |
values.clear(); |
346 | 350 |
} |
... | ... | |
352 | 356 |
validateAndInsertValue(parameter, value); |
353 | 357 |
} |
354 | 358 |
|
359 |
@Override |
|
355 | 360 |
public void setValue(Object value) throws InvalidEntryException { |
356 | 361 |
EditingServiceParameter param = next(); |
357 | 362 |
validateAndInsertValue(param, value); |
358 | 363 |
} |
359 | 364 |
|
365 |
@Override |
|
360 | 366 |
public void finishAndStore() throws FinishServiceException { |
361 | 367 |
|
362 | 368 |
FeatureSelection selection |
... | ... | |
399 | 405 |
} catch (BaseException e) { |
400 | 406 |
throw new FinishServiceException(e); |
401 | 407 |
} finally { |
402 |
it.dispose();
|
|
408 |
DisposeUtils.disposeQuietly(it);
|
|
403 | 409 |
} |
404 | 410 |
} |
405 | 411 |
} |
... | ... | |
410 | 416 |
} |
411 | 417 |
} |
412 | 418 |
|
419 |
@Override |
|
413 | 420 |
public Geometry finish() throws FinishServiceException { |
414 | 421 |
return null; |
415 | 422 |
} |
416 | 423 |
|
424 |
@Override |
|
417 | 425 |
public void start() throws StartServiceException { |
418 |
this.values = new HashMap<EditingServiceParameter, Object>();
|
|
426 |
this.values = new HashMap<>(); |
|
419 | 427 |
FeatureSelection selected = null; |
420 | 428 |
if (featureStore != null) { |
421 | 429 |
try { |
... | ... | |
433 | 441 |
} |
434 | 442 |
} |
435 | 443 |
|
444 |
@Override |
|
436 | 445 |
public String getName() { |
437 | 446 |
return StretchEditingProviderFactory.PROVIDER_NAME; |
438 | 447 |
} |
Also available in: Unified diff