@Override public void onBrowserEvent(Event event) { // When resize support is disabled, fall-back to default browser behavior if (!resizeSupportEnabled) { super.onBrowserEvent(event); return; } // Set the default dialog's dimensions as minimal dimensions if (minWidth == 0 || minHeight == 0) { minWidth = getOffsetWidth(); minHeight = getOffsetHeight(); } // While dragging dialog's edge is on, disable default event behavior if (dragging) { event.preventDefault(); } else { super.onBrowserEvent(event); } final int eventType = DOM.eventGetType(event); if (Event.ONMOUSEMOVE == eventType) { if (dragging) { // Get cursor's position int cursorX = event.getClientX(); int cursorY = event.getClientY(); // Calculates dialog's new dimensions int newWidth = cursorX - DOM.getAbsoluteLeft(getElement()) + EDGE_SIZE; int newHeight = cursorY - DOM.getAbsoluteTop(getElement()) + EDGE_SIZE; updateDialogDimensions(newWidth, newHeight); } else { updateResizeCursor(event); } } else if (Event.ONMOUSEDOWN == eventType) { if (updateResizeCursor(event) && !dragging) { event.preventDefault(); dragging = true; DOM.setCapture(getElement()); } } else if (Event.ONMOUSEUP == eventType) { if (dragging) { dragging = false; DOM.releaseCapture(getElement()); } } else if (Event.ONMOUSEOUT == eventType) { if (!dragging) { updateResizeCursor(event); } } }
@Override public void onBrowserEvent(Event event) { super.onBrowserEvent(event); updateAutoHide(event); }