It doesn't look like the list button in your example contains any data. In
order to bind to the selected item, you need to populate the list data. For
example:
<ListButton listData="['A', 'B', C', 'D']"/ selectedItemKey="foo">
When you call load(), the context should contain something like this:
{ foo: "B"
}
If you need to translate the value from the context to one of the values in the
list data, you can use a bind mapping. See:
http://pivot.apache.org/1.5.1/docs/api/org/apache/pivot/wtk/ListView.ItemBindMapping.html
You can apply this to the list button via the setSelectedItemBindMapping()
method.
G
On Oct 28, 2010, at 10:01 PM, [email protected] wrote:
> Hi Greg,
>
> For you more information.
> I have a map ,when I user form.load,I would show set the value in list
> button.
>
>
> (Embedded image moved to file: pic30333.gif)
> (See attached file: data_binding.wtkx)(See attached file: DataBinding.java)
>
> Best regards,
> Ken Jiang
>
> *******************************************
> Murata Electronics Trading (Shenzhen) Co.,Ltd
> Tel:86-755-82847251
> E-mail:[email protected]
> *******************************************
>
>
>
> From: Greg Brown <[email protected]>
>
>
> To: [email protected]
>
>
> Date: 10/29/2010 12:08 AM
>
>
> Subject: Re: [Inquires]Data binding for list button.
>
>
>
>
>
>
>
> Still not quite sure what you are trying to do. You can't currently use a
> ListButton to enter text, though "combo box"-like functionality may be
> implemented for Pivot 2.1.
>
> But perhaps I am misunderstanding the use case. Can you provide a little
> more detail?
>
> On Oct 28, 2010, at 11:34 AM, [email protected] wrote:
>
>> Hi Greg,
>>
>> I would like to let list button as TextInput which can bind the Map.
>> For Example,
>> I have simple POJO class.
>> I would like to let list button bind the g2102,(for textIput ,I can easy
> to
>> use textKey to bind g2101)
>> and user form.load to reflect data and set setButtonData and show in
>> screen.
>> ,how can I do that list textInput.
>> public class GWU002T1 {
>> private String G2101;
>> private String G2102 ;
>> }
>> Json map is {g2101:"1", g2102:"2")
>> Best regards,
>> Ken Jiang
>>
>> *******************************************
>> Murata Electronics Trading (Shenzhen) Co.,Ltd
>> Tel:86-755-82847251
>> E-mail:[email protected]
>> *******************************************
>>
>>
>>
>> From: Greg Brown <[email protected]>
>
>>
>> To: [email protected]
>
>>
>> Date: 10/28/2010 11:23 PM
>
>>
>> Subject: Re: [Inquires]Data binding for list button.
>
>>
>>
>>
>>
>>
>>
>> Simply changing the selectedItemKey to "id" is not going to work, since
> the
>> list button doesn't contain any items that would match the "id" property
> of
>> the IM account.
>>
>> Can you describe more specifically what you are trying to do?
>>
>>
>> On Oct 28, 2010, at 10:58 AM, [email protected] wrote:
>>
>>> Hi Greg,
>>>
>>> Yes.I use the example data-binding from pivot-tutorials.just change the
>>> XML.my pivot version is 1.5.1
>>>
>>
> |--------------------------------------------------------------------------|
>
>>
>>> |package testing;
>> |
>>> |
>> |
>>> |import java.io.InputStream;
>> |
>>> |
>> |
>>> |import org.apache.pivot.beans.BeanAdapter;
>> |
>>> |import org.apache.pivot.collections.Map;
>> |
>>> |import org.apache.pivot.json.JSONSerializer;
>> |
>>> |import org.apache.pivot.wtk.Application;
>> |
>>> |import org.apache.pivot.wtk.Button;
>> |
>>> |import org.apache.pivot.wtk.ButtonPressListener;
>> |
>>> |import org.apache.pivot.wtk.DesktopApplicationContext;
>> |
>>> |import org.apache.pivot.wtk.Display;
>> |
>>> |import org.apache.pivot.wtk.Form;
>> |
>>> |import org.apache.pivot.wtk.Label;
>> |
>>> |import org.apache.pivot.wtk.PushButton;
>> |
>>> |import org.apache.pivot.wtk.Window;
>> |
>>> |import org.apache.pivot.wtkx.WTKXSerializer;
>> |
>>> |
>> |
>>> |public class DataBinding implements Application {
>> |
>>> | private Window window = null;
>> |
>>> | private Form form = null;
>> |
>>> | private PushButton loadJavaButton = null;
>> |
>>> | private PushButton loadJSONButton = null;
>> |
>>> | private PushButton clearButton = null;
>> |
>>> | private Label sourceLabel = null;
>> |
>>> |
>> |
>>> | private static final Contact CONTACT = new Contact("101", "Joe
>> User", |
>>> | new Address("123 Main St.", "Cambridge", "MA", "02142"),
>> |
>>> | "(617) 555-1234", "[email protected]",
>> |
>>> | new IMAccount("juser1234", "AIM"));
>> |
>>> |
>> |
>>> | @Override
>> |
>>> | public void startup(Display display, Map<String, String>
> properties)
>> |
>>> | throws Exception {
>> |
>>> | WTKXSerializer wtkxSerializer = new WTKXSerializer();
>> |
>>> | window = (Window)wtkxSerializer.readObject(this,
>> |
>>> |"data_binding.wtkx");
>> |
>>> | form = (Form)wtkxSerializer.get("form");
>> |
>>> | loadJavaButton =
>> (PushButton)wtkxSerializer.get("loadJavaButton");|
>>> | loadJSONButton =
>> (PushButton)wtkxSerializer.get("loadJSONButton");|
>>> | clearButton = (PushButton)wtkxSerializer.get("clearButton");
>> |
>>> | sourceLabel = (Label)wtkxSerializer.get("sourceLabel");
>> |
>>> |
>> |
>>> | loadJavaButton.getButtonPressListeners().add(new
>> |
>>> |ButtonPressListener() {
>> |
>>> | @Override
>> |
>>> | public void buttonPressed(Button button) {
>> |
>>> | form.load(new BeanAdapter(CONTACT));
>> |
>>> | sourceLabel.setText("Java");
>> |
>>> | }
>> |
>>> | });
>> |
>>>
>>
> |--------------------------------------------------------------------------|
>
>>
>>>
>>>
>>>
>>> private static final Contact CONTACT = new Contact("101", "Joe User",
>>> new Address("123 Main St.", "Cambridge", "MA", "02142"),
>>> "(617) 555-1234", "[email protected]",
>>> new IMAccount("juser1234", "AIM"));
>>> Best regards,
>>> Ken Jiang
>>>
>>> *******************************************
>>> Murata Electronics Trading (Shenzhen) Co.,Ltd
>>> Tel:86-755-82847251
>>> E-mail:[email protected]
>>> *******************************************
>>>
>>>
>>>
>>> From: Greg Brown <[email protected]>
>>
>>>
>>> To: [email protected]
>>
>>>
>>> Date: 10/28/2010 07:58 PM
>>
>>>
>>> Subject: Re: [Inquires]Data binding for list button.
>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> Is there a value with a key of "id" in your bind context?
>>>
>>> On Oct 28, 2010, at 6:33 AM, [email protected] wrote:
>>>
>>>>
>>>> Hi All,
>>>>
>>>> I would like use Data binding for list button for simple data.but it
>>>> doesn't work.
>>>>
>>>> I just change this segment,but can't load the id to listButton.
>>>>
>>>> <ListButton selectedItemKey="imAccount.type"
>>>>
>>>> listData="['AIM', 'Jabber', 'Yahoo']"/>
>>>> from
>>>>
>>>>
>>>>
>>>> <ListButton selectedItemKey="id"/>
>>>>
>>>
>>
> |--------------------------------------------------------------------------|
>
>>
>>>
>>>> |Form wtkx:id="form" styles="{showFlagIcons:false}">
>>> |
>>>> | <sections>
>>> |
>>>> | <Form.Section>
>>> |
>>>> | <Label wtkx:id="sourceLabel"
>>> |
>>>> |Form.label="Source" styles="{font:{italic:true}}"/>
>>> |
>>>> |
>>> |
>>>> | <Label Form.label="ID" textKey="id"/>
>>> |
>>>> | <TextInput Form.label="Name"
>>> |
>>>> |textKey="name"/>
>>> |
>>>> |
>>> |
>>>> | <BoxPane Form.label="Address"
>>> |
>>>> |orientation="vertical">
>>> |
>>>> | <TextInput textKey="name"
>>> |
>>>> |prompt="Street"/>
>>> |
>>>> | <BoxPane>
>>> |
>>>> | <TextInput
>>> textKey="address.city" |
>>>> |prompt="City"/>
>>> |
>>>> | <TextInput
>>> textKey="address.state"|
>>>> |textSize="6" prompt="State"/>
>>> |
>>>> | <TextInput
>> textKey="address.zip"
>>> |
>>>> |textSize="6" prompt="Zip"/>
>>> |
>>>> | </BoxPane>
>>> |
>>>> | </BoxPane>
>>> |
>>>> |
>>> |
>>>> | <TextInput Form.label="Phone"
>>> |
>>>> |textKey="phoneNumber"/>
>>> |
>>>> | <TextInput Form.label="Email"
>>> |
>>>> |textKey="emailAddress"/>
>>> |
>>>> |
>>> |
>>>> | <BoxPane Form.label="IM">
>>> |
>>>> | <TextInput
> textKey="imAccount.id"/>
>>> |
>>>> | <ListButton selectedItemKey="id"
>>> |
>>>> | />
>>> |
>>>> | </BoxPane>
>>> |
>>>> | </Form.Section>
>>> |
>>>> | </sections>
>>> |
>>>> | </Form>
>>> |
>>>>
>>>
>>
> |--------------------------------------------------------------------------|
>
>>
>>>
>>>>
>>>>
>>>> Best regards,
>>>> Ken Jiang
>>>>
>>>> *******************************************
>>>> Murata Electronics Trading (Shenzhen) Co.,Ltd
>>>> Tel:86-755-82847251
>>>> E-mail:[email protected]
>>>> *******************************************
>>>>
>>>
>>>
>>>
>>
>>
>>
>
> <pic30333.gif><data_binding.wtkx><DataBinding.java>