Revision 2490 org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/dynobject/impl/DefaultDynField.java

View differences:

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