Revision 44262 trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/DefaultFeatureTypeDefinitionsManager.java

View differences:

DefaultFeatureTypeDefinitionsManager.java
19 19
import org.gvsig.andami.PluginsManager;
20 20
import org.gvsig.fmap.dal.DataServerExplorer;
21 21
import org.gvsig.fmap.dal.DataServerExplorer.DataResource;
22
import org.gvsig.fmap.dal.DataStoreParameters;
23
import org.gvsig.fmap.dal.complements.RelatedFeatures;
22 24
import org.gvsig.fmap.dal.exception.DataException;
23 25
import org.gvsig.fmap.dal.feature.AbstractFeatureTypeDefinitionsManager;
24 26
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
......
28 30
import org.gvsig.tools.ToolsLocator;
29 31
import org.gvsig.tools.dataTypes.DataTypes;
30 32
import org.gvsig.tools.dispose.DisposeUtils;
33
import org.gvsig.tools.dynform.JDynForm;
34
import static org.gvsig.tools.dynform.JDynForm.USE_PLAIN;
35
import org.gvsig.tools.dynform.spi.DynFormSPIManager;
36
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_LAYOUTMODE;
37
import static org.gvsig.tools.dynform.spi.DynFormSPIManager.TAG_DYNFORM_LAYOUTMODE_VALUE_PLAIN;
31 38
import org.gvsig.tools.dynobject.DynClass;
32 39
import org.gvsig.tools.dynobject.DynClass_v2;
33 40
import org.gvsig.tools.dynobject.DynField_v2;
34 41
import org.gvsig.tools.dynobject.DynObjectManager;
35 42
import org.gvsig.tools.dynobject.Tags;
43
import org.gvsig.tools.util.HasAFile;
36 44
import org.slf4j.Logger;
37 45
import org.slf4j.LoggerFactory;
38 46

  
......
258 266
        DynObjectManager manager = ToolsLocator.getDynObjectManager();
259 267
        DynClass_v2 definition = (DynClass_v2) manager.createCopy(featureType);
260 268

  
261
        DataServerExplorer explorer=null;
269
        File path = null;
262 270
        if( store!=null ) {
263 271
            try {
264 272
                String label = featureType.getLabel();
......
267 275
                } else {
268 276
                    definition.setLabel(label);
269 277
                }
270
                explorer = store.getExplorer();
278
                DataStoreParameters params = store.getParameters();
279
                if( params instanceof HasAFile ) {
280
                    File f = ((HasAFile)params).getFile();
281
                    if( f!=null ) {
282
                        path = f.getParentFile();
283
                    }
284
                }
271 285
            } catch (Exception ex) {
272 286
            }
273 287
        }
288
        boolean calculateLayout = true;
289
        if( featureType.getTags().has(TAG_DYNFORM_LAYOUTMODE) ) {
290
            calculateLayout = false;
291
        }
274 292
        for (FeatureAttributeDescriptor descriptor : featureType) {
275 293
            DynField_v2 definitionField = (DynField_v2) definition.getDynField(descriptor.getName());
276 294
            String profileName = descriptor.getDataProfileName();
277 295
            if( !StringUtils.isBlank(profileName) ) {
278 296
                definitionField.setSubtype(profileName);
279 297
            }
280
            if( explorer!=null && definitionField.getType()==DataTypes.FILE ) {
298
            if( path!=null && definitionField.getType()==DataTypes.FILE ) {
281 299
                Tags tags = definitionField.getTags();
282 300
                if (!tags.has("path")) {    
283
                    try {
284
                        File f = explorer.getResourcePath(store, "dat");
285
                        if( f!=null ) {
286
                            tags.set("path", f.getParentFile());
287
                        }
288
                    } catch (DataException ex) {
289
                    }
301
                    tags.set("path", path);
290 302
                }
291 303
            }
292

  
304
            if( calculateLayout ) {
305
                RelatedFeatures complement = (RelatedFeatures) ToolsLocator.getComplementsManager().get(
306
                        RelatedFeatures.COMPLEMENT_MANE, descriptor
307
                );
308
                if( complement.isRelatedFeatures() ) {
309
                    definition.getTags().set(TAG_DYNFORM_LAYOUTMODE, JDynForm.USE_TABS);
310
                    definitionField.setGroup(descriptor.getLabel());
311
                }
312
            }
293 313
        }
294 314
        return definition;
295 315
    }

Also available in: Unified diff