theTuxRacer
theTuxRacer

Reputation: 13869

Select action from listbox, perform it on ticked values in GWT

This is my working code. What I was thinking of doing, is to add a few check boxes, and select an option from the List box. That option is applied to the ticked values, after clicking the apply button, preferably an async call. is that possible? I tried a few things like setting a listener for the button and then trying to get the ticked values, and run a query, or just output them.

public void onModuleLoad() {

    VerticalPanel panel = new VerticalPanel();
    Button applyButton = new Button("Apply");
    ListBox box = new ListBox(false);

    CheckBox cb = new CheckBox();
    TabPanel tabpanel = new TabPanel();
    FlowPanel flowpanel;

    flowpanel = new FlowPanel();
    flowpanel.setSize("500px", "250px");
    flowpanel.add(cb);

    tabpanel.add(flowpanel, "All");

    flowpanel = new FlowPanel();
    tabpanel.add(flowpanel, "Active");

    flowpanel = new FlowPanel();
    tabpanel.add(flowpanel, "In-active");

    tabpanel.selectTab(0);
    tabpanel.setSize("500px", "250px");

    box.addItem("Set Active");
    box.addItem("Set In-Active");


    panel.add(box);
    panel.add(applyButton);
    panel.add(tabpanel);

    RootPanel.get().add(panel);

}

Thanks.

Upvotes: 0

Views: 1137

Answers (1)

z00bs
z00bs

Reputation: 7498

Something like that? Gathering the selected option as well as the checked items to send those values for processing to the server (do that in the onClick method):

    public void onModuleLoad() {
        final CheckBox[] items = new CheckBox[3];
        items[0] = new CheckBox("item 1");
        items[1] = new CheckBox("item 2");
        items[2] = new CheckBox("item 3");
        final ListBox options = new ListBox();
        Button apply = new Button("apply");
        FlowPanel panel = new FlowPanel();
        panel.add(items[0]);
        panel.add(items[1]);
        panel.add(items[2]);
        panel.add(options);
        panel.add(apply);

        options.addItem("option 1");
        options.addItem("option 2");

        apply.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                String selectedOption = options.getValue(options.getSelectedIndex());
                System.out.print("Apply " + selectedOption
                        + " to: ");
                for (CheckBox checkBox : items) {
                    if (checkBox.getValue()) {
                        System.out.print(checkBox.getText());
                    }
                }
                System.out.println();
            }
        });

        RootPanel.get().add(panel);
    }

Or should the ListBox contain the action (have a look at the Command interface of GWT) which should be applied on the selected check boxes?

Upvotes: 1

Related Questions