Revision 36036 branches/v2_0_0_prep/extensions/extWFS2/src/org/gvsig/wfs/gui/panels/WFSAreaPanel.java

View differences:

WFSAreaPanel.java
43 43
import org.gvsig.fmap.dal.serverexplorer.wfs.WFSServerExplorer;
44 44
import org.gvsig.fmap.geom.Geometry;
45 45
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
46
import org.gvsig.fmap.geom.Geometry.TYPES;
46 47
import org.gvsig.fmap.geom.GeometryLocator;
47 48
import org.gvsig.fmap.geom.GeometryManager;
48 49
import org.gvsig.fmap.geom.exception.CreateGeometryException;
49 50
import org.gvsig.fmap.geom.primitive.Envelope;
50
import org.gvsig.fmap.geom.primitive.GeneralPathX;
51
import org.gvsig.fmap.geom.primitive.Surface;
51 52
import org.gvsig.fmap.mapcontext.ExtentHistory;
52 53
import org.gvsig.fmap.mapcontext.MapContext;
53 54
import org.gvsig.fmap.mapcontext.ViewPort;
......
863 864
			return null; // Return null if there is no coordinate
864 865
		}
865 866
		else {
866
			if (getCoordinatesPanel().validVertexes()) {
867
				Rectangle2D r2d = getCoordinatesPanel().getExtent();
868
				GeneralPathX generalPath = new GeneralPathX();
869
				generalPath.moveTo(r2d.getMinX(), r2d.getMinY());
870
				generalPath.lineTo(r2d.getMaxX(), r2d.getMinY());
871
				generalPath.lineTo(r2d.getMaxX(), r2d.getMaxY());
872
				generalPath.lineTo(r2d.getMinX(), r2d.getMaxY());
873
				generalPath.lineTo(r2d.getMinX(), r2d.getMinY());
867
			if (getCoordinatesPanel().validVertexes()) {				
874 868
				try {
875
					return geometryManager.createSurface(generalPath, SUBTYPES.GEOM2D);
869
					return getCoordinatesPanel().getSurface();
876 870
				} catch (CreateGeometryException e) {
877 871
					logger.error("Creating the area", e);
878 872
					return null;
......
883 877
			}
884 878
		}
885 879
	}
880
	
881
	public void setArea(Geometry area){
882
	    if ((area != null) && (area.getType() == TYPES.SURFACE)){
883
	        getCoordinatesPanel().setSurface((Surface)area);
884
	    }
885
	}
886 886

  
887 887
	/**
888 888
	 * Set parent's 'Applicable' button enable or disable according the value of the parameter
......
2620 2620

  
2621 2621
			return new Rectangle2D.Double(v2x, v2y, (v1x - v2x), (v1y  - v2y));
2622 2622
		}
2623
		
2624
		public Surface getSurface() throws CreateGeometryException {
2625
            double v1x = getDoubleValueOfJTextFieldV1X();
2626
            double v1y = getDoubleValueOfJTextFieldV1Y();
2627
            double v2x = getDoubleValueOfJTextFieldV2X();
2628
            double v2y = getDoubleValueOfJTextFieldV2Y();   
2629
            
2630
            Surface surface = (Surface)geometryManager.create(TYPES.SURFACE, SUBTYPES.GEOM2D);              
2631
            surface.addMoveToVertex(geometryManager.createPoint(v1x, v1y, SUBTYPES.GEOM2D));
2632
            surface.addVertex(geometryManager.createPoint(v1x, v2y, SUBTYPES.GEOM2D));
2633
            surface.addVertex(geometryManager.createPoint(v2x, v2y, SUBTYPES.GEOM2D));
2634
            surface.addVertex(geometryManager.createPoint(v2x, v1y, SUBTYPES.GEOM2D));            
2635
            surface.closePrimitive();
2636
            
2637
            return surface;
2638
        }
2639
        
2640
        public void setSurface(Surface surface){
2641
            getJTextFieldVertex1X().setText(String.valueOf(surface.getVertex(0).getX()));
2642
            getJTextFieldVertex1Y().setText(String.valueOf(surface.getVertex(0).getY()));
2643
            getJTextFieldVertex2X().setText(String.valueOf(surface.getVertex(2).getX()));
2644
            getJTextFieldVertex2Y().setText(String.valueOf(surface.getVertex(2).getY()));
2645
        }
2623 2646

  
2624 2647
		/**
2625 2648
		 * Returns true if there is some coordinate text field with data; else returns false

Also available in: Unified diff