This sounds quite reasonable to me. I just added issue 4489 to track this.
I've marked it for the 2.0.1 update, as it seems pretty obvious, but there's
a small probability that if I run into some kind of snag it will get punted.

On Tue, Jan 12, 2010 at 4:56 PM, Gabriel Guerrero <
gabrieldavidguerr...@gmail.com> wrote:

> Hi guys,
>
> First I have to say great work in the new layout system I’m so amazed
> how simple was solved and how good it is .
>
>  My request is to add a setSplitPosition method for the
> SplitLayoutPanel class, I did not find an issue for this, so I'm
> asking for it here first . The method as you could imagine is to
> change the position of the splitter after the split panel was created,
> also will be nice if there is an option to animate this.
>
> The following is a proposed solution for this issue, this is how I
> solved in my code, is also a good work around for anyone needing this
> now.
>
> package com.test.client;
>
> import com.google.gwt.user.client.ui.SplitLayoutPanel;
> import com.google.gwt.user.client.ui.Widget;
>
> public class MySplitLayoutPanel extends SplitLayoutPanel{
>
>        public void setSplitPosition(Widget widgetBeforeTheSplitter, double
> size, boolean animate){
>                LayoutData layout =  (LayoutData)
> widgetBeforeTheSplitter.getLayoutData();
>                layout.oldSize = layout.size;
>                layout.size=size;
>                if (animate)
>                        animate(500);
>                else
>                        forceLayout();
>        }
> }
>
> So you'll just need to add that method to the SplitLayoutPanel class.
>
>
> Also If you want to test it . Here is the class I used to test it
>
> package com.test.client;
>
> import com.google.gwt.core.client.EntryPoint;
> import com.google.gwt.dom.client.Style.Unit;
> import com.google.gwt.event.dom.client.ClickEvent;
> import com.google.gwt.event.dom.client.ClickHandler;
> import com.google.gwt.user.client.ui.Button;
> import com.google.gwt.user.client.ui.DockLayoutPanel;
> import com.google.gwt.user.client.ui.HTML;
> import com.google.gwt.user.client.ui.RootLayoutPanel;
> import com.google.gwt.user.client.ui.SimplePanel;
> import com.google.gwt.user.client.ui.SplitLayoutPanel;
> import com.google.gwt.user.client.ui.TabLayoutPanel;
>
> /**
>  * Entry point classes define <code>onModuleLoad()</code>.
>  */
> public class GWTTest implements EntryPoint {
>        /**
>         * This is the entry point method.
>         */
>        public void onModuleLoad() {
>
>                final MySplitLayoutPanel p2 = new MySplitLayoutPanel();
>
>                final HTML html = new HTML("<div
> style='background-color:green'>ss</
> div>");
>                final HTML html2 = new HTML("<div
> style='background-color:blue'>ss</
> div>");
>
>                p2.addSouth(html, 0);//This is initially hidden and it will
> be made
> visible
>                // when the expand button is click
>
>                p2.add(html2);
>
>                TabLayoutPanel tabPanel = new TabLayoutPanel(2.8, Unit.EM);
>                tabPanel.add(new HTML("this content"), "this");
>                tabPanel.add(p2, "that");
>                tabPanel.add(new HTML("the other content"), "the other");
>
>                SplitLayoutPanel p = new SplitLayoutPanel();
>                p.addWest(new HTML("navigation"), 128);
>                p.add(tabPanel);
>
>                Button button = new Button("Expand");
>                button.addClickHandler(new ClickHandler() {
>
>                        public void onClick(ClickEvent event) {
>                                p2.setSplitPosition(html, 128,true);
>                        }
>                });
>
>                SimplePanel simplePanel = new SimplePanel();
>                simplePanel.setWidget(button);
>
>                DockLayoutPanel appPanel = new DockLayoutPanel(Unit.EM);
>                appPanel.addNorth(simplePanel, 2);
>                appPanel.addSouth(new HTML("footer"), 2);
>                appPanel.add(p);
>                RootLayoutPanel.get().add(appPanel);
>        }
> }
>
>
>
> Im not sure if it was the best way to solved, but is the only solution
> I could find without changing the original class
>
> --
> http://groups.google.com/group/Google-Web-Toolkit-Contributors
>
-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to