Revision 40355

View differences:

branches/v2_0_0_prep/extensions/extDalTransformEventTheme/src/org/gvsig/app/eventtheme/daltransform/EventThemeTransformPanel.java
47 47
import org.gvsig.daltransform.swing.impl.components.FeatureTypeCombo;
48 48
import org.gvsig.daltransform.swing.impl.components.NumericFeatureTypeAttributesCombo;
49 49
import org.gvsig.fmap.crs.CRSFactory;
50
import org.gvsig.fmap.dal.exception.DataException;
51
import org.gvsig.fmap.dal.feature.FeatureStore;
52
import org.gvsig.fmap.dal.feature.FeatureType;
50 53

  
51 54

  
52 55
/**
......
246 249
	 */
247 250
	public void updatePanel() {
248 251
		featureTypeCombo.addFeatureStore(getFeatureStore());
249
		actionPerformed(null);			
252
		if (nameText != null) {
253
		    nameText.setText(this.suggestedGeomFieldName(getFeatureStore()));
254
		}
255
		// actionPerformed(null);			
250 256
	}
251 257

  
252 258
	public IProjection getProjection() {
253 259
		return CRSFactory.getCRS(projectionText.getText());
254 260
	}
261
	
262
	private String suggestedGeomFieldName(FeatureStore fsto) {
263
	    
264
	    if (fsto == null) {
265
	        return "";
266
	    }
267
	    
268
	    FeatureType ft = null;
269
	    try {
270
            ft = fsto.getDefaultFeatureType();
271
        } catch (DataException e) {
272
            logger.info("Error: unable to suggest geom field name.", e);
273
            return "";
274
        }
275
	    
276
	    if (ft.getAttributeDescriptor("geometry") == null) {
277
	        return "geometry";
278
	    }
279
	    if (ft.getAttributeDescriptor("geom") == null) {
280
	        return "geom";
281
	    }
282
	    String aux = "";
283
	    int i = -1;
284
	    do {
285
	        i++;
286
	        aux = "geom" + i;
287
	    } while (ft.getAttributeDescriptor(aux) != null);
288
	    
289
	    return aux;
290
	}
255 291
}
branches/v2_0_0_prep/extensions/extDalTransformEventTheme/src/org/gvsig/app/eventtheme/dal/feature/EventThemeTransform.java
41 41
import org.gvsig.fmap.dal.feature.EditableFeatureType;
42 42
import org.gvsig.fmap.dal.feature.Feature;
43 43
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
44
import org.gvsig.fmap.dal.feature.FeatureSet;
44 45
import org.gvsig.fmap.dal.feature.FeatureStore;
45 46
import org.gvsig.fmap.dal.feature.FeatureType;
46 47
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
......
54 55
import org.gvsig.fmap.geom.type.GeometryTypeNotSupportedException;
55 56
import org.gvsig.fmap.geom.type.GeometryTypeNotValidException;
56 57
import org.gvsig.tools.ToolsLocator;
58
import org.gvsig.tools.dispose.DisposableIterator;
57 59
import org.gvsig.tools.dynobject.DynStruct;
58 60
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
59 61
import org.gvsig.tools.persistence.PersistenceManager;
......
127 129
        }
128 130

  
129 131
        try {
130
            envelope = geometryManager.createEnvelope(SUBTYPES.GEOM2D);
132
            /*
133
             * creates and updates envelope with all features
134
             */
135
            initEnvelope(store);
131 136
        } catch (CreateEnvelopeException e) {
132 137
            throw new org.gvsig.fmap.dal.feature.exception.CreateGeometryException(e);
133 138
        }
......
137 142
        setFeatureTypes(Arrays.asList(types), types[0]);
138 143
    }
139 144

  
145
    /**
146
     * creates and updates envelope with all features
147
     * 
148
     */
149
    private void initEnvelope(FeatureStore fsto) throws CreateEnvelopeException {
150
        
151
        envelope = geometryManager.createEnvelope(SUBTYPES.GEOM2D);
152
        FeatureSet fset = null;
153
        DisposableIterator diter = null;
154
        Feature feat = null;
155
        try {
156
            fset = fsto.getFeatureSet();
157
            diter = fset.fastIterator();
158
            while (diter.hasNext()) {
159
                feat = (Feature) diter.next();
160
                this.updateEnvelope(feat);
161
            }
162
            diter.dispose();
163
        } catch (Exception dex) {
164
            throw new CreateEnvelopeException(SUBTYPES.GEOM2D, dex);
165
        }
166
    }
167

  
140 168
    /* (non-Javadoc)
141 169
     * @see org.gvsig.fmap.dal.feature.FeatureStoreTransform#applyTransform(org.gvsig.fmap.dal.feature.Feature, org.gvsig.fmap.dal.feature.EditableFeature)
142 170
     */
143 171
    public void applyTransform(Feature source, EditableFeature target)
144 172
    throws DataException {
173
        
145 174
        this.copySourceToTarget(source, target);
146 175

  
147
        try {			
176
        try {           
148 177
            Point point = geometryManager.createPoint(
149 178
                new Double(source.get(xFieldName).toString()),
150 179
                new Double(source.get(yFieldName).toString()),
151 180
                SUBTYPES.GEOM2D);
152 181
            target.set(geometryFieldName, point);
153
            target.setDefaultGeometry(point);	
182
            target.setDefaultGeometry(point);   
154 183
            envelope.add(point.getEnvelope());
155 184
        } catch (CreateGeometryException e) {
156 185
            throw new org.gvsig.fmap.dal.feature.exception.CreateGeometryException(TYPES.POINT, SUBTYPES.GEOM2D, e);
157
        }		
186
        }       
187
        
158 188
    }
189
    
190
    /**
191
     * Used internally to initialize envelope
192
     * 
193
     */
194
    private void updateEnvelope(Feature feat) throws CreateGeometryException {
159 195

  
196
        Point point = geometryManager.createPoint(
197
            new Double(feat.get(xFieldName).toString()),
198
            new Double(feat.get(yFieldName).toString()),
199
            SUBTYPES.GEOM2D);
200
        envelope.add(point.getEnvelope());
201
    }
202

  
160 203
    /**
161 204
     * @param source
162 205
     * @param target

Also available in: Unified diff