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
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