gwtdeferred-executiongwt-tablayoutpanel

GWT - Implement programmatic tab selection of a TabLayoutPanel and then scroll to a particular element contained in the tab?


I have a TabLayout panel with 2 tabs. I would like to programmatically select the 2nd tab and then scroll to a particular element within the tab. This is how my code looks like:

public void scrollToTextArea(final String textArea)
{
    TabPanel.selectTab(1); //tab selection
    textArea.getElement().scrollIntoView(); //scroll to text area field
}

I tried using a deferred command to run the scroll portion, but was still unable to get the right display.

Is there a specific way to implement this functionality?


Solution

  • This worked:

    public void scrollToTextArea(final String textArea)
    {
        TabPanel.selectTab(1); //tab selection
        Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand()
            {
                public void execute()
                {
                    textArea.getElement().scrollIntoView();
                }
            });
    }