Revision 2490 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dynobject/impl/DefaultDynField.java
DefaultDynField.java | ||
---|---|---|
52 | 52 |
import org.gvsig.tools.dynobject.exception.DynObjectValidateException; |
53 | 53 |
import org.gvsig.tools.exception.ListBaseException; |
54 | 54 |
import org.gvsig.tools.i18n.I18nManager; |
55 |
import org.gvsig.tools.util.GetItem; |
|
56 |
import org.gvsig.tools.util.Size; |
|
55 | 57 |
import org.slf4j.Logger; |
56 | 58 |
import org.slf4j.LoggerFactory; |
57 | 59 |
|
... | ... | |
385 | 387 |
} |
386 | 388 |
|
387 | 389 |
@Override |
388 |
public DynObjectValueItem[] getAvailableValues(DynObject self) {
|
|
390 |
public DynObjectValueItem[] getAvailableValues(DynObject context) {
|
|
389 | 391 |
if (this.availableValuesMethod != null) { |
390 |
DynObjectValueItem[] values; |
|
391 | 392 |
try { |
392 |
values = (DynObjectValueItem[]) this.availableValuesMethod.invoke(self, new Object[]{this}); |
|
393 |
Object values = this.availableValuesMethod.invoke(context, new Object[]{this}); |
|
394 |
if( values instanceof DynObjectValueItem[] ) { |
|
395 |
return (DynObjectValueItem[]) values; |
|
396 |
} |
|
397 |
if( values instanceof GetItem && values instanceof Size ) { |
|
398 |
DynObjectValueItem[] items = new DynObjectValueItem[((Size)values).size()]; |
|
399 |
for (int i = 0; i < items.length; i++) { |
|
400 |
items[i] = (DynObjectValueItem) ((GetItem)values).get(i); |
|
401 |
} |
|
402 |
return items; |
|
403 |
} |
|
393 | 404 |
} catch (DynMethodException ex) { |
394 | 405 |
return this.availableValues; |
395 | 406 |
} |
396 |
if (values != null) { |
|
397 |
return values; |
|
398 |
} |
|
399 | 407 |
} |
400 | 408 |
return this.availableValues; |
401 | 409 |
} |
Also available in: Unified diff