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