Revision 30335 branches/v2_0_0_prep/extensions/extEditing/src/org/gvsig/editing/gui/cad/tools/SplitGeometryCADTool.java

View differences:

SplitGeometryCADTool.java
48 48
*/
49 49
package org.gvsig.editing.gui.cad.tools;
50 50

  
51
import java.awt.Graphics;
52
import java.awt.Graphics2D;
53 51
import java.awt.Image;
54 52
import java.awt.event.InputEvent;
55 53
import java.awt.event.MouseEvent;
......
82 80
import org.gvsig.fmap.geom.util.Converter;
83 81
import org.gvsig.fmap.mapcontext.layers.SpatialCache;
84 82
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
83
import org.gvsig.fmap.mapcontrol.MapControlDrawer;
85 84
import org.gvsig.tools.locator.LocatorException;
86 85

  
87 86
import statemap.State;
......
356 355
	 * @param x last x mouse pointer position
357 356
	 * @param y last y mouse pointer position
358 357
	 */
359
	protected void drawPolyLine(Graphics2D g, double x, double y) {
358
	protected void drawPolyLine(MapControlDrawer renderer, double x, double y) {
360 359
		GeneralPathX gpx =
361 360
			new GeneralPathX(GeneralPathX.WIND_EVEN_ODD,
362 361
									clickedPoints.size());
......
371 370
		org.gvsig.fmap.geom.Geometry geom;
372 371
		try {
373 372
			geom = GeometryLocator.getGeometryManager().createCurve(gpx, SUBTYPES.GEOM2D);
374
			DrawOperationContext doc=new DrawOperationContext();
375
			doc.setGraphics((Graphics2D)g);
376
			doc.setViewPort(getCadToolAdapter().getMapControl().getViewPort());
377
			doc.setSymbol(DefaultCADTool.geometrySelectSymbol);
378
			geom.invokeOperation(Draw.CODE,doc);
379
		} catch (GeometryOperationNotSupportedException e) {
380
			e.printStackTrace();
381
		} catch (GeometryOperationException e) {
382
			e.printStackTrace();
373
			renderer.draw(geom, mapControlManager.getGeometrySelectionSymbol());
383 374
		} catch (LocatorException e) {
384 375
			e.printStackTrace();
385 376
		} catch (CreateGeometryException e) {
......
387 378
		}
388 379
	}
389 380

  
390
	private void drawRectangleOfSplit(Graphics2D g) throws GeometryOperationNotSupportedException, GeometryOperationException, DataException {
381
	private void drawRectangleOfSplit(MapControlDrawer renderer) throws GeometryOperationNotSupportedException, GeometryOperationException, DataException {
391 382
		VectorialLayerEdited vle = getVLE();
392 383
		FeatureStore store=vle.getFeatureStore();
393 384
		Iterator<Feature> selected = store.getFeatureSelection().iterator();
......
397 388
			Geometry jtsG = Converter.geometryToJts(ig);
398 389
			if (jtsG !=null && jtsG instanceof GeometryCollection && jtsG.getNumGeometries()>1){
399 390
				org.gvsig.fmap.geom.Geometry r=ig.getEnvelope().getGeometry();
400
				DrawOperationContext doc=new DrawOperationContext();
401
				doc.setGraphics((Graphics2D)g);
402
				doc.setViewPort(getCadToolAdapter().getMapControl().getViewPort());
403
				doc.setSymbol(DefaultCADTool.axisReferencesSymbol);
404
				r.invokeOperation(Draw.CODE, doc);
391
				renderer.draw(r, mapControlManager.getAxisReferenceSymbol());
405 392
			}
406 393
		}
407 394
	}
408 395

  
409
	public void drawOperation(Graphics g, double x, double y) {
396
	public void drawOperation(MapControlDrawer renderer, double x, double y) {
410 397
		State actualState = _fsm.getState();
411 398
        String status = actualState.getName();
412 399
        try {
413
        	drawRectangleOfSplit((Graphics2D) g);
400
        	drawRectangleOfSplit(renderer);
414 401
            // draw splitting line
415 402
            if ((status.equals("SplitGeometry.DigitizingLine"))) {
416
            	drawPolyLine((Graphics2D) g, x, y);
403
            	drawPolyLine(renderer, x, y);
417 404
             }
418 405

  
419 406
            // draw selection
420 407
        	Image imgSel = getVLE().getSelectionImage();
421
        	if (imgSel != null)
422
        		g.drawImage(imgSel, 0, 0, null);
408
        	renderer.drawImage(imgSel, 0, 0);
423 409
        } catch (Exception e) {
424 410
        	PluginServices.getLogger().error("Error drawing Editing Selection", e);
425 411
        }

Also available in: Unified diff