Revision 23086 branches/v2_0_0_prep/extensions/extCAD/src/com/iver/cit/gvsig/gui/cad/tools/CopyCADTool.java

View differences:

CopyCADTool.java
45 45
import java.awt.event.InputEvent;
46 46
import java.awt.geom.Point2D;
47 47
import java.util.ArrayList;
48
import java.util.Iterator;
48 49

  
50
import org.gvsig.fmap.data.DataException;
49 51
import org.gvsig.fmap.data.ReadException;
52
import org.gvsig.fmap.data.feature.Feature;
53
import org.gvsig.fmap.data.feature.FeatureCollection;
54
import org.gvsig.fmap.data.feature.FeatureStore;
55
import org.gvsig.fmap.geom.Geometry;
50 56
import org.gvsig.fmap.geom.util.UtilFunctions;
51 57
import org.gvsig.fmap.mapcontext.ViewPort;
52 58

  
......
111 117
     * DOCUMENT ME!
112 118
     */
113 119
    public void selection() {
114
    	ArrayList selectedRow=getSelectedRows();
115
        if (selectedRow.size() == 0 && !CADExtension.getCADTool().getClass().getName().equals("com.iver.cit.gvsig.gui.cad.tools.SelectionCADTool")) {
120
    	FeatureCollection selection=null;
121
		try {
122
			selection = (FeatureCollection)getVLE().getFeatureStore().getSelection();
123
		} catch (ReadException e) {
124
			// TODO Auto-generated catch block
125
			e.printStackTrace();
126
		}//getSelectedRows();
127
        if (selection.size() == 0 && !CADExtension.getCADTool().getClass().getName().equals("com.iver.cit.gvsig.gui.cad.tools.SelectionCADTool")) {
116 128
            CADExtension.setCADTool("_selection",false);
117 129
            ((SelectionCADTool) CADExtension.getCADTool()).setNextTool(
118 130
                "_copy");
......
130 142
        CopyCADToolState actualState = (CopyCADToolState) _fsm.getPreviousState();
131 143
        String status = actualState.getName();
132 144
        VectorialLayerEdited vle=getVLE();
133
        VectorialEditableAdapter vea = vle.getVEA();
134
        ArrayList selectedRow=getSelectedRows();
145
        FeatureStore featureStore=null;
146
		try {
147
			featureStore = vle.getFeatureStore();
148
		} catch (ReadException e1) {
149
			// TODO Auto-generated catch block
150
			e1.printStackTrace();
151
		}
152
//        VectorialEditableAdapter vea = vle.getVEA();
153
        FeatureCollection selection=(FeatureCollection)featureStore.getSelection();
135 154
        ArrayList selectedRowAux=new ArrayList();
136 155
        if (status.equals("Copy.FirstPointToMove")) {
137 156
            firstPoint = new Point2D.Double(x, y);
138 157
        } else if (status.equals("Copy.SecondPointToMove")) {
139 158
            PluginServices.getMDIManager().setWaitCursor();
140 159
            lastPoint = new Point2D.Double(x, y);
141
            vea.startComplexRow();
160
            featureStore.getCommandsRecord().startComplex();
142 161

  
143 162
            try {
144
            	for (int i = 0; i < selectedRow.size(); i++) {
145
            		DefaultRowEdited dre=(DefaultRowEdited)selectedRow.get(i);
146
                    DefaultFeature fea = (DefaultFeature)dre.getLinkedRow()
147
                                                             .cloneRow();
163
            	Iterator iterator=selection.iterator();
164
            	while (iterator.hasNext()) {
165
					Feature feature = (Feature) iterator.next();
166

  
167
//				}
168
//            	for (int i = 0; i < selectedRow.size(); i++) {
169
//            		DefaultRowEdited dre=(DefaultRowEdited)selectedRow.get(i);
170
//                    DefaultFeature fea = (DefaultFeature)dre.getLinkedRow()
171
//                                                             .cloneRow();
148 172
                    // Movemos la geometr?a
149
                    UtilFunctions.moveGeom(fea.getGeometry(), lastPoint.getX() -
173
                    Geometry geometry=((Geometry)feature.getDefaultGeometry()).cloneGeometry();
174
					feature.editing();
175
                    UtilFunctions.moveGeom(geometry, lastPoint.getX() -
150 176
                            firstPoint.getX(), lastPoint.getY() - firstPoint.getY());
177
                    feature.setGeometry(featureStore.getDefaultFeatureType().getDefaultGeometry(),geometry);
178
                    featureStore.insert(feature);
151 179

  
152
                    int index=vea.addRow(fea,getName(),EditionEvent.GRAPHIC);
153
                    selectedRowAux.add(new DefaultRowEdited(fea,IRowEdited.STATUS_ADDED,vea.getInversedIndex(index)));
180
//                    int index=vea.addRow(fea,getName(),EditionEvent.GRAPHIC);
181
//                    selectedRowAux.add(new DefaultRowEdited(fea,IRowEdited.STATUS_ADDED,vea.getInversedIndex(index)));
154 182
                }
155
            	vea.endComplexRow(getName());
183
            	featureStore.getCommandsRecord().endComplex(getName());
156 184
                //clearSelection();
157 185
                //selectedRow.addAll(selectedRowAux);
158
                vle.setSelectionCache(VectorialLayerEdited.SAVEPREVIOUS, selectedRowAux);
159
            } catch (ValidateRowException e) {
160
            	NotificationManager.addError(e.getMessage(),e);
161
			} catch (ReadException e) {
186
//                vle.setSelectionCache(VectorialLayerEdited.SAVEPREVIOUS, selectedRowAux);
187
            } catch (ReadException e) {
162 188
				NotificationManager.addError(e.getMessage(),e);
189
			} catch (DataException e) {
190
				// TODO Auto-generated catch block
191
				e.printStackTrace();
163 192
			}
164 193
            PluginServices.getMDIManager().restoreCursor();
165 194
        }

Also available in: Unified diff