Hi Rob,
You need "{}" for the "row:all, column:1" portion. The reason is that we can
use UDL
to define id for the element in a UI template and we can the use id instead
of index to
reference them. Another advantage is that the UI module can handle the
challenge that
someone changes the position of a column.
For example, if we have the following UI module,
ui.StandardTable(uid: "GT", clocator: [id: "xyz"], ht: "tbody"){
TextBox(uid: "{header: first} as One", clocator: [tag: "th",
text: "one"], self: true)
TextBox(uid: "{header: 2} as Two", clocator: [tag: "th", text:
"two"], self: true)
TextBox(uid: "{header: last} as Three", clocator: [tag: "th",
text: "three"], self: true)
TextBox(uid: "{row: 1, column -> One} as A", clocator: [tag:
"div", class: "abc"])
Container(uid: "{row: 1, column -> Two} as B"){
InputBox(uid: "Input", clocator: [tag: "input", class: "123"])
Container(uid: "Some", clocator: [tag: "div", class: "someclass"]){
Span(uid: "Span", clocator: [tag: "span", class: "x"])
UrlLink(uid: "Link", clocator: [:])
}
}
TextBox(uid: "{row: 1, column -> Three} as Hello", clocator:
[tag: "td"], self: true)
}
We can use the IDs to reference the elements to be more expressive.
getText "GT.A"
keyType "GT.B.Input", input
click "GT.B.Some.Link"
Also, The TextBox A will be tied to the header "One". Even the header "One"
changes its position, the TextBox
will still stay valid. This is a feature requested by a user and a very cool
feature.
Thanks,
Jian
On Fri, May 14, 2010 at 11:02 AM, Rob Breidecker <[email protected]> wrote:
> Jian,
>
> I changed the "*" to "all".
>
> This is my new definition...
> ui.Form(uid: "myForm", clocator: [id: "myForm"]) {
> Container(uid: "myDetails", clocator: [tag: "div", id:
> "myDetails"]) {
> Table(uid: "myTable", clocator: [tag: "table", id: "myTable"]) {
> CheckBox(uid: "row:all, column:1", clocator: [tag: "td/input",
> type: "checkbox"])
> }
> }
> }
>
> The error related to "*" is now gone from my error message. However,
> I'm still getting the following error...
>
> line 1:0 no viable alternative at input 'row'
> java.lang.NullPointerException: Cannot invoke method getId() on null
> object
> at
> org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:
> 77)
> at
>
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:
> 45)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
> 40)
> at
> org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:
> 17)
> at
>
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
> 40)
> at
>
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:
> 54)
> at
>
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
> 121)
> at
>
> org.telluriumsource.ui.builder.UiObjectBuilder.internBuild(UiObjectBuilder.groovy:
> 86)
>
> From your reply, it sounds like I shouldn't be getting this error. Do
> you agree?
>
> Thanks,
> Rob
>
>
>
>
> On May 14, 9:53 am, Jian Fang <[email protected]> wrote:
> > Hi Rob,
> >
> > The reason is that 0.7.0 included UDL implementation and the uid should
> use
> > UDL syntax.
> > For example, in your case, your UI module should be defined as
> >
> > ui.Form(uid: "myForm", clocator: [id: "myForm"]) {
> > Container(uid: "myDetails", clocator: [tag: "div", id:
> > "myDetails"]) {
> > Table(uid: "myTable", clocator: [tag: "table", id: "myTable"]) {
> > CheckBox(uid: "{row:all, column:1}", clocator: [tag:
> "td/input",
> > type: "checkbox"])
> > }
> > }
> >
> > }
> >
> > More details here:
> http://code.google.com/p/aost/wiki/Tellurium070Update#Tellurium_UID_D...
> >
> > Thanks,
> >
> > Jian
> >
> >
> >
> > On Fri, May 14, 2010 at 10:46 AM, Rob Breidecker <[email protected]>
> wrote:
> > > I have just updated Tellurium from 0.7.0-rc2 to 0.7.0. I'm now getting
> > > a number of errors in my tests that are similar to this one.
> >
> > > This is my definition...
> > > ui.Form(uid: "myForm", clocator: [id: "myForm"]) {
> > > Container(uid: "myDetails", clocator: [tag: "div", id:
> > > "myDetails"]) {
> > > Table(uid: "myTable", clocator: [tag: "table", id: "myTable"]) {
> > > CheckBox(uid: "row:all, column:1}", clocator: [tag:
> "td/input",
> > > type: "checkbox"])
> > > }
> > > }
> > > }
> >
> > > When I run my test I get this error...
> > > line 1:4 no viable alternative at character '*'
> > > line 1:0 no viable alternative at input 'row'
> > > java.lang.NullPointerException: Cannot invoke method getId() on null
> > > object
> > > at
> > > org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:
> > > 77)
> > > at
> >
> > >
> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:
> > > 45)
> > > at
> >
> > >
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
> > > 40)
> > > at
> > >
> org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:
> > > 17)
> > > at
> >
> > >
> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:
> > > 40)
> > > at
> >
> > >
> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:
> > > 54)
> > > at
> >
> > >
> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:
> > > 121)
> > > at
> >
> > >
> org.telluriumsource.ui.builder.UiObjectBuilder.internBuild(UiObjectBuilder.groovy:
> > > 86)
> >
> > > I also get similar errors when using the word "all" on a List
> > > component. I read another post from about a month ago that said there
> > > are various words that are reserved and can't be used. If so, how do I
> > > specify Tables and Lists?
> >
> > > Best Regards,
> > > Rob
> >
> > > --
> > > 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]>
> <tellurium-users%[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]<tellurium-users%[email protected]>
> .
> > For more options, visit this group athttp://
> 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]<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.