Figured out myself .Here is a code example for a resizable and
dragable panel
public class DragPanel extends VerticalPanel {
        private boolean drag_drop = false;
        private boolean move = false ;
    private Element movingPanelElement;


        public void setMovingPanelElement(Element movingPanelElement) {
                this.movingPanelElement = movingPanelElement;
        }



        public DragPanel() {
                super();
                DOM.sinkEvents(this.getElement(), Event.ONMOUSEDOWN |
Event.ONMOUSEMOVE
                                | Event.ONMOUSEUP | Event.ONMOUSEOVER);

        }

        @Override
        public void onBrowserEvent(Event event) {

                final int eventType = DOM.eventGetType(event);
                if (Event.ONMOUSEOVER == eventType) {


                        if (isCursorResize(event)) {
                                DOM.setStyleAttribute(this.getElement(), 
"cursor", "s-resize");
                        } else if(isCursorMove(event)){
                                
DOM.setStyleAttribute(this.getElement(),"cursor", "move");
                        }else {
                                DOM.setStyleAttribute(this.getElement(), 
"cursor", "default");
                        }

                }
                if (Event.ONMOUSEDOWN == eventType) {
                        if (isCursorResize(event)) {
                                if (drag_drop == false) {
                                        drag_drop = true;

                                        DOM.setCapture(this.getElement());


                                }
                        }else if(isCursorMove(event)){
                                DOM.setCapture(this.getElement());
                                move = true;
                        }

                } else if (Event.ONMOUSEMOVE == eventType) {
                        if(!isCursorResize(event)&&!isCursorMove(event)){
                                DOM.setStyleAttribute(this.getElement(), 
"cursor", "default");
                        }
                        if (drag_drop == true) {
                                int absY = DOM.eventGetClientY(event);
                                int originalY = 
DOM.getAbsoluteTop(this.getElement());
                                if(absY>originalY){
                                        Integer height = absY-originalY;
                                        this.setHeight(height + "px");
                                }
                        }else if(move == true){
                                RootPanel.get().setWidgetPosition(this, 
DOM.eventGetClientX
(event),DOM.eventGetClientY(event));
                        }
                } else if (Event.ONMOUSEUP == eventType) {
                        if(move == true){
                                move = false;
                                DOM.releaseCapture(this.getElement());
                        }
                        if (drag_drop == true) {
                                drag_drop = false;
                                DOM.releaseCapture(this.getElement());

                        }

                }
        }

        protected boolean isCursorResize(Event event) {
                int cursor = DOM.eventGetClientY(event);
                int initial = this.getAbsoluteTop();
                int height = this.getOffsetHeight();

                if (initial + height - 20 < cursor && cursor <= initial + 
height)
                        return true;
                else
                        return false;

        }
        protected boolean isCursorMove(Event event){
                int cursor = DOM.eventGetClientY(event);
                int initial = movingPanelElement.getAbsoluteTop();
                int height = movingPanelElement.getOffsetHeight();
                if(initial <= cursor && cursor <= initial + height)
                        return true;
                        else
                                return false;

        }
}


On Jan 2, 10:08 am, Dev <[email protected]> wrote:
> Is there any way to have a 'Resizable'panelin GWT.
>
> ByresizableI mean that if you you drag on the edge ofPanelit can
> be resized accordingly.

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to