Revision 183

View differences:

org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.spi/src/main/java/org/gvsig/tools/swing/spi/DynObjectValueField.java
33 33
 */
34 34
package org.gvsig.tools.swing.spi;
35 35

  
36
import org.gvsig.tools.ToolsLocator;
37
import org.gvsig.tools.dataTypes.DataTypes;
38
import org.gvsig.tools.dynobject.DynField;
36 39
import org.gvsig.tools.dynobject.DynObject;
40
import org.gvsig.tools.dynobject.DynObjectManager;
37 41
import org.gvsig.tools.swing.api.dynobject.dynfield.ValueField;
38 42

  
39 43
/**
......
44 48

  
45 49
    private final DynObject parent;
46 50
    private final String fieldName;
51
    private Boolean isDynObject;
47 52

  
48 53
    /**
49 54
     * @param dynObject
......
53 58
	parent = dynObject;
54 59
	this.fieldName = fieldName;
55 60
    }
61
    
62
    private boolean isDynObject(){
63
	if (this.isDynObject==null)
64
	    this.isDynObject = (  getDynField().getType() ==DataTypes.DYNOBJECT );
65
	return this.isDynObject;
66
    }
56 67

  
57 68
    /*
58 69
     * (non-Javadoc)
......
70 81
     * @see org.gvsig.tools.swing.api.dynobject.dynfield.ValueField#getValue()
71 82
     */
72 83
    public Object getValue() {
73
	return parent.getDynValue(fieldName);
84
	Object value = parent.getDynValue(fieldName);
85
	DynObjectManager dynManager = ToolsLocator.getDynObjectManager();
86
	if ((value==null)&& (isDynObject()))
87
	    return dynManager.createDynObject(dynManager.get(this.getDynField().getName()));
88
	return null;
74 89
    }
75 90

  
76 91
    /*
......
83 98
    public void setValue(Object value) {
84 99
	parent.setDynValue(fieldName, value);
85 100
    }
101
    
102
    public DynField getDynField(){
103
	return parent.getDynClass().getDynField(fieldName);
104
    }
86 105

  
87 106
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.spi/src/main/java/org/gvsig/tools/swing/spi/AbstractDynObjectComponent.java
78 78
	if (model == null)
79 79
	    try {
80 80
		this.model = ToolsSwingLocator.getDynObjectSwingManager()
81
			.createDynObjectModel(dynObject.getDynClass());
81
			.createDynObjectModel(this.dynObject.getDynClass());
82 82
	    } catch (ServiceException e) {
83 83
		// TODO Auto-generated catch block
84 84
		e.printStackTrace();

Also available in: Unified diff