GWT - GXT - How to get Radio Button Value?

user18714 picture user18714 · Dec 10, 2008 · Viewed 17.4k times · Source

I am using GWT (Google Web Toolkit) 1.5.3 et GXT (ExtJS) 1.2 I just want to create a simple form with some radio buttons generated after a RPC call, to get some values

Code:

final FormPanel simple = new FormPanel();
        simple.setFrame(true);
        simple.setWidth(350);
        simple.setHeaderVisible(false);

        DateField date = new DateField();
        date.setFieldLabel("Date");
        simple.add(date);

        ListFluxServiceAsync service = (ListFluxServiceAsync)
        GWT.create(ListFluxService.class);
        ServiceDefTarget target = (ServiceDefTarget)service;
        String url = GWT.getModuleBaseURL() + "flux.rpc";
        target.setServiceEntryPoint(url);

        final RadioGroup radioGroup = new RadioGroup("RadioGroup");
        radioGroup.setFieldLabel("Flux");
        radioGroup.setOrientation(Orientation.VERTICAL);

        service.getAllFlux(new AsyncCallback<List<FluxModelData>>(){

            public void onFailure(Throwable caught) {
                GWT.log("flux.rpx::onFailure",  caught);
                MessageBox.alert("what?", "onFailure :" + caught.getMessage(), null);
            }

            public void onSuccess(List<FluxModelData> result) {

                Iterator<FluxModelData> it = result.iterator();
                while ( it.hasNext() ){
                    FluxModelData fmd = it.next();
                    Radio radio = new Radio();
                    radio.setName("flux");
                    radio.setValue(true);
                    //radio.setRawValue("my very long value");
                    radio.setBoxLabel(fmd.getDescription());
                    radioGroup.add(radio);
                }

                simple.add(radioGroup);
                simple.layout(); //we need it to show the radio button

            }
        });



        simple.setButtonAlign(HorizontalAlignment.CENTER);

        Button button = new Button("Récupérer");
        button.addSelectionListener(new SelectionListener<ButtonEvent>(){

            @Override
            public void componentSelected(ButtonEvent ce) {

                MessageBox.alert("what?", radioGroup.getValue().getRawValue() , null);

            }});

        simple.addButton(button);


        RootPanel.get().add(simple);

My problem is I can't set/get radio button value. If I try the setRawValue("xxxxxxx"), I will get some null errors, while setting setValue(boolean) is working but I was expecting getting the radio value and not the label value.

Any Idea?

Answer

juanm picture juanm · May 5, 2011

Create radio

Radio radio = new Radio();  
radio.setBoxLabel("Si");  
radio.setValue(true);
radio.setValueAttribute("true");

Radio radio2 = new Radio();  
radio2.setBoxLabel("No");
radio2.setValueAttribute("false");

RadioGroup radioGroup = new RadioGroup();  
radioGroup.setFieldLabel("Afecto");  
radioGroup.add(radio);  
radioGroup.add(radio2);

get selected value

Boolean b = Boolean.parseBoolean(radioGroup.getValue().getValueAttribute());