Statistics
| Revision:

svn-gvsig-desktop / tags / v1_0_2_Build_915 / extensions / extCAD / src / com / iver / cit / gvsig / gui / cad / tools / SelectionCADTool.java @ 12217

History | View | Annotate | Download (15.8 KB)

1 3832 caballero
/* gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
2
 *
3
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
18
 *
19
 * For more information, contact:
20
 *
21
 *  Generalitat Valenciana
22
 *   Conselleria d'Infraestructures i Transport
23
 *   Av. Blasco Ib??ez, 50
24
 *   46010 VALENCIA
25
 *   SPAIN
26
 *
27
 *      +34 963862235
28
 *   gvsig@gva.es
29
 *      www.gvsig.gva.es
30
 *
31
 *    or
32
 *
33
 *   IVER T.I. S.A
34
 *   Salamanca 50
35
 *   46005 Valencia
36
 *   Spain
37
 *
38
 *   +34 963163400
39
 *   dac@iver.es
40
 */
41
package com.iver.cit.gvsig.gui.cad.tools;
42
43 4522 caballero
import java.awt.Color;
44
import java.awt.Graphics;
45
import java.awt.Graphics2D;
46 4637 caballero
import java.awt.Image;
47 4522 caballero
import java.awt.event.InputEvent;
48 5105 caballero
import java.awt.event.MouseEvent;
49 4522 caballero
import java.awt.geom.Point2D;
50 4637 caballero
import java.io.IOException;
51 4522 caballero
import java.util.ArrayList;
52 4365 caballero
53 5105 caballero
import com.hardcode.driverManager.DriverLoadException;
54 4522 caballero
import com.iver.andami.PluginServices;
55 3883 caballero
import com.iver.cit.gvsig.CADExtension;
56 5105 caballero
import com.iver.cit.gvsig.fmap.MapControl;
57 4637 caballero
import com.iver.cit.gvsig.fmap.ViewPort;
58 3832 caballero
import com.iver.cit.gvsig.fmap.core.GeneralPathX;
59
import com.iver.cit.gvsig.fmap.core.Handler;
60 4016 caballero
import com.iver.cit.gvsig.fmap.core.IFeature;
61 3832 caballero
import com.iver.cit.gvsig.fmap.core.IGeometry;
62
import com.iver.cit.gvsig.fmap.core.ShapeFactory;
63 5105 caballero
import com.iver.cit.gvsig.fmap.core.v02.FLabel;
64 4637 caballero
import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
65 5909 caballero
import com.iver.cit.gvsig.fmap.edition.AnnotationEditableAdapter;
66
import com.iver.cit.gvsig.fmap.edition.DefaultRowEdited;
67 4124 fjp
import com.iver.cit.gvsig.fmap.edition.IRowEdited;
68 5909 caballero
import com.iver.cit.gvsig.fmap.edition.UtilFunctions;
69 4124 fjp
import com.iver.cit.gvsig.fmap.edition.VectorialEditableAdapter;
70 5105 caballero
import com.iver.cit.gvsig.fmap.layers.FLayer;
71
import com.iver.cit.gvsig.fmap.layers.FLyrAnnotation;
72
import com.iver.cit.gvsig.fmap.layers.FLyrVect;
73 3832 caballero
import com.iver.cit.gvsig.gui.cad.DefaultCADTool;
74 5735 caballero
import com.iver.cit.gvsig.gui.cad.exception.CommandException;
75 3832 caballero
import com.iver.cit.gvsig.gui.cad.tools.smc.SelectionCADToolContext;
76
import com.iver.cit.gvsig.gui.cad.tools.smc.SelectionCADToolContext.SelectionCADToolState;
77 6117 jaume
import com.iver.cit.gvsig.gui.panels.TextFieldEdit;
78 4365 caballero
import com.iver.cit.gvsig.layers.VectorialLayerEdited;
79 8765 jjdelcerro
import com.iver.cit.gvsig.project.documents.table.gui.Table;
80
import com.iver.cit.gvsig.project.documents.view.gui.View;
81 3832 caballero
82
/**
83
 * DOCUMENT ME!
84 4465 caballero
 *
85 3832 caballero
 * @author Vicente Caballero Navarro
86
 */
87
public class SelectionCADTool extends DefaultCADTool {
88 5817 fjp
        public static int tolerance = 4;
89 3832 caballero
90 4016 caballero
        private SelectionCADToolContext _fsm;
91 3832 caballero
92 5207 caballero
        protected Point2D firstPoint;
93 3883 caballero
94 4637 caballero
        //private Point2D lastPoint;
95 3832 caballero
96
97 4708 caballero
98 5207 caballero
        protected String nextState;
99 4637 caballero
// Registros de los que se ha sleccionado alg?n handler.
100 5207 caballero
        protected ArrayList rowselectedHandlers=new ArrayList();
101
        protected String type=PluginServices.getText(this,"simple");
102
        protected ArrayList pointsPolygon=new ArrayList();
103 5908 caballero
104
        protected boolean multipleSelection=false;
105 4016 caballero
        /**
106 5196 caballero
         * Crea un nuevo SelectionCADTool.
107 4016 caballero
         */
108
        public SelectionCADTool() {
109
        }
110
        /**
111
         * M?todo de incio, para poner el c?digo de todo lo que se requiera de una
112
         * carga previa a la utilizaci?n de la herramienta.
113
         */
114
        public void init() {
115
                _fsm = new SelectionCADToolContext(this);
116
                setNextTool("selection");
117 4708 caballero
                setType(PluginServices.getText(this,"simple"));
118 4016 caballero
        }
119 3847 caballero
120 4016 caballero
        /*
121
         * (non-Javadoc)
122 4465 caballero
         *
123 4016 caballero
         * @see com.iver.cit.gvsig.gui.cad.CADTool#transition(com.iver.cit.gvsig.fmap.layers.FBitSet,
124
         *      double, double)
125
         */
126 4313 fjp
        public void transition(double x, double y, InputEvent event) {
127 4448 fjp
                System.out.println("TRANSICION DESDE ESTADO " + _fsm.getState()
128
                                + " x= " + x + " y=" + y);
129 5171 caballero
                try{
130 4324 caballero
                _fsm.addPoint(x, y, event);
131 5171 caballero
                }catch (Exception e) {
132
                        init();
133
                }
134 4445 fjp
                System.out.println("ESTADO ACTUAL: " + getStatus());
135 5196 caballero
136 5174 fjp
                // ESTO LO QUITO POR AHORA, PERO PUEDE QUE LO NECESITEMOS VOLVER A PONER.
137
                // Lo he quitado porque cuando seleccionas algo con CAD, molesta que
138
                // te hagan un redibujado.
139 5205 caballero
                FLyrVect lv=(FLyrVect)((VectorialLayerEdited)CADExtension.getEditionManager().getActiveLayerEdited()).getLayer();
140
                //lv.getSource().getRecordset().getSelectionSupport().fireSelectionEvents();
141 6880 cesar
                com.iver.andami.ui.mdiManager.IWindow[] views = (com.iver.andami.ui.mdiManager.IWindow[]) PluginServices.getMDIManager().getAllWindows();
142 5205 caballero
143
                for (int i=0 ; i<views.length ; i++){
144
                        if (views[i] instanceof Table){
145
                                Table table=(Table)views[i];
146
                                if (table.getModel().getAssociatedTable()!=null && table.getModel().getAssociatedTable().equals(lv))
147
                                        table.updateSelection();
148
                        }
149
                }
150 4016 caballero
        }
151 3847 caballero
152 4016 caballero
        /*
153
         * (non-Javadoc)
154 4465 caballero
         *
155 4016 caballero
         * @see com.iver.cit.gvsig.gui.cad.CADTool#transition(com.iver.cit.gvsig.fmap.layers.FBitSet,
156
         *      double)
157
         */
158
        public void transition(double d) {
159 5735 caballero
                _fsm.addValue(d);
160 4016 caballero
        }
161 3847 caballero
162 4016 caballero
        /*
163
         * (non-Javadoc)
164 4465 caballero
         *
165 4016 caballero
         * @see com.iver.cit.gvsig.gui.cad.CADTool#transition(com.iver.cit.gvsig.fmap.layers.FBitSet,
166
         *      java.lang.String)
167
         */
168 5735 caballero
        public void transition(String s) throws CommandException {
169 4892 caballero
                if (!super.changeCommand(s)){
170 5171 caballero
                        _fsm.addOption(s);
171 4892 caballero
            }
172 4016 caballero
        }
173 4144 fjp
174 4445 fjp
        public String getNextState() {
175
                return nextState;
176 4058 caballero
        }
177 4144 fjp
178 5196 caballero
        protected void pointDoubleClick(MapControl map) {
179 5105 caballero
                try {
180
                        FLayer[] actives = map.getMapContext()
181
            .getLayers().getActives();
182
            for (int i=0; i < actives.length; i++){
183
                if (actives[i] instanceof FLyrAnnotation && actives[i].isEditing()) {
184
                    FLyrAnnotation lyrAnnotation = (FLyrAnnotation) actives[i];
185
186
                            lyrAnnotation.setSelectedEditing();
187
                            lyrAnnotation.setInEdition(lyrAnnotation.getRecordset().getSelection().nextSetBit(0));
188
                            FLabel fl=lyrAnnotation.getLabel(lyrAnnotation.getInEdition());
189
                                        if (fl!=null){
190
191 6880 cesar
                                                View vista=(View)PluginServices.getMDIManager().getActiveWindow();
192 5105 caballero
                                                TextFieldEdit tfe=new TextFieldEdit(lyrAnnotation);
193
194
                                                tfe.show(vista.getMapControl().getViewPort().fromMapPoint(fl.getOrig()),vista.getMapControl());
195
                                        }
196
                }
197
            }
198
199
                } catch (DriverLoadException e) {
200
                        e.printStackTrace();
201
                } catch (com.iver.cit.gvsig.fmap.DriverException e) {
202
                        e.printStackTrace();
203
                }
204
205
}
206 4016 caballero
        /**
207 4118 caballero
         * Equivale al transition del prototipo pero sin pasarle como par? metro el
208 4016 caballero
         * editableFeatureSource que ya estar? creado.
209 4465 caballero
         *
210 4016 caballero
         * @param selection
211
         *            Bitset con las geometr?as que est?n seleccionadas.
212
         * @param x
213
         *            par?metro x del punto que se pase en esta transici?n.
214
         * @param y
215
         *            par?metro y del punto que se pase en esta transici?n.
216
         */
217 4365 caballero
        public void addPoint(double x, double y, InputEvent event) {
218 5225 caballero
                if (event!=null && ((MouseEvent)event).getClickCount()==2){
219 5105 caballero
                        pointDoubleClick((MapControl)event.getComponent());
220
                        return;
221
                }
222 4016 caballero
                SelectionCADToolState actualState = (SelectionCADToolState) _fsm
223
                                .getPreviousState();
224
                String status = actualState.getName();
225 4448 fjp
                System.out.println("PREVIOUSSTATE =" + status); // + "ESTADO ACTUAL: " +
226
                                                                                                                // _fsm.getState());
227 4637 caballero
                VectorialLayerEdited vle = getVLE();
228
                VectorialEditableAdapter vea=vle.getVEA();
229 4365 caballero
                ArrayList selectedHandler = vle.getSelectedHandler();
230
                ArrayList selectedRow = vle.getSelectedRow();
231 4491 fjp
                System.out.println("STATUS ACTUAL = " + _fsm.getTransition());
232 4448 fjp
                if (status.equals("Selection.FirstPoint")) {
233 4708 caballero
                        firstPoint=new Point2D.Double(x,y);
234
                        pointsPolygon.add(firstPoint);
235 4448 fjp
                } else if (status.equals("Selection.SecondPoint")) {
236 4491 fjp
                } else if (status.equals("Selection.WithFeatures")) {
237 4448 fjp
                } else if (status.equals("Selection.WithHandlers")) {
238 4637 caballero
                        vea.startComplexRow();
239 5909 caballero
                        ArrayList selectedRowsAux=new ArrayList();
240 4448 fjp
                        for (int i = 0; i < selectedRow.size(); i++) {
241
                                IRowEdited row = (IRowEdited) selectedRow.get(i);
242 5909 caballero
                                IFeature feat = (IFeature) row.getLinkedRow().cloneRow();
243
                                if (vea instanceof AnnotationEditableAdapter) {
244
245
                                IGeometry ig = feat.getGeometry();
246
                                        // Movemos la geometr?a
247
                    UtilFunctions.moveGeom(ig, x -
248
                            firstPoint.getX(), y - firstPoint.getY());
249
                                }else {
250
                                        // Movemos los handlers que hemos seleccionado
251
                                        // previamente dentro del m?todo select()
252
                                        for (int k = 0; k < selectedHandler.size(); k++) {
253
                                                Handler h = (Handler) selectedHandler.get(k);
254
                                                h.set(x, y);
255
                                        }
256 4016 caballero
                                }
257 5909 caballero
                                modifyFeature(row.getIndex(), feat);
258
                                selectedRowsAux.add(new DefaultRowEdited(feat,IRowEdited.STATUS_MODIFIED,row.getIndex()));
259 4448 fjp
                        }
260 5909 caballero
                        firstPoint=new Point2D.Double(x,y);
261 5985 caballero
                        vle.setSelectionCache(selectedRowsAux);
262
                        //clearSelection();
263
                        //selectedRow.addAll(selectedRowsAux);
264 4637 caballero
                        try {
265 6071 caballero
                                String description=PluginServices.getText(this,"move_handlers");
266
                                vea.endComplexRow(description);
267 4637 caballero
                        } catch (IOException e) {
268
                                e.printStackTrace();
269
                        } catch (DriverIOException e) {
270
                                e.printStackTrace();
271
                        }
272 4448 fjp
                }
273
        }
274 3832 caballero
275 4448 fjp
        /**
276
         * Receives second point
277
         * @param x
278
         * @param y
279
         * @return numFeatures selected
280
         */
281 4491 fjp
        public int selectWithSecondPoint(double x, double y, InputEvent event) {
282 4637 caballero
                VectorialLayerEdited vle = getVLE();
283
                PluginServices.getMDIManager().setWaitCursor();
284
                vle.selectWithSecondPoint(x,y);
285 4448 fjp
                ArrayList selectedRow = vle.getSelectedRow();
286
                PluginServices.getMDIManager().restoreCursor();
287
                if (selectedRow.size() > 0) {
288
                        nextState = "Selection.WithSelectedFeatures";
289
                } else
290
                        nextState = "Selection.FirstPoint";
291
                return selectedRow.size();
292 4016 caballero
        }
293 3832 caballero
294 4016 caballero
        /**
295
         * M?todo para dibujar la lo necesario para el estado en el que nos
296
         * encontremos.
297 4465 caballero
         *
298 4016 caballero
         * @param g
299
         *            Graphics sobre el que dibujar.
300
         * @param selectedGeometries
301
         *            BitSet con las geometr?as seleccionadas.
302
         * @param x
303
         *            par?metro x del punto que se pase para dibujar.
304
         * @param y
305
         *            par?metro x del punto que se pase para dibujar.
306
         */
307
        public void drawOperation(Graphics g, double x, double y) {
308
                SelectionCADToolState actualState = _fsm.getState();
309
                String status = actualState.getName();
310 4637 caballero
                VectorialLayerEdited vle = getVLE();
311 5595 fjp
                if (vle == null) return;
312 4365 caballero
                ArrayList selectedHandler = vle.getSelectedHandler();
313 6881 cesar
                ViewPort vp=vle.getLayer().getMapContext().getViewPort();
314 5207 caballero
                if (status.equals("Selection.SecondPoint")) {
315 4144 fjp
                        // Dibuja el rect?ngulo de selecci?n
316 4016 caballero
                        GeneralPathX elShape = new GeneralPathX(GeneralPathX.WIND_EVEN_ODD,
317
                                        4);
318
                        elShape.moveTo(firstPoint.getX(), firstPoint.getY());
319
                        elShape.lineTo(x, firstPoint.getY());
320
                        elShape.lineTo(x, y);
321
                        elShape.lineTo(firstPoint.getX(), y);
322
                        elShape.lineTo(firstPoint.getX(), firstPoint.getY());
323
                        ShapeFactory.createPolyline2D(elShape).draw((Graphics2D) g,
324 4637 caballero
                                        vp,
325 11427 caballero
                                        DefaultCADTool.selectSymbol);
326 4637 caballero
                        Image img = vle.getSelectionImage();
327
                g.drawImage(img, 0, 0, null);
328
                return;
329 4708 caballero
                }else if (status.equals("Selection.WithHandlers")) {
330 4144 fjp
                        // Movemos los handlers que hemos seleccionado
331
                        // previamente dentro del m?todo select()
332
                        for (int k = 0; k < selectedHandler.size(); k++) {
333
                                Handler h = (Handler) selectedHandler.get(k);
334
                                h.set(x, y);
335
                        }
336
                        // Y una vez movidos los v?rtices (handles)
337
                        // redibujamos la nueva geometr?a.
338 4637 caballero
                        for (int i = 0; i < rowselectedHandlers.size(); i++) {
339
                                IRowEdited rowEd = (IRowEdited) rowselectedHandlers.get(i);
340 4448 fjp
                                IGeometry geom = ((IFeature) rowEd.getLinkedRow())
341
                                                .getGeometry().cloneGeometry();
342 4016 caballero
                                g.setColor(Color.gray);
343 11427 caballero
                                geom.draw((Graphics2D) g, vp, DefaultCADTool.modifySymbol);
344 4016 caballero
                        }
345 4637 caballero
                        return;
346
                }else{
347 7541 caballero
                        if (!vle.getLayer().isVisible())
348
                                return;
349 4637 caballero
                        try{
350
                        Image imgSel = vle.getSelectionImage();
351
                if (imgSel!=null)
352
                        g.drawImage(imgSel, 0, 0, null);
353
                Image imgHand = vle.getHandlersImage();
354
                if (imgHand!=null)
355
                        g.drawImage(imgHand, 0, 0, null);
356
                        }catch (Exception e) {
357
                        }
358 4016 caballero
                }
359
        }
360 3832 caballero
361 4016 caballero
        /**
362
         * Add a diferent option.
363 4465 caballero
         *
364 4016 caballero
         * @param sel
365
         *            DOCUMENT ME!
366
         * @param s
367
         *            Diferent option.
368
         */
369
        public void addOption(String s) {
370 4708 caballero
                SelectionCADToolState actualState = (SelectionCADToolState) _fsm
371
                                .getPreviousState();
372
                String status = actualState.getName();
373
                System.out.println("PREVIOUSSTATE =" + status); // + "ESTADO ACTUAL: " +
374
                // _fsm.getState());
375
                System.out.println("STATUS ACTUAL = " + _fsm.getTransition());
376
                if (s.equals(PluginServices.getText(this,"cancel"))){
377
                        init();
378
                        return;
379
                }
380
                if (status.equals("Selection.FirstPoint")) {
381
                        setType(s);
382 5171 caballero
                        return;
383 4708 caballero
                }
384 5171 caballero
                init();
385 4016 caballero
        }
386
387 4708 caballero
388 5207 caballero
389
390 4016 caballero
        /*
391
         * (non-Javadoc)
392 4465 caballero
         *
393 4016 caballero
         * @see com.iver.cit.gvsig.gui.cad.CADTool#addvalue(double)
394
         */
395
        public void addValue(double d) {
396
        }
397
398
        public String getStatus() {
399
                try {
400
                        SelectionCADToolState actualState = (SelectionCADToolState) _fsm
401
                                        .getPreviousState();
402
                        String status = actualState.getName();
403 4365 caballero
404 4016 caballero
                        return status;
405
                } catch (NullPointerException e) {
406 5196 caballero
                        return "Selection.FirstPoint";
407 3883 caballero
                }
408 4016 caballero
        }
409 3832 caballero
410 3883 caballero
411 4016 caballero
412 3883 caballero
        public void end() {
413 4708 caballero
                if (!getNextTool().equals("selection"))
414 4892 caballero
                        CADExtension.setCADTool(getNextTool(),false);
415 4016 caballero
        }
416 3883 caballero
417 4118 caballero
        public String getName() {
418 4584 caballero
                return PluginServices.getText(this,"selection_");
419 4118 caballero
        }
420 4445 fjp
421 4491 fjp
        public boolean selectFeatures(double x, double y, InputEvent event) {
422 4445 fjp
                SelectionCADToolState actualState = (SelectionCADToolState) _fsm
423 4448 fjp
                                .getState();
424 4445 fjp
425
                String status = actualState.getName();
426 4637 caballero
                VectorialLayerEdited vle = getVLE();
427 4445 fjp
428 4637 caballero
429 4448 fjp
                if ((status.equals("Selection.FirstPoint"))
430
                                || (status.equals("Selection.WithSelectedFeatures"))) {
431
                        PluginServices.getMDIManager().setWaitCursor();
432 4637 caballero
                        firstPoint = new Point2D.Double(x, y);
433 5908 caballero
                        vle.selectWithPoint(x,y,multipleSelection);
434 4448 fjp
                        PluginServices.getMDIManager().restoreCursor();
435
                }
436 4637 caballero
                ArrayList selectedRow = vle.getSelectedRow();
437 4448 fjp
                if (selectedRow.size() > 0) {
438 4445 fjp
                        nextState = "Selection.WithSelectedFeatures";
439
                        return true;
440 4448 fjp
                } else {
441
                        {
442
                                nextState = "Selection.SecondPoint";
443
                                return true;
444
                        }
445 4445 fjp
                }
446
        }
447
448 4491 fjp
        public int selectHandlers(double x, double y, InputEvent event) {
449 4445 fjp
                Point2D auxPoint = new Point2D.Double(x, y);
450
451 4637 caballero
                VectorialLayerEdited vle = getVLE();
452 4445 fjp
                ArrayList selectedHandler = vle.getSelectedHandler();
453
                ArrayList selectedRow = vle.getSelectedRow();
454 4448 fjp
                System.out.println("DENTRO DE selectHandlers. selectedRow.size= "
455
                                + selectedRow.size());
456 4445 fjp
                selectedHandler.clear();
457 4448 fjp
458 4445 fjp
                // Se comprueba si se pincha en una gemometr?a
459
                PluginServices.getMDIManager().setWaitCursor();
460
461
                double tam = getCadToolAdapter().getMapControl().getViewPort()
462
                                .toMapDistance(tolerance);
463 4448 fjp
464 4445 fjp
                Handler[] handlers = null;
465 4637 caballero
                rowselectedHandlers.clear();
466 4448 fjp
                for (int i = 0; i < selectedRow.size(); i++) {
467 4445 fjp
                        IRowEdited rowEd = (IRowEdited) selectedRow.get(i);
468 4448 fjp
469 4445 fjp
                        IFeature fea = (IFeature) rowEd.getLinkedRow();
470
                        handlers = fea.getGeometry().getHandlers(IGeometry.SELECTHANDLER);
471
                        // y miramos los handlers de cada entidad seleccionada
472
                        double min = tam;
473
                        // int hSel = -1;
474 4637 caballero
475 4445 fjp
                        for (int j = 0; j < handlers.length; j++) {
476
                                Point2D handlerPoint = handlers[j].getPoint();
477
                                double distance = auxPoint.distance(handlerPoint);
478
                                if (distance <= min) {
479
                                        min = distance;
480 4448 fjp
                                        // hSel = j;
481 4445 fjp
                                        selectedHandler.add(handlers[j]);
482 4637 caballero
                                        rowselectedHandlers.add(rowEd);
483 4445 fjp
                                }
484
                        }
485
                }
486
                PluginServices.getMDIManager().restoreCursor();
487 4448 fjp
488 4445 fjp
                int numHandlesSelected = selectedHandler.size();
489
490 4448 fjp
                /*
491
                 * if (numHandlesSelected == 0) selectFeatures(x,y);
492
                 */
493
494 4445 fjp
                return numHandlesSelected;
495
        }
496 4708 caballero
497
        public String getType() {
498
                return type;
499
        }
500
501
        public void setType(String type) {
502
                if (type.equals("S") || type.equals("s")){
503
                        this.type=PluginServices.getText(this,"simple");
504
                }else{
505
                        this.type = type;
506
                }
507
                pointsPolygon.clear();
508
        }
509 4892 caballero
510
        public String toString() {
511
                return "_selection";
512
        }
513 5908 caballero
        public void multipleSelection(boolean b) {
514
                multipleSelection=b;
515 5171 caballero
516 5908 caballero
        }
517
518 3832 caballero
}