Hi Jade,

The getSelectedValue() only applies to the Selector object and thus, the
List object
does not have that method defined.

Now, I understand your use case and seems the UI changes after the user
clicks on the list.
I would suggest you define two UI objects, one for the List and one for the
Selector, thus,
you could click on the List and then select on the Selector. That means you
may need to
defined two UI modules, one for the UI before the list click and one for
after the click.

Tellurium does have an option object to represent two different runtime UIs,
but I am not
sure if it works for your case. More details here:

http://code.google.com/p/aost/wiki/UserGuide070UIObjects#Option

Thanks,

Jian

On Thu, Sep 2, 2010 at 12:01 PM, Jade <[email protected]> wrote:

> Hi Jian,
>
> The fix allows my form to validate but I'm running into problems
> manipulating the lists. I think that the problems that I'm having may
> be caused by Ajax since the select list is only selectable once the
> user clicks on it. I tried out the 0.8.0 version with the List().
>
> I get this error No signature of method:
> org.telluriumsource.ui.object.UiObject.getSelectedValue() is
> applicable for argument types: (org.telluriumsource.dsl.BaseDslContext
> $_getSelectedValue_closure32) values:
> [org.telluriumsource.dsl.BaseDslContext
> $_getselectedvalue_closur...@94b318]
>
> Here's the json for the college list:
>
> {"obj":{"uid":"college","locator":{"tag":"ol","attributes":
> {"id":"aspect_vireo_admin_View_field_college"}},"events":
> ["click"],"uiType":"List","separator":"li","metaData":
> {"id":"college","type":"UiObject"}},"key":"DegreeInformationForm.college"},
> {"obj":{"uid":"_all","locator":{},"uiType":"Container","metaData":
> {"id":"_all","index":
>
> {"value":"all","type":"VAL"},"type":"List"}},"key":"DegreeInformationForm.college._all"}
>
> and the module def:
>
> public void defineModule() {
>                ui.Form(uid: "DegreeInformationForm", clocator: [tag:
> "form",
> method: "post", action: "${postAction}", class: "ds-interactive-div
> view-form", id: "aspect_vireo_admin_View_div_view-form"]) {
>                         InputBox(uid: "committee_member_2", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_committee-member-2", type: "text"],
> respond: ["click"])
>                        InputBox(uid: "committee_member_1", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_committee-member-1", type: "text"],
> respond: ["click"])
>                        List(uid: "degree", clocator: [tag: "ol", id:
> "aspect_vireo_admin_View_field_degree"], separator: "li", respond:
> ["click"]) {
>                                Container(uid: "{all}", clocator: [:])
>                        }
>                         InputBox(uid: "school", clocator: [tag: "input",
> id:
> "aspect_vireo_admin_View_field_school", type: "text"], respond:
> ["click"])
>                        InputBox(uid: "committee_email", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_committee-email", type: "text"],
> respond: ["click"])
>                        InputBox(uid: "department", clocator: [tag: "input",
> id:
> "aspect_vireo_admin_View_field_department", type: "text"], respond:
> ["click"])
>                        List(uid: "college", clocator: [tag: "ol", id:
> "aspect_vireo_admin_View_field_college"], separator: "li", respond:
> ["click"]) {
>                                Container(uid: "{all}", clocator: [:])
>                        }
>                         InputBox(uid: "committee_member_3", clocator: [tag:
> "input", id:
> "aspect_vireo_admin_View_field_committee-member-3", type: "text"],
> respond: ["click"])
>                        InputBox(uid: "discipline", clocator: [tag: "input",
> id:
> "aspect_vireo_admin_View_field_discipline", type: "text"], respond:
> ["click"])
>                        InputBox(uid: "semester", clocator: [tag: "input",
> id:
> "aspect_vireo_admin_View_field_semester", type: "text"], respond:
> ["click"])
>                        List(uid: "degreeLevel", clocator: [tag: "ol", id:
> "aspect_vireo_admin_View_field_degreeLevel"], separator: "li",
> respond: ["click"]) {
>                                Container(uid: "{all}", clocator: [:])
>                        }
>                }
>
>
> I'm using the following jars:
>
> tellurium-core-0.8.0-20100831.183952-27.jar
> tellurium-udl-0.8.0-20100823.183714-19.jar
> selenium-server-1.0.1-te3.jar
>
> Do you know why the call to getSelectedValue() is failing for the
> list?
>
> BTW,  I changed the List to a Selector in the module definition (and
> the tag to "select" and the separator to "option" but then I get this
> exception:
>
> ERROR: Specified element is not a Select (has no options)
>
> The problem is the college is an ordered list until it's selected,
> then it becomes a select list.
>
> UI Module DegreeInformationForm:
>
> [{"obj":{"uid":"DegreeInformationForm","locator":
> {"tag":"form","attributes":{"id":"aspect_vireo_admin_View_div_view-
> form","action":"xmlui/vireo/admin/detail?update=true","class":"ds-
> interactive-div view-
> form","method":"post"}},"uiType":"Form","metaData":
> {"id":"DegreeInformationForm","type":"UiObject"}},{"obj":
> {"uid":"college","locator":{"tag":"ol","attributes":
> {"id":"aspect_vireo_admin_View_field_college"}},"events":
> ["click"],"uiType":"Selector","metaData":
> {"id":"college","type":"UiObject"}},"key":"DegreeInformationForm.college"}]
>
>
> -----
> Diagnosis Result for DegreeInformationForm.college
>
> -------------------------------------------------------
>
>        Matching count: 1
>
>        Match Elements:
>
>        --- Element 1 -->
>
> <ol alt="fakefield_18" title=""
> id="aspect_vireo_admin_View_field_college" class="fakeField fakeSelect
> ds-select-field college editable"><li class="hidden" id="">none</
> li><li class="selected" id="Information">Information</li><li
> class="hidden" id="Test College4">Test College4</li><li class="hidden"
> id="Test College3">Test College3</li><li class="hidden" id="Test
> College2">Test College2</li><li class="hidden" id="Test College1">Test
> College1</li><li class="hidden" id="CS">CS</li></ol>
>
> -------
> The diagnosis is finding the fake tag which matches what firefox sees
> but it doesn't match the page source:
>
> When I inspect the HTML for the select element in firefox, the list is
> hidden:
>
> <ol class="fakeField fakeSelect ds-select-field college editable"
> id="aspect_vireo_admin_View_field_college" title=""
> alt="fakefield_18"><li id="" class="hidden">none</li><li
> id="Information" class="selected">Information</li><li id="Test
> College4" class="hidden">Test College4</li><li id="Test College3"
> class="hidden">Test College3</li><li id="Test College2"
> class="hidden">Test College2</li><li id="Test College1"
> class="hidden">Test College1</li><li id="CS" class="hidden">CS</li></
> ol>
>
> However, the html page source for the same select list is:
>
> <select id="aspect_vireo_admin_View_field_college" class="ds-select-
> field college editable" name="college">
> <option value="">none</option>
> <option value="Information" selected="selected">Information</option>
> <option value="Test College4">Test College4</option>
> <option value="Test College3">Test College3</option>
> <option value="Test College2">Test College2</option>
>
> <option value="Test College1">Test College1</option>
> <option value="CS">CS</option>
> </select>
>
> Jade
>
> On Aug 31, 2:59 pm, Jade <[email protected]> wrote:
> > Thanks very much Jian for the quick fix! I'll try it out when I'm back
> > in the office on Thurs.
> >
> > Jade
> >
> > I'm having trouble finding the latest
> >
> > On Aug 31, 1:45 pm, Jian Fang <[email protected]> wrote:
> >
> > > Fixed on trunk/core, please update from our Maven repo or download it
> from:
> >
> > >http://maven.kungfuters.org/content/repositories/snapshots/org/tellur.
> ..
> >
> > > Please let us know if you have any further problems.
> >
> > > Thanks,
> >
> > > Jian
> >
> > > On Tue, Aug 31, 2010 at 2:24 PM, Jian Fang <[email protected]>
> wrote:
> > > > Look a bit closer and I see the problem here:
> >
> > > > "events":[Ljava.lang.String;@58f41393
> >
> > > > Seems the toJSON method in the List object has a bug there. I will
> fix it
> > > > soon.
> >
> > > > Thanks again,
> >
> > > > Jian
> >
> > > > On Tue, Aug 31, 2010 at 1:49 PM, Jian Fang <[email protected]
> >wrote:
> >
> > > >> But the json parse error is an issue there, I will look into it.
> >
> > > >> Thanks for reporting this.
> >
> > > >> Jian
> >
> > > >> On Tue, Aug 31, 2010 at 1:25 PM, Jian Fang <
> [email protected]>wrote:
> >
> > > >>> Hi Jade,
> >
> > > >>> Why you need to use List for a selector? Shouldn't the Selector
> object
> > > >>> satisfy your need?
> > > >>> That is to say, your UI module could be like
> >
> > > >>>                 ui.Form(uid: "DegreeInformationForm", clocator:
> [tag:
> > > >>> "form", method: "post", action: "${postAction}", class:
> > > >>> "ds-interactive-divview-form", id:
> "aspect_vireo_admin_View_div_view-form"])
> > > >>> {
> > > >>>              Selector(uid: "degree", clocator:
> > > >>> [id:"aspect_vireo_admin_View_field_degree" ]
> > > >>> }
> >
> > > >>> Then you could call selectByLabel, selectByValue, or selectByIndex.
> >
> > > >>> Thanks,
> >
> > > >>> Jian
> >
> > > >>> On Mon, Aug 30, 2010 at 12:24 PM, Jade <[email protected]> wrote:
> >
> > > >>>> Hi,
> >
> > > >>>> We have an ajax powered list that is clickable. In order to
> manipulate
> > > >>>> the list, the user first selects it. This replaces the "fake HTML"
> > > >>>> with select list HTML.
> >
> > > >>>> However, the list has a json parse error until I remove the
> respond:
> > > >>>> ["click"] option. But, then the list cannot be clicked and
> manipulated
> > > >>>> in the code.
> >
> > > >>>> Here's the module as I'd like to define it:
> > > >>>> String postAction = "\"${VireoTestConfig.getWebApp()}/vireo/admin/
> > > >>>> detail?update=true\""
> >
> > > >>>>        public void defineModule() {
> > > >>>>                ui.Form(uid: "DegreeInformationForm", clocator:
> [tag:
> > > >>>> "form",
> > > >>>> method: "post", action: "${postAction}", class:
> "ds-interactive-div
> > > >>>> view-form", id: "aspect_vireo_admin_View_div_view-form"]) {
> > > >>>>                        List(uid: "degree", clocator: [tag:
> "select", id:
> > > >>>> "aspect_vireo_admin_View_field_degree"], separator: "option",
> respond:
> > > >>>> ["click"]) {
> > > >>>>                                Container(uid: "{all}", clocator:
> [:])
> > > >>>>                        }
> > > >>>>                }
> >
> > > >>>> ERROR: Command execution failure. Please search the Tellurium User
> > > >>>> Group athttp://groups.google.com/group/tellurium-usersforerror
> > > >>>> details from the log window.  The error message is: JSON.parse
> >
> > > >>>>
> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExcepti
> onOrError(HttpCommandProcessor.java:
> > > >>>> 97)
> >
> > > >>>>
> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcess
> or.java:
> > > >>>> 91)
> > > >>>>
>  sun.reflect.GeneratedMethodAccessor62.invoke(Unknown
> > > >>>> Source)
> >
> > > >>>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> l.java:
> > > >>>> 43)
> > > >>>>                java.lang.reflect.Method.invoke(Method.java:616)
> > > >>>>
>  org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite
> > > >>>>
> $PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:
> > > >>>> 229)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethod
> Site.java:
> > > >>>> 52)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite
> .java:
> > > >>>> 129)
> >
> > > >>>>
> org.telluriumsource.component.connector.CustomSelenium.getBundleResponse(Cu
> stomSelenium.groovy:
> > > >>>> 257)
> > > >>>>
>  sun.reflect.GeneratedMethodAccessor61.invoke(Unknown
> > > >>>> Source)
> >
> > > >>>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> l.java:
> > > >>>> 43)
> > > >>>>                java.lang.reflect.Method.invoke(Method.java:616)
> >
> > > >>>>
>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
> > > >>>> 88)
> >
> > > >>>>  groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
> >
> > > >>>>
> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:
> > > >>>> 149)
> > > >>>>
>  groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown
> > > >>>> Source)
> >
> > > >>>>
> org.telluriumsource.component.dispatch.Dispatcher.methodMissing(Dispatcher.
> groovy:
> > > >>>> 56)
> > > >>>>
>  sun.reflect.GeneratedMethodAccessor60.invoke(Unknown
> > > >>>> Source)
> >
> > > >>>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> l.java:
> > > >>>> 43)
> > > >>>>                java.lang.reflect.Method.invoke(Method.java:616)
> >
> > > >>>>
>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
> > > >>>> 88)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:
> > > >>>> 813)
> >
> > > >>>>
>  groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:
> > > >>>> 1107)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSi
> te.java:
> > > >>>> 39)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite
> .java:
> > > >>>> 129)
> >
> > > >>>>
> org.telluriumsource.component.bundle.BundleProcessor.passBundledCommand(Bun
> dleProcessor.groovy:
> > > >>>> 322)
> > > >>>>
>  org.telluriumsource.component.bundle.BundleProcessor
> > > >>>> $passBundledCommand.callCurrent(Unknown Source)
> >
> > > >>>>
> org.telluriumsource.component.bundle.BundleProcessor.process(BundleProcesso
> r.groovy:
> > > >>>> 414)
> > > >>>>
>  org.telluriumsource.component.bundle.BundleProcessor
> > > >>>> $process.callCurrent(Unknown Source)
> >
> > > >>>>
> org.telluriumsource.component.bundle.BundleProcessor.methodMissing(BundlePr
> ocessor.groovy:
> > > >>>> 427)
> > > >>>>
>  sun.reflect.GeneratedMethodAccessor54.invoke(Unknown
> > > >>>> Source)
> >
> > > >>>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> l.java:
> > > >>>> 43)
> > > >>>>                java.lang.reflect.Method.invoke(Method.java:616)
> >
> > > >>>>
>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
> > > >>>> 88)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:
> > > >>>> 813)
> >
> > > >>>>
>  groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:
> > > >>>> 1107)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
> >
> > > >>>>
> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:
> > > >>>> 149)
> > > >>>>
>  groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown
> > > >>>> Source)
> >
> > > >>>>
> org.telluriumsource.component.custom.Extension.methodMissing(Extension.groo
> vy:
> > > >>>> 20)
> > > >>>>                sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > > >>>> Method)
> >
> > > >>>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > > >>>> 57)
> >
> > > >>>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> l.java:
> > > >>>> 43)
> > > >>>>                java.lang.reflect.Method.invoke(Method.java:616)
> >
> > > >>>>
>  org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
> > > >>>> 88)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:
> > > >>>> 813)
> >
> > > >>>>
>  groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java:
> > > >>>> 1107)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060)
> >
> > > >>>>  groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSi
> te.java:
> > > >>>> 39)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArra
> y.java:
> > > >>>> 40)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite
> .java:
> > > >>>> 117)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite
> .java:
> > > >>>> 129)
> >
> > > >>>>
> org.telluriumsource.dsl.BaseDslContext.getUiModuleValidationResult(BaseDslC
> ontext.groovy:
> > > >>>> 1417)
> > > >>>>                org.telluriumsource.dsl.BaseDslContext
> > > >>>> $getUiModuleValidationResult.callCurrent(Unknown Source)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallS
> iteArray.java:
> > > >>>> 44)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractC
> allSite.java:
> > > >>>> 143)
> >
> > > >>>>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractC
> allSite.java:
> > > >>>> 151)
> >
> > > >>>>
> org.telluriumsource.dsl.BaseDslContext.validate(BaseDslContext.groovy:
> > > >>>> 1404)
> > > >>>>                sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> > > >>>> Method)
> >
> > > >>>>
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> > > >>>> 57)
> >
> > > >>>>
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp
> l.java:
> >
> > ...
> >
> > read more ยป
>
> --
> You received this message because you are subscribed to the Google Groups
> "tellurium-users" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<tellurium-users%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/tellurium-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"tellurium-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/tellurium-users?hl=en.

Reply via email to