Revision 4458
trunk/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/DefaultCADTool.java | ||
---|---|---|
72 | 72 |
|
73 | 73 |
/** |
74 | 74 |
* DOCUMENT ME! |
75 |
*
|
|
75 |
* |
|
76 | 76 |
* @author Vicente Caballero Navarro |
77 | 77 |
*/ |
78 | 78 |
public abstract class DefaultCADTool implements CADTool { |
... | ... | |
96 | 96 |
|
97 | 97 |
/** |
98 | 98 |
* DOCUMENT ME! |
99 |
*
|
|
99 |
* |
|
100 | 100 |
* @param cta |
101 | 101 |
* DOCUMENT ME! |
102 | 102 |
*/ |
... | ... | |
106 | 106 |
|
107 | 107 |
/** |
108 | 108 |
* DOCUMENT ME! |
109 |
*
|
|
109 |
* |
|
110 | 110 |
* @return DOCUMENT ME! |
111 | 111 |
*/ |
112 | 112 |
public CADToolAdapter getCadToolAdapter() { |
... | ... | |
115 | 115 |
|
116 | 116 |
/** |
117 | 117 |
* DOCUMENT ME! |
118 |
*
|
|
118 |
* |
|
119 | 119 |
* @param g |
120 | 120 |
* DOCUMENT ME! |
121 | 121 |
* @param firstPoint |
... | ... | |
134 | 134 |
|
135 | 135 |
/** |
136 | 136 |
* DOCUMENT ME! |
137 |
*
|
|
137 |
* |
|
138 | 138 |
* @param geometry |
139 | 139 |
* DOCUMENT ME! |
140 | 140 |
*/ |
... | ... | |
174 | 174 |
|
175 | 175 |
/** |
176 | 176 |
* DOCUMENT ME! |
177 |
*
|
|
177 |
* |
|
178 | 178 |
* @param geometry |
179 | 179 |
* DOCUMENT ME! |
180 | 180 |
*/ |
... | ... | |
194 | 194 |
|
195 | 195 |
/** |
196 | 196 |
* DOCUMENT ME! |
197 |
*
|
|
197 |
* |
|
198 | 198 |
* @param geometry |
199 | 199 |
* DOCUMENT ME! |
200 | 200 |
* @param values |
... | ... | |
205 | 205 |
|
206 | 206 |
/** |
207 | 207 |
* Devuelve la cadena que corresponde al estado en el que nos encontramos. |
208 |
*
|
|
208 |
* |
|
209 | 209 |
* @return Cadena para mostrar por consola. |
210 | 210 |
*/ |
211 | 211 |
public String getQuestion() { |
... | ... | |
214 | 214 |
|
215 | 215 |
/** |
216 | 216 |
* Actualiza la cadena que corresponde al estado actual. |
217 |
*
|
|
217 |
* |
|
218 | 218 |
* @param s |
219 | 219 |
* Cadena que aparecer? en consola. |
220 | 220 |
*/ |
... | ... | |
229 | 229 |
getCadToolAdapter().getMapControl().drawMap(false); |
230 | 230 |
} |
231 | 231 |
|
232 |
public void drawHandlers(Graphics g, FBitSet sel, AffineTransform at) |
|
232 |
/*public void drawHandlers(Graphics g, FBitSet sel, AffineTransform at)
|
|
233 | 233 |
throws DriverIOException { |
234 | 234 |
for (int i = sel.nextSetBit(0); i >= 0; i = sel.nextSetBit(i + 1)) { |
235 | 235 |
IGeometry ig = getCadToolAdapter().getVectorialAdapter() |
... | ... | |
240 | 240 |
FGraphicUtilities.DrawHandlers((Graphics2D) g, at, handlers); |
241 | 241 |
} |
242 | 242 |
} |
243 |
|
|
243 |
*/ |
|
244 | 244 |
public void drawHandlers(Graphics g, ArrayList selectedRows, |
245 | 245 |
AffineTransform at) { |
246 | 246 |
for (int i = 0; i < selectedRows.size(); i++) { |
... | ... | |
265 | 265 |
|
266 | 266 |
/* |
267 | 267 |
* (non-Javadoc) |
268 |
*
|
|
268 |
* |
|
269 | 269 |
* @see com.iver.cit.gvsig.gui.cad.CADTool#end() |
270 | 270 |
*/ |
271 | 271 |
public void end() { |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/MoveCADTool.java | ||
---|---|---|
45 | 45 |
import java.awt.event.InputEvent; |
46 | 46 |
import java.awt.geom.Point2D; |
47 | 47 |
import java.io.IOException; |
48 |
import java.util.ArrayList; |
|
48 | 49 |
|
49 | 50 |
import com.iver.andami.PluginServices; |
50 | 51 |
import com.iver.cit.gvsig.CADExtension; |
51 |
import com.iver.cit.gvsig.fmap.core.DefaultFeature;
|
|
52 |
import com.iver.cit.gvsig.fmap.core.IFeature;
|
|
52 | 53 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
53 | 54 |
import com.iver.cit.gvsig.fmap.drivers.DriverIOException; |
55 |
import com.iver.cit.gvsig.fmap.edition.IRowEdited; |
|
54 | 56 |
import com.iver.cit.gvsig.fmap.edition.UtilFunctions; |
55 | 57 |
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter; |
56 | 58 |
import com.iver.cit.gvsig.fmap.layers.FBitSet; |
... | ... | |
58 | 60 |
import com.iver.cit.gvsig.gui.cad.DefaultCADTool; |
59 | 61 |
import com.iver.cit.gvsig.gui.cad.tools.smc.MoveCADToolContext; |
60 | 62 |
import com.iver.cit.gvsig.gui.cad.tools.smc.MoveCADToolContext.MoveCADToolState; |
63 |
import com.iver.cit.gvsig.layers.VectorialLayerEdited; |
|
61 | 64 |
|
62 | 65 |
|
63 | 66 |
/** |
... | ... | |
130 | 133 |
MoveCADToolState actualState = (MoveCADToolState) _fsm.getPreviousState(); |
131 | 134 |
String status = actualState.getName(); |
132 | 135 |
VectorialEditableAdapter vea = getCadToolAdapter().getVectorialAdapter(); |
133 |
FBitSet selection = vea.getSelection(); |
|
136 |
VectorialLayerEdited vle = (VectorialLayerEdited) CADExtension |
|
137 |
.getEditionManager().getActiveLayerEdited(); |
|
138 |
ArrayList selectedRow = vle.getSelectedRow(); |
|
134 | 139 |
|
135 |
if (status.equals("Move.FirstPointToMove")) {
|
|
140 |
if (status.equals("Move.FirstPointToMove")) {
|
|
136 | 141 |
firstPoint = new Point2D.Double(x, y); |
137 | 142 |
} else if (status.equals("Move.SecondPointToMove")) { |
138 | 143 |
PluginServices.getMDIManager().setWaitCursor(); |
... | ... | |
140 | 145 |
vea.startComplexRow(); |
141 | 146 |
|
142 | 147 |
try { |
143 |
for (int i = selection.nextSetBit(0); i >= 0; |
|
144 |
i = selection.nextSetBit(i + 1)) { |
|
145 |
DefaultFeature fea = (DefaultFeature) vea.getRow(i) |
|
146 |
.getLinkedRow() |
|
147 |
.cloneRow(); |
|
148 |
// Movemos la geometr?a |
|
149 |
UtilFunctions.moveGeom(fea.getGeometry(), lastPoint.getX() - |
|
148 |
for (int i = 0; i < selectedRow.size(); i++) { |
|
149 |
IRowEdited edRow = (IRowEdited) selectedRow.get(i); |
|
150 |
IFeature feat = (IFeature) edRow.getLinkedRow().cloneRow(); |
|
151 |
IGeometry ig = feat.getGeometry(); |
|
152 |
if (ig == null) |
|
153 |
continue; |
|
154 |
// Movemos la geometr?a |
|
155 |
UtilFunctions.moveGeom(ig, lastPoint.getX() - |
|
150 | 156 |
firstPoint.getX(), lastPoint.getY() - firstPoint.getY()); |
151 | 157 |
|
152 |
vea.modifyRow(i,fea,getName());
|
|
153 |
}
|
|
154 |
|
|
158 |
vea.modifyRow(edRow.getIndex(),feat,getName());
|
|
159 |
}
|
|
160 |
selectedRow.clear(); |
|
155 | 161 |
vea.endComplexRow(); |
156 | 162 |
} catch (DriverIOException e) { |
157 |
// TODO Auto-generated catch block |
|
158 | 163 |
e.printStackTrace(); |
159 | 164 |
} catch (IOException e) { |
160 |
// TODO Auto-generated catch block |
|
161 | 165 |
e.printStackTrace(); |
162 | 166 |
} |
163 |
|
|
164 |
selection.clear(); |
|
165 | 167 |
PluginServices.getMDIManager().restoreCursor(); |
166 |
|
|
167 |
//ret = ret | copyStatus.transition("cancel"); |
|
168 | 168 |
} |
169 | 169 |
} |
170 | 170 |
|
... | ... | |
179 | 179 |
public void drawOperation(Graphics g, double x, double y) { |
180 | 180 |
MoveCADToolState actualState = ((MoveCADToolContext) _fsm).getState(); |
181 | 181 |
String status = actualState.getName(); |
182 |
VectorialEditableAdapter vea = getCadToolAdapter().getVectorialAdapter(); |
|
183 |
FBitSet selection = vea.getSelection(); |
|
184 |
|
|
185 |
try { |
|
186 |
drawHandlers(g, selection, |
|
187 |
getCadToolAdapter().getMapControl().getViewPort() |
|
188 |
.getAffineTransform()); |
|
189 |
} catch (DriverIOException e) { |
|
190 |
// TODO Auto-generated catch block |
|
191 |
e.printStackTrace(); |
|
192 |
} |
|
193 |
|
|
182 |
VectorialLayerEdited vle = (VectorialLayerEdited) CADExtension |
|
183 |
.getEditionManager().getActiveLayerEdited(); |
|
184 |
ArrayList selectedRow = vle.getSelectedRow(); |
|
185 |
drawHandlers(g, selectedRow, |
|
186 |
getCadToolAdapter().getMapControl().getViewPort() |
|
187 |
.getAffineTransform()); |
|
194 | 188 |
if (status.equals("Move.SecondPointToMove")) { |
195 |
///int dx = getCadToolAdapter().getMapControl().getViewPort().fromMapDistance(x - firstPoint.getX()); |
|
196 |
///int dy = -getCadToolAdapter().getMapControl().getViewPort().fromMapDistance(y - firstPoint.getY()); |
|
197 |
///Image img = getCadToolAdapter().getVectorialAdapter().getImage(); |
|
198 |
///g.drawImage(img, dx, dy, null); |
|
199 |
try { |
|
200 |
for (int i = selection.nextSetBit(0); i >= 0; |
|
201 |
i = selection.nextSetBit(i + 1)) { |
|
202 |
IGeometry geometry = vea.getShape(i).cloneGeometry(); |
|
203 |
// Movemos la geometr?a |
|
204 |
UtilFunctions.moveGeom(geometry, x - firstPoint.getX(), y - firstPoint.getY()); |
|
205 |
// geometry.move(x - firstPoint.getX(), y - firstPoint.getY()); |
|
206 |
geometry.draw((Graphics2D) g, |
|
207 |
getCadToolAdapter().getMapControl().getViewPort(), |
|
208 |
CADTool.drawingSymbol); |
|
209 |
} |
|
210 |
} catch (DriverIOException e) { |
|
211 |
e.printStackTrace(); |
|
212 |
} |
|
189 |
for (int i = 0; i < selectedRow.size(); i++) { |
|
190 |
IRowEdited edRow = (IRowEdited) selectedRow.get(i); |
|
191 |
IFeature feat = (IFeature) edRow.getLinkedRow(); |
|
192 |
IGeometry ig = feat.getGeometry().cloneGeometry(); |
|
193 |
if (ig == null) |
|
194 |
continue; |
|
195 |
// Movemos la geometr?a |
|
196 |
UtilFunctions.moveGeom(ig, x - firstPoint.getX(), y - firstPoint.getY()); |
|
197 |
ig.draw((Graphics2D) g, |
|
198 |
getCadToolAdapter().getMapControl().getViewPort(), |
|
199 |
CADTool.drawingSymbol); |
|
200 |
} |
|
213 | 201 |
} |
214 | 202 |
} |
215 | 203 |
|
trunk/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/CopyCADTool.java | ||
---|---|---|
45 | 45 |
import java.awt.event.InputEvent; |
46 | 46 |
import java.awt.geom.Point2D; |
47 | 47 |
import java.io.IOException; |
48 |
import java.util.ArrayList; |
|
48 | 49 |
|
49 | 50 |
import com.iver.andami.PluginServices; |
50 | 51 |
import com.iver.cit.gvsig.CADExtension; |
... | ... | |
58 | 59 |
import com.iver.cit.gvsig.gui.cad.DefaultCADTool; |
59 | 60 |
import com.iver.cit.gvsig.gui.cad.tools.smc.CopyCADToolContext; |
60 | 61 |
import com.iver.cit.gvsig.gui.cad.tools.smc.CopyCADToolContext.CopyCADToolState; |
62 |
import com.iver.cit.gvsig.layers.VectorialLayerEdited; |
|
61 | 63 |
|
62 | 64 |
|
63 | 65 |
/** |
... | ... | |
182 | 184 |
VectorialEditableAdapter vea = getCadToolAdapter().getVectorialAdapter(); |
183 | 185 |
FBitSet selection = vea.getSelection(); |
184 | 186 |
|
185 |
try { |
|
187 |
/* try {
|
|
186 | 188 |
drawHandlers(g, selection, |
187 | 189 |
getCadToolAdapter().getMapControl().getViewPort() |
188 | 190 |
.getAffineTransform()); |
... | ... | |
190 | 192 |
// TODO Auto-generated catch block |
191 | 193 |
e.printStackTrace(); |
192 | 194 |
} |
193 |
|
|
195 |
*/ |
|
196 |
VectorialLayerEdited vle = (VectorialLayerEdited) CADExtension |
|
197 |
.getEditionManager().getActiveLayerEdited(); |
|
198 |
ArrayList selectedRow = vle.getSelectedRow(); |
|
199 |
drawHandlers(g, selectedRow, |
|
200 |
getCadToolAdapter().getMapControl().getViewPort() |
|
201 |
.getAffineTransform()); |
|
194 | 202 |
if (status.equals("Copy.SecondPointToMove")) { |
195 | 203 |
///int dx = getCadToolAdapter().getMapControl().getViewPort().fromMapDistance(x - firstPoint.getX()); |
196 | 204 |
///int dy = -getCadToolAdapter().getMapControl().getViewPort().fromMapDistance(y - firstPoint.getY()); |
trunk/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/RotateCADTool.java | ||
---|---|---|
46 | 46 |
import java.awt.geom.AffineTransform; |
47 | 47 |
import java.awt.geom.Point2D; |
48 | 48 |
import java.io.IOException; |
49 |
import java.util.ArrayList; |
|
49 | 50 |
|
50 | 51 |
import com.iver.andami.PluginServices; |
51 | 52 |
import com.iver.cit.gvsig.CADExtension; |
... | ... | |
61 | 62 |
import com.iver.cit.gvsig.gui.cad.DefaultCADTool; |
62 | 63 |
import com.iver.cit.gvsig.gui.cad.tools.smc.RotateCADToolContext; |
63 | 64 |
import com.iver.cit.gvsig.gui.cad.tools.smc.RotateCADToolContext.RotateCADToolState; |
65 |
import com.iver.cit.gvsig.layers.VectorialLayerEdited; |
|
64 | 66 |
|
65 | 67 |
|
66 | 68 |
/** |
... | ... | |
186 | 188 |
VectorialEditableAdapter vea = getCadToolAdapter().getVectorialAdapter(); |
187 | 189 |
FBitSet selection = vea.getSelection(); |
188 | 190 |
|
189 |
try { |
|
191 |
/* try {
|
|
190 | 192 |
drawHandlers(g, selection, |
191 | 193 |
getCadToolAdapter().getMapControl().getViewPort() |
192 | 194 |
.getAffineTransform()); |
193 | 195 |
} catch (DriverIOException e) { |
194 | 196 |
e.printStackTrace(); |
195 | 197 |
} |
196 |
|
|
198 |
*/ |
|
199 |
VectorialLayerEdited vle = (VectorialLayerEdited) CADExtension |
|
200 |
.getEditionManager().getActiveLayerEdited(); |
|
201 |
ArrayList selectedRow = vle.getSelectedRow(); |
|
202 |
drawHandlers(g, selectedRow, |
|
203 |
getCadToolAdapter().getMapControl().getViewPort() |
|
204 |
.getAffineTransform()); |
|
197 | 205 |
if (status.equals("Rotate.AngleOrPoint")) { |
198 | 206 |
/*Point2D point = getCadToolAdapter().getMapControl().getViewPort() |
199 | 207 |
.fromMapPoint(firstPoint.getX(), |
Also available in: Unified diff