Revision 1763 branches/gvSIG_CAD_Layout_version/applications/appgvSIG/src/com/iver/cit/gvsig/gui/layout/fframes/FFrameGraphics.java
FFrameGraphics.java | ||
---|---|---|
45 | 45 |
package com.iver.cit.gvsig.gui.layout.fframes; |
46 | 46 |
|
47 | 47 |
import com.iver.andami.PluginServices; |
48 |
|
|
48 | 49 |
import com.iver.cit.gvsig.fmap.DriverException; |
49 | 50 |
import com.iver.cit.gvsig.fmap.core.FGeometry; |
50 |
import com.iver.cit.gvsig.fmap.core.FPoint2D; |
|
51 |
import com.iver.cit.gvsig.fmap.core.FPolygon2D; |
|
52 |
import com.iver.cit.gvsig.fmap.core.FPolyline2D; |
|
53 |
import com.iver.cit.gvsig.fmap.core.FShape; |
|
54 |
import com.iver.cit.gvsig.fmap.core.GeneralPathX; |
|
55 | 51 |
import com.iver.cit.gvsig.fmap.core.Handler; |
56 | 52 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
57 |
import com.iver.cit.gvsig.fmap.core.v02.FConstant; |
|
58 | 53 |
import com.iver.cit.gvsig.fmap.core.v02.FGraphicUtilities; |
59 |
import com.iver.cit.gvsig.fmap.core.v02.FSymbol; |
|
60 | 54 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
61 | 55 |
import com.iver.cit.gvsig.fmap.edition.EditableFeatureSource; |
62 | 56 |
import com.iver.cit.gvsig.fmap.layers.SelectionSupport; |
63 | 57 |
import com.iver.cit.gvsig.gui.cad.CADToolAdapter; |
64 |
import com.iver.cit.gvsig.gui.cad.CadTool; |
|
58 |
import com.iver.cit.gvsig.gui.cad.tools.SelectionCadTool; |
|
59 |
import com.iver.cit.gvsig.gui.layout.GeometryComposite; |
|
65 | 60 |
import com.iver.cit.gvsig.gui.layout.Layout; |
66 | 61 |
|
67 | 62 |
import com.iver.utiles.XMLEntity; |
68 | 63 |
|
69 |
import java.awt.Color; |
|
70 | 64 |
import java.awt.Graphics2D; |
71 | 65 |
import java.awt.geom.AffineTransform; |
72 |
import java.awt.geom.Line2D; |
|
73 |
import java.awt.geom.NoninvertibleTransformException; |
|
74 |
import java.awt.geom.Point2D; |
|
75 | 66 |
import java.awt.geom.Rectangle2D; |
76 | 67 |
import java.awt.image.BufferedImage; |
68 |
|
|
77 | 69 |
import java.io.IOException; |
70 |
|
|
78 | 71 |
import java.util.ArrayList; |
79 | 72 |
|
80 | 73 |
|
... | ... | |
84 | 77 |
* @author Vicente Caballero Navarro |
85 | 78 |
*/ |
86 | 79 |
public class FFrameGraphics extends FFrame { |
87 |
private ArrayList geometries=new ArrayList();
|
|
80 |
private ArrayList geometries = new ArrayList();
|
|
88 | 81 |
private CADToolAdapter cta; |
89 | 82 |
private SelectionSupport selectionSupport = new SelectionSupport(); |
90 | 83 |
|
91 | 84 |
/** |
92 | 85 |
* Crea un nuevo FFrameGraphics. |
86 |
* |
|
87 |
* @param c DOCUMENT ME! |
|
93 | 88 |
*/ |
94 |
public FFrameGraphics(CADToolAdapter c){ |
|
95 |
cta=c;
|
|
89 |
public FFrameGraphics(CADToolAdapter c) {
|
|
90 |
cta = c;
|
|
96 | 91 |
} |
92 |
|
|
97 | 93 |
/*public FFrameGraphics() { |
98 |
mT = new AffineTransform();
|
|
99 |
mT.setToIdentity();
|
|
100 |
}*/ |
|
101 |
public int getNumGeom(){ |
|
94 |
mT = new AffineTransform();
|
|
95 |
mT.setToIdentity();
|
|
96 |
}*/
|
|
97 |
public int getNumGeom() {
|
|
102 | 98 |
return geometries.size(); |
103 | 99 |
} |
104 |
public IGeometry[] getGeometries(){ |
|
105 |
return (IGeometry[])geometries.toArray(new IGeometry[0]); |
|
100 |
|
|
101 |
/** |
|
102 |
* DOCUMENT ME! |
|
103 |
* |
|
104 |
* @return DOCUMENT ME! |
|
105 |
*/ |
|
106 |
public IGeometry[] getGeometries() { |
|
107 |
return (IGeometry[]) geometries.toArray(new IGeometry[0]); |
|
106 | 108 |
} |
107 |
public void addGeometry(IGeometry g){ |
|
108 |
geometries.add(g); |
|
109 |
|
|
110 |
/** |
|
111 |
* DOCUMENT ME! |
|
112 |
* |
|
113 |
* @param g DOCUMENT ME! |
|
114 |
*/ |
|
115 |
public void addGeometry(IGeometry g) { |
|
116 |
GeometryComposite gc = new GeometryComposite(SelectionCadTool.drawingSymbol, |
|
117 |
g); |
|
118 |
geometries.add(gc); |
|
109 | 119 |
} |
120 |
|
|
110 | 121 |
/** |
111 | 122 |
* @see com.iver.cit.gvsig.gui.layout.fframes.IFFrame#getXMLEntity() |
112 | 123 |
*/ |
113 | 124 |
public XMLEntity getXMLEntity() { |
114 | 125 |
XMLEntity xml = new XMLEntity(); |
126 |
|
|
115 | 127 |
return xml; |
116 | 128 |
} |
117 | 129 |
|
... | ... | |
150 | 162 |
throws DriverException { |
151 | 163 |
draw(g, at, null, null); |
152 | 164 |
} |
165 |
|
|
153 | 166 |
/** |
154 |
* @see com.iver.cit.gvsig.gui.layout.fframes.FFrame#draw(java.awt.Graphics2D, java.awt.geom.AffineTransform, java.awt.geom.Rectangle2D, java.awt.image.BufferedImage) |
|
167 |
* @see com.iver.cit.gvsig.gui.layout.fframes.FFrame#draw(java.awt.Graphics2D, |
|
168 |
* java.awt.geom.AffineTransform, java.awt.geom.Rectangle2D, |
|
169 |
* java.awt.image.BufferedImage) |
|
155 | 170 |
*/ |
156 |
public void draw(Graphics2D g, AffineTransform at, Rectangle2D r, BufferedImage imgBase) throws DriverException { |
|
157 |
EditableFeatureSource efs=cta.getEditableFeatureSource(); |
|
171 |
public void draw(Graphics2D g, AffineTransform at, Rectangle2D r, |
|
172 |
BufferedImage imgBase) throws DriverException { |
|
173 |
EditableFeatureSource efs = cta.getEditableFeatureSource(); |
|
174 |
|
|
158 | 175 |
try { |
159 |
for (int i=0;i<efs.getGeometryCount();i++){
|
|
176 |
for (int i = 0; i < efs.getGeometryCount(); i++) {
|
|
160 | 177 |
try { |
161 |
IGeometry geometry=efs.getGeometry(i); |
|
162 |
geometry.draw(g,at,CadTool.drawingSymbol);//Cada gr?fico tendr? su propio s?mbolo. |
|
163 |
if (cta.getSelection().get(i)){ |
|
164 |
Handler[] handlers=geometry.getHandlers(FGeometry.SELECTHANDLER); |
|
165 |
FGraphicUtilities.DrawHandlers((Graphics2D)g,new AffineTransform(),handlers); |
|
166 |
|
|
178 |
IGeometry geometry = efs.getGeometry(i); |
|
179 |
|
|
180 |
if (geometry != null) { |
|
181 |
geometry.draw(g, at, geometry.getSymbol()); //Cada gr?fico tendr? su propio s?mbolo. |
|
182 |
|
|
183 |
if (cta.getSelection().get(i)) { |
|
184 |
Handler[] handlers = geometry.getHandlers(FGeometry.SELECTHANDLER); |
|
185 |
FGraphicUtilities.DrawHandlers((Graphics2D) g, |
|
186 |
new AffineTransform(), handlers); |
|
187 |
} |
|
167 | 188 |
} |
168 | 189 |
} catch (IOException e1) { |
169 | 190 |
e1.printStackTrace(); |
170 | 191 |
} |
171 | 192 |
} |
172 |
|
|
173 | 193 |
} catch (DriverIOException e) { |
174 | 194 |
e.printStackTrace(); |
175 | 195 |
} |
176 |
|
|
177 | 196 |
} |
197 |
|
|
198 |
/** |
|
199 |
* DOCUMENT ME! |
|
200 |
* |
|
201 |
* @param g DOCUMENT ME! |
|
202 |
*/ |
|
178 | 203 |
public void drawHandlers(Graphics2D g) { |
179 |
EditableFeatureSource efs=cta.getEditableFeatureSource(); |
|
180 |
/* int[] indexes = efs.getGeometriesIndexes(r); |
|
181 |
//Recorrer todas las geometrias |
|
182 |
for (int i=0;i<geometries.size();i++){ |
|
183 |
//Recorrer todos los handlers y ver |
|
184 |
//si hay alguno que se ajuste al puntero del rat?n con su tolerancia. |
|
185 |
IGeometry ig = efs.getGeometry(indexes[i]); |
|
186 |
if (ig == null) continue; |
|
187 |
if (selectionSupport.isSelected(indexes[i])){ |
|
188 |
Handler[] handlers=ig.getHandlers(FGeometry.SELECTHANDLER); |
|
189 |
FGraphicUtilities.DrawHandlers((Graphics2D)g,viewPort.getAffineTransform(),handlers); |
|
190 |
ig.draw(g, at, symbol); |
|
191 |
} |
|
192 |
}*/ |
|
193 | 204 |
} |
205 |
|
|
206 |
/** |
|
207 |
* DOCUMENT ME! |
|
208 |
* |
|
209 |
* @param i DOCUMENT ME! |
|
210 |
* |
|
211 |
* @return DOCUMENT ME! |
|
212 |
*/ |
|
213 |
public IGeometry getGeometry(int i) { |
|
214 |
return (IGeometry) geometries.get(i); |
|
215 |
} |
|
194 | 216 |
} |
Also available in: Unified diff