Revision 30335 branches/v2_0_0_prep/extensions/extEditing/src/org/gvsig/editing/gui/cad/tools/StretchCADTool.java
StretchCADTool.java | ||
---|---|---|
40 | 40 |
*/ |
41 | 41 |
package org.gvsig.editing.gui.cad.tools; |
42 | 42 |
|
43 |
import java.awt.Graphics; |
|
44 |
import java.awt.Graphics2D; |
|
45 | 43 |
import java.awt.Image; |
46 | 44 |
import java.awt.event.InputEvent; |
47 | 45 |
import java.awt.geom.Point2D; |
... | ... | |
65 | 63 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
66 | 64 |
import org.gvsig.fmap.geom.Geometry; |
67 | 65 |
import org.gvsig.fmap.geom.handler.Handler; |
68 |
import org.gvsig.fmap.geom.operation.Draw; |
|
69 |
import org.gvsig.fmap.geom.operation.DrawOperationContext; |
|
70 |
import org.gvsig.fmap.geom.operation.GeometryOperationException; |
|
71 |
import org.gvsig.fmap.geom.operation.GeometryOperationNotSupportedException; |
|
72 | 66 |
import org.gvsig.fmap.geom.primitive.GeneralPathX; |
73 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.FGraphicUtilities;
|
|
67 |
import org.gvsig.fmap.mapcontrol.MapControlDrawer;
|
|
74 | 68 |
|
75 | 69 |
|
76 | 70 |
/** |
... | ... | |
142 | 136 |
|
143 | 137 |
if (selection.getSize() == 0 |
144 | 138 |
&& !CADExtension |
145 |
.getCADTool()
|
|
146 |
.getClass()
|
|
147 |
.getName()
|
|
148 |
.equals(
|
|
149 |
"com.iver.cit.gvsig.gui.cad.tools.SelectionCADTool")) {
|
|
139 |
.getCADTool() |
|
140 |
.getClass() |
|
141 |
.getName() |
|
142 |
.equals( |
|
143 |
"com.iver.cit.gvsig.gui.cad.tools.SelectionCADTool")) { |
|
150 | 144 |
CADExtension.setCADTool("_selection", false); |
151 | 145 |
((SelectionCADTool) CADExtension.getCADTool()) |
152 |
.setNextTool("_stretch");
|
|
146 |
.setNextTool("_stretch"); |
|
153 | 147 |
} |
154 | 148 |
} catch (ReadException e) { |
155 | 149 |
// TODO Auto-generated catch block |
... | ... | |
171 | 165 |
*/ |
172 | 166 |
public void addPoint(double x, double y, InputEvent event) { |
173 | 167 |
StretchCADToolState actualState = (StretchCADToolState) _fsm |
174 |
.getPreviousState();
|
|
168 |
.getPreviousState(); |
|
175 | 169 |
String status = actualState.getName(); |
176 | 170 |
|
177 | 171 |
if (status.equals("Stretch.SelFirstPoint")) { |
... | ... | |
213 | 207 |
// VectorialEditableAdapter vea=vle.getVEA(); |
214 | 208 |
featureStore.beginEditingGroup(getName()); |
215 | 209 |
// ArrayList selectedRow=getSelectedRows(); |
216 |
// ArrayList selectedRowAux = new ArrayList(); |
|
217 |
// PluginServices.getMDIManager().setWaitCursor(); |
|
210 |
// ArrayList selectedRowAux = new ArrayList();
|
|
211 |
// PluginServices.getMDIManager().setWaitCursor();
|
|
218 | 212 |
movelastPoint = new Point2D.Double(x, y); |
219 | 213 |
|
220 | 214 |
Handler[] handlers = null; |
... | ... | |
233 | 227 |
// edRow.getLinkedRow().cloneRow(); |
234 | 228 |
Geometry geometry = null; |
235 | 229 |
geometry = (feature.getDefaultGeometry()) |
236 |
.cloneGeometry();
|
|
230 |
.cloneGeometry(); |
|
237 | 231 |
|
238 | 232 |
handlers = geometry.getHandlers(Geometry.STRETCHINGHANDLER); |
239 | 233 |
|
... | ... | |
250 | 244 |
.getDefaultGeometryAttributeName(), geometry); |
251 | 245 |
// vea.modifyRow(edRow.getIndex(),fea,getName(),EditionEvent.GRAPHIC); |
252 | 246 |
featureStore.update(eFeature); |
253 |
// selectedRowAux.add(feature); |
|
247 |
// selectedRowAux.add(feature);
|
|
254 | 248 |
} |
255 | 249 |
featureStore.endEditingGroup(); |
256 | 250 |
// vle.setSelectionCache(VectorialLayerEdited.NOTSAVEPREVIOUS, |
257 | 251 |
// selectedRowAux); |
258 | 252 |
|
259 |
// PluginServices.getMDIManager().restoreCursor(); |
|
253 |
// PluginServices.getMDIManager().restoreCursor();
|
|
260 | 254 |
} catch (DataException e) { |
261 | 255 |
NotificationManager.addError(e.getMessage(), e); |
262 | 256 |
} finally { |
... | ... | |
278 | 272 |
* @param y |
279 | 273 |
* par?metro x del punto que se pase para dibujar. |
280 | 274 |
*/ |
281 |
public void drawOperation(Graphics g, double x, double y) {
|
|
275 |
public void drawOperation(MapControlDrawer renderer, double x, double y) {
|
|
282 | 276 |
StretchCADToolState actualState = (_fsm) |
283 | 277 |
.getState(); |
284 | 278 |
String status = actualState.getName(); |
... | ... | |
297 | 291 |
elShape.lineTo(selfirstPoint.getX(), y); |
298 | 292 |
elShape.lineTo(selfirstPoint.getX(), selfirstPoint.getY()); |
299 | 293 |
|
300 |
DrawOperationContext doc = new DrawOperationContext(); |
|
301 |
doc.setGraphics((Graphics2D) g); |
|
302 |
doc.setViewPort(getCadToolAdapter().getMapControl() |
|
303 |
.getViewPort()); |
|
304 |
doc.setSymbol(DefaultCADTool.axisReferencesSymbol); |
|
305 |
try { |
|
306 |
createCurve(elShape).invokeOperation(Draw.CODE, doc); |
|
307 |
} catch (GeometryOperationNotSupportedException e) { |
|
308 |
e.printStackTrace(); |
|
309 |
} catch (GeometryOperationException e) { |
|
310 |
e.printStackTrace(); |
|
311 |
} |
|
312 |
// geomFactory.createPolyline2D(elShape).draw((Graphics2D) g, |
|
313 |
// getCadToolAdapter().getMapControl().getViewPort(), |
|
314 |
// DefaultCADTool.axisReferencesSymbol); |
|
294 |
renderer.draw(createCurve(elShape), mapControlManager.getAxisReferenceSymbol()); |
|
315 | 295 |
} else if (status.equals("Stretch.MoveFirstPoint")) { |
316 | 296 |
|
317 | 297 |
Handler[] handlers = null; |
318 | 298 |
while (iterator.hasNext()) { |
319 | 299 |
Feature feature = (Feature) iterator.next(); |
320 | 300 |
|
321 |
// } |
|
322 |
// for (int i = 0;i<selectedRow.size();i++) { |
|
323 |
// IRowEdited edRow = (IRowEdited) selectedRow.get(i); |
|
324 |
// DefaultFeature fea = (DefaultFeature) |
|
325 |
// edRow.getLinkedRow().cloneRow(); |
|
326 | 301 |
Geometry geometry = null; |
327 | 302 |
geometry = (feature.getDefaultGeometry()).cloneGeometry(); |
328 | 303 |
|
... | ... | |
330 | 305 |
|
331 | 306 |
for (int j = 0; j < handlers.length; j++) { |
332 | 307 |
if (rect.contains(handlers[j].getPoint())) { |
333 |
FGraphicUtilities |
|
334 |
.DrawHandlers((Graphics2D) g, |
|
335 |
getCadToolAdapter().getMapControl() |
|
336 |
.getViewPort() |
|
337 |
.getAffineTransform(), |
|
338 |
new Handler[] { handlers[j] }, |
|
339 |
DefaultCADTool.handlerSymbol); |
|
308 |
renderer.drawHandlers(handlers, |
|
309 |
getCadToolAdapter().getMapControl() |
|
310 |
.getViewPort() |
|
311 |
.getAffineTransform(), |
|
312 |
mapControlManager.getHandlerSymbol()); |
|
340 | 313 |
} |
341 | 314 |
} |
342 | 315 |
} |
... | ... | |
358 | 331 |
handlers[j].move(x - movefirstPoint.getX(), y |
359 | 332 |
- movefirstPoint.getY()); |
360 | 333 |
} |
361 |
} |
|
362 |
DrawOperationContext doc = new DrawOperationContext(); |
|
363 |
doc.setGraphics((Graphics2D) g); |
|
364 |
doc.setViewPort(getCadToolAdapter().getMapControl() |
|
365 |
.getViewPort()); |
|
366 |
doc.setSymbol(DefaultCADTool.axisReferencesSymbol); |
|
367 |
try { |
|
368 |
geometry.cloneGeometry() |
|
369 |
.invokeOperation(Draw.CODE, doc); |
|
370 |
} catch (GeometryOperationNotSupportedException e) { |
|
371 |
e.printStackTrace(); |
|
372 |
} catch (GeometryOperationException e) { |
|
373 |
e.printStackTrace(); |
|
374 |
} |
|
375 |
// geometry.draw((Graphics2D) g, |
|
376 |
// getCadToolAdapter().getMapControl().getViewPort(), |
|
377 |
// DefaultCADTool.axisReferencesSymbol); |
|
334 |
} |
|
335 |
renderer.draw(geometry, mapControlManager.getAxisReferenceSymbol()); |
|
378 | 336 |
} |
379 | 337 |
} else { |
380 | 338 |
VectorialLayerEdited vle = getVLE(); |
... | ... | |
383 | 341 |
} |
384 | 342 |
try { |
385 | 343 |
Image imgSel = vle.getSelectionImage(); |
386 |
if (imgSel != null) { |
|
387 |
g.drawImage(imgSel, 0, 0, null); |
|
388 |
} |
|
344 |
renderer.drawImage(imgSel, 0, 0); |
|
345 |
|
|
389 | 346 |
Image imgHand = vle.getHandlersImage(); |
390 |
if (imgHand != null) { |
|
391 |
g.drawImage(imgHand, 0, 0, null); |
|
392 |
} |
|
347 |
renderer.drawImage(imgHand, 0, 0); |
|
393 | 348 |
} catch (Exception e) { |
394 | 349 |
} |
395 | 350 |
} |
Also available in: Unified diff