Revision 333 org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.polyline/src/main/java/org/gvsig/vectorediting/lib/prov/polyline/PolylineEditingProvider.java
PolylineEditingProvider.java | ||
---|---|---|
25 | 25 |
package org.gvsig.vectorediting.lib.prov.polyline; |
26 | 26 |
|
27 | 27 |
import java.util.ArrayList; |
28 |
import java.util.Iterator; |
|
28 | 29 |
import java.util.LinkedHashMap; |
29 | 30 |
import java.util.List; |
30 | 31 |
import java.util.Map; |
... | ... | |
43 | 44 |
import org.gvsig.fmap.geom.primitive.Point; |
44 | 45 |
import org.gvsig.fmap.geom.primitive.Surface; |
45 | 46 |
import org.gvsig.fmap.geom.type.GeometryType; |
47 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
|
46 | 48 |
import org.gvsig.tools.ToolsLocator; |
47 | 49 |
import org.gvsig.tools.dynobject.DynObject; |
48 | 50 |
import org.gvsig.tools.exception.BaseException; |
49 | 51 |
import org.gvsig.tools.i18n.I18nManager; |
50 | 52 |
import org.gvsig.tools.service.spi.ProviderServices; |
51 | 53 |
import org.gvsig.vectorediting.lib.api.DrawingStatus; |
54 |
import org.gvsig.vectorediting.lib.api.DrawingStatus.Status; |
|
52 | 55 |
import org.gvsig.vectorediting.lib.api.EditingServiceParameter; |
53 | 56 |
import org.gvsig.vectorediting.lib.api.EditingServiceParameter.TYPE; |
54 | 57 |
import org.gvsig.vectorediting.lib.api.exceptions.DrawServiceException; |
... | ... | |
61 | 64 |
import org.gvsig.vectorediting.lib.spi.DefaultEditingServiceParameter; |
62 | 65 |
import org.gvsig.vectorediting.lib.spi.EditingProvider; |
63 | 66 |
import org.gvsig.vectorediting.lib.spi.EditingProviderFactory; |
67 |
import org.gvsig.vectorediting.lib.spi.EditingProviderLocator; |
|
68 |
import org.gvsig.vectorediting.lib.spi.EditingProviderManager; |
|
64 | 69 |
import org.gvsig.vectorediting.lib.spi.EditingProviderServices; |
65 | 70 |
|
66 | 71 |
public class PolylineEditingProvider extends AbstractEditingProvider implements |
... | ... | |
124 | 129 |
*/ |
125 | 130 |
private DrawingStatus calculatePolyline(Point lastPosition) |
126 | 131 |
throws VectorEditingException { |
127 |
DefaultDrawingStatus geometries = new DefaultDrawingStatus(); |
|
132 |
DefaultDrawingStatus drawingStatus = new DefaultDrawingStatus(); |
|
133 |
EditingProviderManager editingProviderManager = |
|
134 |
EditingProviderLocator.getProviderManager(); |
|
135 |
ISymbol lineSymbolEditing = editingProviderManager.getSymbol("line-symbol-editing"); |
|
136 |
ISymbol auxiliaryLineSymbolEditing = editingProviderManager.getSymbol("auxiliary-line-symbol-editing"); |
|
137 |
ISymbol auxiliaryPointSymbolEditing = editingProviderManager.getSymbol("auxiliary-point-symbol-editing"); |
|
138 |
|
|
139 |
|
|
128 | 140 |
Double antm = null; |
129 | 141 |
Double antb = null; |
130 | 142 |
Double m = null; |
... | ... | |
158 | 170 |
} |
159 | 171 |
|
160 | 172 |
if (nextPoint == null) { |
161 |
return geometries;
|
|
173 |
return drawingStatus;
|
|
162 | 174 |
} |
163 | 175 |
if (polyLinePoint.isArcMode()) { |
164 | 176 |
try { |
... | ... | |
320 | 332 |
|
321 | 333 |
// Draw geometries. |
322 | 334 |
if (addGeom) { |
323 |
geometries.addGeometry(lineAntPointToPoint); |
|
324 |
geometries.addGeometry(center); |
|
335 |
drawingStatus.addStatus(point, auxiliaryPointSymbolEditing, ""); |
|
336 |
drawingStatus.addStatus(nextPoint, auxiliaryPointSymbolEditing, ""); |
|
337 |
drawingStatus.addStatus(center, auxiliaryPointSymbolEditing, ""); |
|
338 |
drawingStatus.addStatus(lineAntPointToPoint, auxiliaryLineSymbolEditing, ""); |
|
339 |
|
|
325 | 340 |
} |
326 |
geometries.addGeometry(arco);
|
|
341 |
drawingStatus.addStatus(arco, lineSymbolEditing, "");
|
|
327 | 342 |
|
328 | 343 |
} else { |
329 | 344 |
try { |
... | ... | |
332 | 347 |
Curve geometry = |
333 | 348 |
editingProviderServices.createLine(point, |
334 | 349 |
nextPoint, subtype); |
335 |
geometries.addGeometry(geometry); |
|
350 |
if (addGeom) { |
|
351 |
drawingStatus.addStatus(point, auxiliaryPointSymbolEditing, ""); |
|
352 |
drawingStatus.addStatus(nextPoint, auxiliaryPointSymbolEditing, ""); |
|
353 |
} |
|
354 |
drawingStatus.addStatus(geometry, lineSymbolEditing, ""); |
|
355 |
|
|
336 | 356 |
} catch (Exception e) { |
337 | 357 |
throw new DrawServiceException(e); |
338 | 358 |
} |
... | ... | |
343 | 363 |
right = (nextPoint.getX() >= point.getX()); |
344 | 364 |
} |
345 | 365 |
} |
346 |
return geometries;
|
|
366 |
return drawingStatus;
|
|
347 | 367 |
} |
348 | 368 |
return null; |
349 | 369 |
} |
... | ... | |
370 | 390 |
|
371 | 391 |
public DrawingStatus getDrawingStatus(Point mousePosition) |
372 | 392 |
throws DrawServiceException { |
393 |
|
|
373 | 394 |
try { |
374 | 395 |
return calculatePolyline(mousePosition); |
396 |
|
|
375 | 397 |
} catch (Exception e) { |
376 | 398 |
throw new DrawServiceException(e); |
377 | 399 |
} |
Also available in: Unified diff