Sorry I missed the interface
>>>> CODE
package com.google.gwt.user.client.ui;
import com.google.gwt.event.dom.client.MouseMoveEvent;
public interface SplitterEventHandler
{
public void onMouseMove(MouseMoveEvent event);
}
>>> CODE
On Oct 30, 1:40 pm, "www.netthreads.co.uk"
<[email protected]> wrote:
> I too have been wrestling with this. It's not quite there yet but I
> sat down after reading your post and I have got a bit further.
>
> It is possible to create a composite for "HorizontalSplitPanel" and
> set a listener to watch what the mouse is doing. I defined this below
> and a listener interface which the owner view can implement.
>
> >>>CODE
>
> package com.google.gwt.user.client.ui;
>
> import com.google.gwt.event.dom.client.MouseMoveEvent;
> import com.google.gwt.event.dom.client.MouseMoveHandler;
> import com.google.gwt.user.client.Element;
>
> public class HorizontalSplitPanelEx extends Composite
> {
> private SplitterEventHandler handler = null;
> privateHorizontalSplitPanelhorizontalSplitPanel= null;
> private Element splitElement = null;
>
> public Element getSplitElement()
> {
> return splitElement;
> }
>
> public HorizontalSplitPanelEx(SplitterEventHandler handler)
> {
> this.handler = handler;
>
> horizontalSplitPanel= newHorizontalSplitPanel();
>
> initWidget(horizontalSplitPanel);
>
> splitElement =horizontalSplitPanel.getSplitElement();
> }
>
> /**
> * Attach mouse listener
> */
> @Override
> protected void onLoad()
> {
> super.onLoad();
>
> getSplitPanel().addHandler(new MouseMoveHandler()
> {
> @Override
> public void onMouseMove(MouseMoveEvent event)
> {
> handler.onMouseMove(event);
> }
>
> }, MouseMoveEvent.getType());
>
> }
>
> publicHorizontalSplitPanelgetSplitPanel()
> {
> returnhorizontalSplitPanel;
> }
>
> }
> >>>> CODE
>
> The owning view looks like
>
> >>>> CODE
>
> public class MainComposite extends Composite implements ResizeHandler,
> SplitterEventHandler
> {
> private HorizontalSplitPanelEx mainHorizontalSplitPanel = null;
> private MainListBox mainListBox = null;
> private MainTextArea mainTextArea = null;
>
> /**
> *
> */
> public MainComposite()
> {
> super();
>
> mainHorizontalSplitPanel = new HorizontalSplitPanelEx(this);
> initWidget(mainHorizontalSplitPanel);
>
> mainHorizontalSplitPanel.getSplitPanel().setSplitPosition
> ("30%");
>
> mainListBox = new MainListBox();
> mainTextArea = new MainTextArea();
>
> mainHorizontalSplitPanel.setWidth("100%");
> mainHorizontalSplitPanel.setHeight("100%");
>
> mainHorizontalSplitPanel.getSplitPanel().setLeftWidget
> (mainListBox);
> mainHorizontalSplitPanel.getSplitPanel().setRightWidget
> (mainTextArea);
>
> // Test items.
> mainListBox.addItem("One");
> mainListBox.addItem("Two");
> mainListBox.addItem("Three");
> mainListBox.addItem("Four");
> mainListBox.addItem("Five");
>
> mainListBox.setSelectedIndex(-1);
> mainListBox.setVisibleItemCount(3);
> }
>
> @Override
> protected void onLoad()
> {
> super.onLoad();
> }
>
> /**
> * @return
> */
> public ListBox getListBox()
> {
> return mainListBox;
> }
>
> /**
> * @return
> */
> public TextArea getTextArea()
> {
> return mainTextArea;
> }
>
> /**
> * Adjust elements.
> *
> * @param event
> */
> @Override
> public void onResize(ResizeEvent event)
> {
> int listWidth = (int) (event.getWidth()*
> MainListBox.PERCENTAGE);
>
> mainHorizontalSplitPanel.getSplitPanel().setSplitPosition
> (listWidth+ "px");
>
> mainListBox.onResize(event);
>
> mainTextArea.onResize(event);
> }
>
> /**
> * Handle On Splitter move
> */
> @Override
> public void onMouseMove(MouseMoveEvent event)
> {
> String left = DOM.getStyleAttribute
> (mainHorizontalSplitPanel.getSplitElement(), "left");
>
> System.out.println(left);
>
> if (MouseMoveEvent.getType().equals(Event.ONMOUSEMOVE))
> {
> // TODO RESIZE YOUR VIEWS
> }
> }
>
> }
> >>>> CODE
>
> The secret-sauce is the getting the position of the splitter element
> using the DOM.getStyleAttribute call. We can then use this to
> calculate the new size of the right pane.
>
> Al.
>
> On Oct 28, 1:08 am, renju <[email protected]> wrote:
>
>
>
> > Hello friends,
>
> > I have a horizontal split panel which has a tree on the left side and
> > a custom widget on the right side. When the horizontal split panel is
> > re-sized, my tree is resizing. But my custom widget is not resizing
> > itself.
>
> > Also I cannot override the onSplitterResize() inside HorizontalPanel
> > since it is final. Neither can I extend theHorizontalSplitPanelsince
> > the class itself is final.
>
> > If you guys know, please let me know a way out.
>
> > Thanks,
> > George
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-web-toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---