2

Is anybody know how to change Member of VPanel and HPanel dynamically. i am having problem while, changing member of vpanel in smart gwt.i want to change labels on click event. here is sample code please check it.

import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.VLayout;

public class TestingLayout {

    VLayout layout = new VLayout();
    VLayout layout2 = new VLayout();
    Label label1;
    Label label2;
    Button button1;
    Button button2;

    public TestingLayout() {

        label1 = new Label("Lbl 1");
        label2 = new Label("Lbl 2");

        button1 = new Button("Add Label 1 ");
        button2 = new Button("Add Label 2 ");


        button1.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                layout2.clear();
                layout2.addMember(label1);

            }
        });

        button2.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                layout2.clear();
                layout2.addMember(label2);

            }
        });

        layout.addMember(button1);
        layout.addMember(button2);
        layout2.addMember(label1);

        VLayout mainLayout = new  VLayout();
        mainLayout.addMember(layout);
        mainLayout.addMember(layout2);

        mainLayout.draw();

    }
}

please check it.

Dipesh Gandhi
  • 765
  • 1
  • 13
  • 31

2 Answers2

2

To change members of a layout , you need to use the removeMembers() and addMembers() methods. However to change text on a label you just have to use label.setContents("New COntent")

Abhijith
  • 2,592
  • 5
  • 18
  • 30
0

The thing I understood from the question is that , you want to show the second label on the click of button.

    VLayout vlayout = new VLayout();

    label1 = new Label("Lbl 1");
    label2 = new Label("Lbl 2");
    label1.setVisible(false);
    label1.setVisible(false);

    button1 = new Button("Add Label 1 ");
    button2 = new Button("Add Label 2 ");

    button1.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            label1.show();
            label1.setVisible(true);
        }
    });

     button2.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            label2.show();
            label2.setVisible(true);
        }
    });

    vLayout.addMember(label1);
    vLayout.addMember(label2);


    VLayout mainLayout = new  VLayout();
    mainLayout.addMember(layout);
    mainLayout.addMember(button1);
    mainLayout.addMember(button2);

    mainLayout.draw();
PVR
  • 2,534
  • 18
  • 38
  • thanks, but i want to change member of VPanel i don't want to show and hide it so for that i found the solution is remove member and than again add member. – Dipesh Gandhi Mar 22 '12 at 19:16
  • yes you are right But rather than removing members at run time is not preffereable. – PVR Mar 23 '12 at 09:32