Statistics
| Revision:

svn-gvsig-desktop / tags / v1_0_2_Build_910 / extensions / extCAD / src / com / iver / cit / gvsig / layers / VectorialLayerEdited.java @ 11275

History | View | Annotate | Download (17.3 KB)

1 4144 fjp
package com.iver.cit.gvsig.layers;
2
3 4637 caballero
import java.awt.Graphics2D;
4
import java.awt.Image;
5 4366 caballero
import java.awt.geom.Point2D;
6 4637 caballero
import java.awt.geom.Rectangle2D;
7
import java.awt.image.BufferedImage;
8 4366 caballero
import java.io.IOException;
9
import java.util.ArrayList;
10 5018 caballero
import java.util.EmptyStackException;
11 4366 caballero
12 5018 caballero
import com.iver.andami.PluginServices;
13 10714 caballero
import com.iver.andami.ui.mdiManager.IWindow;
14 5018 caballero
import com.iver.cit.gvsig.CADExtension;
15 5208 caballero
import com.iver.cit.gvsig.StartEditing;
16 5084 caballero
import com.iver.cit.gvsig.ViewCommandStackExtension;
17 4637 caballero
import com.iver.cit.gvsig.fmap.DriverException;
18
import com.iver.cit.gvsig.fmap.ViewPort;
19 4366 caballero
import com.iver.cit.gvsig.fmap.core.DefaultFeature;
20
import com.iver.cit.gvsig.fmap.core.Handler;
21
import com.iver.cit.gvsig.fmap.core.IFeature;
22
import com.iver.cit.gvsig.fmap.core.IGeometry;
23 4637 caballero
import com.iver.cit.gvsig.fmap.core.v02.FGraphicUtilities;
24 4366 caballero
import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
25 4522 caballero
import com.iver.cit.gvsig.fmap.edition.DefaultRowEdited;
26 5084 caballero
import com.iver.cit.gvsig.fmap.edition.IEditableSource;
27 4637 caballero
import com.iver.cit.gvsig.fmap.edition.IRowEdited;
28
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter;
29
import com.iver.cit.gvsig.fmap.layers.CancelationException;
30 4366 caballero
import com.iver.cit.gvsig.fmap.layers.FBitSet;
31 4144 fjp
import com.iver.cit.gvsig.fmap.layers.FLayer;
32 5182 caballero
import com.iver.cit.gvsig.fmap.layers.FLyrAnnotation;
33 4637 caballero
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
34 5227 caballero
import com.iver.cit.gvsig.fmap.layers.LayerCollectionEvent;
35
import com.iver.cit.gvsig.fmap.layers.LayerCollectionListener;
36 4637 caballero
import com.iver.cit.gvsig.fmap.layers.LayerDrawEvent;
37
import com.iver.cit.gvsig.fmap.layers.LayerDrawingListener;
38 5018 caballero
import com.iver.cit.gvsig.fmap.layers.LayerEvent;
39 5227 caballero
import com.iver.cit.gvsig.fmap.layers.LayerPositionEvent;
40 6312 caballero
import com.iver.cit.gvsig.fmap.rendering.Legend;
41 4637 caballero
import com.iver.cit.gvsig.gui.cad.CADTool;
42 4366 caballero
import com.iver.cit.gvsig.gui.cad.CADToolAdapter;
43 5261 fjp
import com.iver.cit.gvsig.gui.cad.snapping.ISnapper;
44 4366 caballero
import com.iver.cit.gvsig.gui.cad.tools.SelectionCADTool;
45 8765 jjdelcerro
import com.iver.cit.gvsig.project.documents.view.gui.View;
46 4717 caballero
import com.vividsolutions.jts.geom.Geometry;
47 4144 fjp
48 4637 caballero
public class VectorialLayerEdited extends DefaultLayerEdited implements LayerDrawingListener{
49 4366 caballero
        private ArrayList selectedHandler = new ArrayList();
50
        private ArrayList selectedRow = new ArrayList();
51 4708 caballero
        private Point2D lastPoint;
52
        private Point2D firstPoint;
53 5018 caballero
        private CADTool cadtool=null;
54 5906 caballero
55 5261 fjp
        private ArrayList snappers = new ArrayList();
56 5813 fjp
        private ArrayList layersToSnap = new ArrayList();
57 6312 caballero
        private Legend legend;
58 4366 caballero
59 4144 fjp
        public VectorialLayerEdited(FLayer lyr)
60
        {
61 4147 fjp
                super(lyr);
62 6881 cesar
                lyr.getMapContext().addLayerDrawingListener(this);
63 5813 fjp
                // Por defecto, siempre hacemos snapping sobre la capa en edici?n.
64
                layersToSnap.add(lyr);
65 4144 fjp
        }
66 4366 caballero
67
        public ArrayList getSelectedHandler() {
68
                return selectedHandler;
69
        }
70
71
        public ArrayList getSelectedRow() {
72
                return selectedRow;
73
        }
74
75
        public void clearSelection() {
76
                selectedHandler.clear();
77
                selectedRow.clear();
78 6824 fjp
                if (getVEA() != null)
79
                {
80
                        FBitSet selection=getVEA().getSelection();
81
                        selection.clear();
82
                }
83 4366 caballero
        }
84
        /**
85
         * @return Returns the selectedRow.
86
         */
87
        public IFeature[] getSelectedRowsCache() {
88
                return (IFeature[]) selectedRow.toArray(new IFeature[0]);
89
        }
90 5906 caballero
        public void selectWithPoint(double x, double y,boolean multipleSelection){
91 4637 caballero
                firstPoint = new Point2D.Double(x, y);
92
                VectorialEditableAdapter vea = getVEA();
93
                FBitSet selection = vea.getSelection();
94 5906 caballero
                if (!multipleSelection) {
95
                        clearSelection();
96
                }
97 4637 caballero
                // Se comprueba si se pincha en una gemometr?a
98 6881 cesar
                ViewPort vp=getLayer().getMapContext().getViewPort();
99 4637 caballero
                double tam =vp.toMapDistance(SelectionCADTool.tolerance);
100
                Rectangle2D rect = new Rectangle2D.Double(firstPoint.getX() - tam,
101
                                firstPoint.getY() - tam, tam * 2, tam * 2);
102
103
                String strEPSG = vp.getProjection().getAbrev().substring(5);
104
                IRowEdited[] feats;
105
106
                try {
107
                        feats = vea.getFeatures(rect, strEPSG);
108
                        selection.clear();
109
                        BufferedImage selectionImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
110
                        Graphics2D gs = selectionImage.createGraphics();
111
                        BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
112
                        Graphics2D gh = handlersImage.createGraphics();
113
                        for (int i = 0; i < feats.length; i++) {
114
                                IFeature feat = (IFeature) feats[i].getLinkedRow();
115
                                IGeometry geom = feat.getGeometry();
116
117
                                if (geom.intersects(rect)) { // , 0.1)){
118
                                        selection.set(feats[i].getIndex(), true);
119
                                        selectedRow.add(feats[i]);
120
                                        geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
121
                                        drawHandlers(geom.cloneGeometry(),gh,vp);
122
                                }
123
                        }
124
                        vea.setSelectionImage(selectionImage);
125
                        vea.setHandlersImage(handlersImage);
126
                } catch (DriverException e1) {
127
                        e1.printStackTrace();
128
                }
129
130
        }
131
        public void selectWithSecondPoint(double x, double y) {
132 4971 caballero
                VectorialEditableAdapter vea = getVEA();
133 4637 caballero
                FBitSet selection = vea.getSelection();
134
                lastPoint = new Point2D.Double(x, y);
135 6881 cesar
                ViewPort vp=getLayer().getMapContext().getViewPort();
136 4637 caballero
                selection.clear();
137
                selectedRow.clear();
138
139
                double x1;
140
                double y1;
141
                double w1;
142
                double h1;
143
144
                if (firstPoint.getX() < lastPoint.getX()) {
145
                        x1 = firstPoint.getX();
146
                        w1 = lastPoint.getX() - firstPoint.getX();
147
                } else {
148
                        x1 = lastPoint.getX();
149
                        w1 = firstPoint.getX() - lastPoint.getX();
150
                }
151
152
                if (firstPoint.getY() < lastPoint.getY()) {
153
                        y1 = firstPoint.getY();
154
                        h1 = lastPoint.getY() - firstPoint.getY();
155
                } else {
156
                        y1 = lastPoint.getY();
157
                        h1 = firstPoint.getY() - lastPoint.getY();
158
                }
159
160
                Rectangle2D rect = new Rectangle2D.Double(x1, y1, w1, h1);
161
162
                String strEPSG = vp.getProjection().getAbrev().substring(5);
163
                IRowEdited[] feats;
164
                try {
165
                        feats = vea.getFeatures(rect, strEPSG);
166
                        BufferedImage selectionImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
167
                        Graphics2D gs = selectionImage.createGraphics();
168
                        BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
169
                        Graphics2D gh = handlersImage.createGraphics();
170
                        for (int i = 0; i < feats.length; i++) {
171
                                IGeometry geom = ((IFeature) feats[i].getLinkedRow())
172
                                                .getGeometry();
173
174
                                if (firstPoint.getX() < lastPoint.getX()) {
175
                                        if (rect.contains(geom.getBounds2D())) {
176
                                                selectedRow.add(feats[i]);
177
                                                selection.set(feats[i].getIndex(), true);
178
                                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
179
                                                drawHandlers(geom.cloneGeometry(),gh,vp);
180
                                        }
181
                                } else {
182
                                        if (geom.intersects(rect)) { // , 0.1)){
183
                                                selectedRow.add(feats[i]);
184
                                                selection.set(feats[i].getIndex(), true);
185
                                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
186
                                                drawHandlers(geom.cloneGeometry(),gh,vp);
187
                                        }
188
                                }
189
                        }
190
                        vea.setSelectionImage(selectionImage);
191
                        vea.setHandlersImage(handlersImage);
192
                } catch (DriverException e) {
193
                        e.printStackTrace();
194
                }
195
196
        }
197 4708 caballero
        public void selectInsidePolygon(IGeometry polygon) {
198 4971 caballero
                VectorialEditableAdapter vea = getVEA();
199 4708 caballero
                FBitSet selection = vea.getSelection();
200 6881 cesar
                ViewPort vp=getLayer().getMapContext().getViewPort();
201 4708 caballero
                selection.clear();
202
                selectedRow.clear();
203
                Rectangle2D rect = polygon.getBounds2D();
204 4637 caballero
205 4708 caballero
                String strEPSG = vp.getProjection().getAbrev().substring(5);
206
                IRowEdited[] feats;
207
                try {
208
                        feats = vea.getFeatures(rect, strEPSG);
209
                        BufferedImage selectionImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
210
                        Graphics2D gs = selectionImage.createGraphics();
211
                        BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
212
                        Graphics2D gh = handlersImage.createGraphics();
213
                        for (int i = 0; i < feats.length; i++) {
214
                                IGeometry geom = ((IFeature) feats[i].getLinkedRow())
215
                                        .getGeometry();
216 4717 caballero
                                        if (contains(polygon,geom)) {
217 4708 caballero
                                                selectedRow.add(feats[i]);
218
                                                selection.set(feats[i].getIndex(), true);
219
                                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
220
                                                drawHandlers(geom.cloneGeometry(),gh,vp);
221
                                        }
222
                        }
223
                        vea.setSelectionImage(selectionImage);
224
                        vea.setHandlersImage(handlersImage);
225
                } catch (DriverException e) {
226
                        e.printStackTrace();
227
                }
228
        }
229
230
        public void selectCrossPolygon(IGeometry polygon) {
231 4971 caballero
                VectorialEditableAdapter vea = getVEA();
232 4708 caballero
                FBitSet selection = vea.getSelection();
233 6881 cesar
                ViewPort vp=getLayer().getMapContext().getViewPort();
234 4708 caballero
                selection.clear();
235
                selectedRow.clear();
236
                Rectangle2D rect = polygon.getBounds2D();
237
238
                String strEPSG = vp.getProjection().getAbrev().substring(5);
239
                IRowEdited[] feats;
240
                try {
241
                        feats = vea.getFeatures(rect, strEPSG);
242
                        BufferedImage selectionImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
243
                        Graphics2D gs = selectionImage.createGraphics();
244
                        BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
245
                        Graphics2D gh = handlersImage.createGraphics();
246
                        for (int i = 0; i < feats.length; i++) {
247
                                IGeometry geom = ((IFeature) feats[i].getLinkedRow())
248
                                        .getGeometry();
249 4717 caballero
                                        if (contains(polygon,geom) || intersects(polygon,geom)) {
250 4708 caballero
                                                selectedRow.add(feats[i]);
251
                                                selection.set(feats[i].getIndex(), true);
252
                                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
253
                                                drawHandlers(geom.cloneGeometry(),gh,vp);
254
                                        }
255
                        }
256
                        vea.setSelectionImage(selectionImage);
257
                        vea.setHandlersImage(handlersImage);
258
                } catch (DriverException e) {
259
                        e.printStackTrace();
260
                }
261
        }
262
263
        public void selectOutPolygon(IGeometry polygon) {
264 4971 caballero
                VectorialEditableAdapter vea = getVEA();
265 4708 caballero
                FBitSet selection = vea.getSelection();
266 6881 cesar
                ViewPort vp=getLayer().getMapContext().getViewPort();
267 4708 caballero
                selection.clear();
268
                selectedRow.clear();
269
270
                try {
271
                        BufferedImage selectionImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
272
                        Graphics2D gs = selectionImage.createGraphics();
273
                        BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
274
                        Graphics2D gh = handlersImage.createGraphics();
275
                        for (int i = 0; i < vea.getRowCount(); i++) {
276
                                IRowEdited rowEd=(IRowEdited)vea.getRow(i);
277
                                IGeometry geom = ((IFeature)rowEd.getLinkedRow())
278
                                                .getGeometry();
279 4717 caballero
                                        if (!contains(polygon,geom) && !intersects(polygon,geom)) {
280 4708 caballero
                                                selectedRow.add(rowEd);
281
                                                selection.set(rowEd.getIndex(), true);
282
                                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
283
                                                drawHandlers(geom.cloneGeometry(),gh,vp);
284
                                        }
285
                        }
286
                        vea.setSelectionImage(selectionImage);
287
                        vea.setHandlersImage(handlersImage);
288
                } catch (DriverIOException e) {
289
                        e.printStackTrace();
290
                } catch (IOException e) {
291
                        e.printStackTrace();
292
                }
293
        }
294
        public void selectAll() {
295 4971 caballero
                VectorialEditableAdapter vea = getVEA();
296 4708 caballero
                FBitSet selection = vea.getSelection();
297 6881 cesar
                ViewPort vp=getLayer().getMapContext().getViewPort();
298 4708 caballero
                selection.clear();
299
                selectedRow.clear();
300
                try {
301
                        BufferedImage selectionImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
302
                        Graphics2D gs = selectionImage.createGraphics();
303
                        BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
304
                        Graphics2D gh = handlersImage.createGraphics();
305
                        for (int i = 0; i < vea.getRowCount(); i++) {
306
                                IRowEdited rowEd=(IRowEdited)vea.getRow(i);
307
                                IGeometry geom = ((IFeature)rowEd.getLinkedRow())
308
                                                .getGeometry();
309
                                selectedRow.add(rowEd);
310
                                selection.set(rowEd.getIndex(), true);
311
                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
312
                                drawHandlers(geom.cloneGeometry(),gh,vp);
313
                        }
314
                        vea.setSelectionImage(selectionImage);
315
                        vea.setHandlersImage(handlersImage);
316
                } catch (DriverIOException e) {
317
                        e.printStackTrace();
318
                } catch (IOException e) {
319
                        e.printStackTrace();
320
                }
321
        }
322
323 4366 caballero
        public void refreshSelectionCache(Point2D firstPoint,CADToolAdapter cta){
324 4724 caballero
                VectorialEditableAdapter vea = getVEA();
325
                FBitSet selection = vea.getSelection();
326 4637 caballero
                double min = java.lang.Double.MAX_VALUE;
327 4366 caballero
//                 Cogemos las entidades seleccionadas
328 4522 caballero
                clearSelection();
329 6881 cesar
                ViewPort vp=getLayer().getMapContext().getViewPort();
330 4637 caballero
                BufferedImage selectionImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
331
                Graphics2D gs = selectionImage.createGraphics();
332
                BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(), vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
333
                Graphics2D gh = handlersImage.createGraphics();
334 4366 caballero
                for (int i = selection.nextSetBit(0); i >= 0; i = selection
335
                                .nextSetBit(i + 1)) {
336
                        Handler[] handlers = null;
337
338 4522 caballero
                        DefaultRowEdited dre = null;
339 4366 caballero
                        try {
340 4724 caballero
                                dre = (DefaultRowEdited)(vea.getRow(i));
341 4637 caballero
                                IFeature feat=(DefaultFeature)dre.getLinkedRow();
342
                                IGeometry geom=feat.getGeometry();
343
                                handlers = geom.getHandlers(IGeometry.SELECTHANDLER);
344 4522 caballero
                                selectedRow.add(dre);
345 4724 caballero
                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
346 4637 caballero
                                drawHandlers(geom.cloneGeometry(),gh,vp);
347 4366 caballero
                                // y miramos los handlers de cada entidad seleccionada
348
                                min = cta.getMapControl().getViewPort()
349
                                                .toMapDistance(SelectionCADTool.tolerance);
350
                                for (int j = 0; j < handlers.length; j++) {
351
                                        Point2D handlerPoint = handlers[j].getPoint();
352
                                        double distance = firstPoint.distance(handlerPoint);
353
                                        if (distance <= min) {
354
                                                min = distance;
355
                                                selectedHandler.add(handlers[j]);
356
                                        }
357
                                }
358
                        } catch (DriverIOException e) {
359
                                e.printStackTrace();
360
                        } catch (IOException e) {
361
                                e.printStackTrace();
362
                        }
363
                }
364 4637 caballero
                vea.setSelectionImage(selectionImage);
365
                vea.setHandlersImage(handlersImage);
366 4366 caballero
        }
367 4637 caballero
368
        public void drawHandlers(IGeometry geom, Graphics2D gs, ViewPort vp) {
369 5182 caballero
                if (!(getLayer() instanceof FLyrAnnotation)){
370
                        Handler[] handlers = geom.getHandlers(IGeometry.SELECTHANDLER);
371
                        FGraphicUtilities.DrawHandlers(gs, vp.getAffineTransform(), handlers);
372
                }
373 4637 caballero
        }
374
        public Image getSelectionImage(){
375
                return getVEA().getSelectionImage();
376
        }
377
        public Image getHandlersImage() {
378
                return getVEA().getHandlersImage();
379
        }
380
        public VectorialEditableAdapter getVEA(){
381 5018 caballero
                if (((FLyrVect)getLayer()).getSource() instanceof VectorialEditableAdapter)
382
                        return (VectorialEditableAdapter)((FLyrVect)getLayer()).getSource();
383
                else
384
                        return null;
385 4637 caballero
        }
386
387
        public void beforeLayerDraw(LayerDrawEvent e) throws CancelationException {
388
                if (((FLyrVect) getLayer()).getSource() instanceof VectorialEditableAdapter) {
389
                        VectorialEditableAdapter vea = (VectorialEditableAdapter) ((FLyrVect) getLayer())
390
                                        .getSource();
391 6881 cesar
                        ViewPort vp = getLayer().getMapContext().getViewPort();
392 4637 caballero
                        BufferedImage selectionImage = new BufferedImage(
393
                                        vp.getImageWidth(), vp.getImageHeight(),
394
                                        BufferedImage.TYPE_INT_ARGB);
395
                        BufferedImage handlersImage = new BufferedImage(vp.getImageWidth(),
396
                                        vp.getImageHeight(), BufferedImage.TYPE_INT_ARGB);
397
                        Graphics2D gs = selectionImage.createGraphics();
398
                        Graphics2D gh = handlersImage.createGraphics();
399
                        for (int i = 0; i < selectedRow.size(); i++) {
400
                                IFeature feat = (IFeature) ((IRowEdited) selectedRow.get(i))
401
                                                .getLinkedRow();
402
                                IGeometry geom = feat.getGeometry();
403
                                geom.cloneGeometry().draw(gs, vp, CADTool.drawingSymbol);
404
                                drawHandlers(geom.cloneGeometry(), gh, vp);
405
                        }
406
                        vea.setSelectionImage(selectionImage);
407
                        vea.setHandlersImage(handlersImage);
408
                }
409
        }
410
411
        public void afterLayerDraw(LayerDrawEvent e) throws CancelationException {
412
        }
413
414
        public void beforeGraphicLayerDraw(LayerDrawEvent e) throws CancelationException {
415
        }
416
417
        public void afterLayerGraphicDraw(LayerDrawEvent e) throws CancelationException {
418
        }
419 4717 caballero
        private static boolean contains(IGeometry g1,IGeometry g2) {
420 4724 caballero
                Geometry geometry1=g1.toJTSGeometry();
421
                Geometry geometry2=g2.toJTSGeometry();
422
                if (geometry1==null || geometry2==null)return false;
423
                return geometry1.contains(geometry2);
424 4717 caballero
        }
425
        private static boolean intersects(IGeometry g1,IGeometry g2) {
426 4724 caballero
                Geometry geometry1=g1.toJTSGeometry();
427
                Geometry geometry2=g2.toJTSGeometry();
428
                if (geometry1==null || geometry2==null)return false;
429
                return geometry1.intersects(geometry2);
430 4717 caballero
        }
431 5018 caballero
432
        public void activationGained(LayerEvent e) {
433 5084 caballero
                if (ViewCommandStackExtension.csd!=null){
434 5227 caballero
                        ViewCommandStackExtension.csd.setModel(((IEditableSource) ((FLyrVect)getLayer()).getSource())
435
                                                        .getCommandRecord());
436 5084 caballero
                }
437 10714 caballero
                IWindow window=PluginServices.getMDIManager().getActiveWindow();
438
                if (window instanceof View){
439
                        View view=(View)window;
440
                        if (e.getSource().isEditing()){
441
                                view.showConsole();
442
                        }
443
                }
444 5018 caballero
                if (cadtool!=null){
445
                        CADExtension.getCADToolAdapter().setCadTool(cadtool);
446
                        PluginServices.getMainFrame().setSelectedTool(cadtool.toString());
447 5208 caballero
                        StartEditing.startCommandsApplicable(null,(FLyrVect)getLayer());
448 5257 caballero
                        CADExtension.initFocus();
449 5018 caballero
                }
450 5227 caballero
451 5018 caballero
        }
452
453
        public void activationLost(LayerEvent e) {
454
                try{
455
                        cadtool=CADExtension.getCADTool();
456 10714 caballero
                        IWindow window=PluginServices.getMDIManager().getActiveWindow();
457
                        if (window instanceof View){
458
                                View view=(View)window;
459
                                view.hideConsole();
460
                        }
461 5018 caballero
                }catch (EmptyStackException e1) {
462
                        cadtool=new SelectionCADTool();
463
                        cadtool.init();
464
                }
465
466
        }
467 5261 fjp
468
        public ArrayList getSnappers() {
469
                return snappers;
470
        }
471 5906 caballero
472 5813 fjp
        public ArrayList getLayersToSnap() {
473
                return layersToSnap;
474
        }
475
476
        public void setLayersToSnap(ArrayList layersToSnap) {
477
                this.layersToSnap = layersToSnap;
478 5906 caballero
479 5813 fjp
        }
480
481 5985 caballero
        public void setSelectionCache(ArrayList selectedRowAux) {
482
                clearSelection();
483
                VectorialEditableAdapter vea=getVEA();
484
                FBitSet selection=vea.getSelection();
485
                selectedRow.addAll(selectedRowAux);
486
                for (int i = 0;i < selectedRow.size(); i++) {
487
                          IRowEdited edRow = (IRowEdited) selectedRow.get(i);
488
                          selection.set(edRow.getIndex());
489
                }
490
        }
491
492 6312 caballero
        public void setLegend(Legend legend) {
493
                this.legend=legend;
494
        }
495
        public Legend getLegend() {
496
                return legend;
497
        }
498 4144 fjp
}