I’m using SmartGWT 5.1-p20170201 on Firefox 26.0 on Windows
 
In my application I do the following:
This results in the scroll position being moved from the bottom to the top.
 
My desired behavior is that after I remove and replace a member the scroll position is preserved.
 
How can I do this?
 
Is there a way to disable this automatic scrolling to the top?
 
Is there a way to save and restore the scroll position?
 
Here is the sample code which demonstrates this behavior:
 
	To show the behavior do the following:
					In my application I do the following:
- Inside of a scrolling layout (setOverflow(Overflow.AUTO)) I add content by adding a layout and then adding members to that layout
 - I scroll to the bottom of the scrolling layout
 - Through user interaction I replace the member added above with a new member that is constructed in the same way.
 
This results in the scroll position being moved from the bottom to the top.
My desired behavior is that after I remove and replace a member the scroll position is preserved.
How can I do this?
Is there a way to disable this automatic scrolling to the top?
Is there a way to save and restore the scroll position?
Here is the sample code which demonstrates this behavior:
Code:
	
	[B]public[/B] [B]class[/B] ScrollPositionEntry [B]extends[/B] VLayout [B]implements[/B] EntryPoint {
    [B]private[/B] VLayout scrollingLayout;
    [B]private[/B] VLayout container;
 
    @Override
    [B]public[/B] [B]void[/B] onModuleLoad() {
 
        setDefaultLayoutAlign(Alignment.[B][I]CENTER[/I][/B]);
 
        scrollingLayout = scrollingLayout();
        addMember(scrollingLayout);
 
        container = container();
        scrollingLayout.addMember(container);
        addContentToContainer();
 
        addMember([B]new[/B] Button() {
            {
                setTitle("Replace");
                addClickHandler(event -> {
                    Canvas toReplace = scrollingLayout.getMember(0);
                    toReplace.destroy();
                    container = container();
                    scrollingLayout.addMember(container, 0);
                    addContentToContainer();
                });
            }
        });
        show();
    }
 
    [B]private[/B] VLayout container() {
        [B]return[/B] [B]new[/B] VLayout() {
            {
                setWidth(300);
                setAutoHeight();
                setBorder("6px solid red");
            }
        };
    }
 
    [B]private[/B] [B]void[/B] addContentToContainer() {
        Stream.[I]of[/I]("red", "green", "orange", "yellow", "purple")
              .forEach(color -> container.addMember([B]new[/B] HLayout() {
                  {
                      setBorder("6px solid " + color);
                      setWidth100();
                      setHeight(100);
                  }
              }));
    }
 
    [B]private[/B] VLayout scrollingLayout() {
        [B]return[/B] [B]new[/B] VLayout() {
            {
                setBorder("6px solid blue");
                setDefaultLayoutAlign(Alignment.[B][I]CENTER[/I][/B]);
                setHeight(400);
                setMargin(10);
                setMembersMargin(10);
                setOverflow(Overflow.[B][I]AUTO[/I][/B]);
                setVisible([B]true[/B]);
                setWidth(400);
            }
        };
    }
}
- Run the application
 - Scroll to the bottom of the scrolling layout
 - Click the “Replace” button
 - This will result in the scroll position to be set at the top
 
Comment