List of usage examples for com.google.gwt.user.client Event setCapture
public static void setCapture(Element elem)
From source file:at.ait.dme.yuma.client.colorpicker.SliderBar.java
License:Artistic License
/** * Fired whenever a browser event is received. * @param event Event to process/* w w w. j av a2s.c o m*/ */ @Override public void onBrowserEvent(Event event) { switch (DOM.eventGetType(event)) { case Event.ONMOUSEUP: Event.releaseCapture(this.getElement()); capturedMouse = false; break; case Event.ONMOUSEDOWN: Event.setCapture(this.getElement()); capturedMouse = true; case Event.ONMOUSEMOVE: if (capturedMouse) { DOM.eventPreventDefault(event); int y = DOM.eventGetClientY(event) - getAbsoluteTop() + Window.getScrollTop(); if (y < 0) y = 0; if (y > 256) y = 256; DOM.setStyleAttribute(slider.getElement(), "top", y - 4 + "px"); if (parent != null) { parent.onBarSelected(y); } } } }
From source file:at.ait.dme.yuma.client.colorpicker.SliderMap.java
License:Artistic License
/** * Fired whenever a browser event is received. * @param event Event to process/*w w w. j av a 2s . c o m*/ */ @Override public void onBrowserEvent(Event event) { super.onBrowserEvent(event); switch (DOM.eventGetType(event)) { case Event.ONMOUSEUP: Event.releaseCapture(this.getElement()); capturedMouse = false; break; case Event.ONMOUSEDOWN: Event.setCapture(this.getElement()); capturedMouse = true; case Event.ONMOUSEMOVE: if (capturedMouse) { DOM.eventPreventDefault(event); int x = DOM.eventGetClientX(event) - colorUnderlay.getAbsoluteLeft() + 1 + Window.getScrollLeft(); int y = DOM.eventGetClientY(event) - colorUnderlay.getAbsoluteTop() + 1 + Window.getScrollTop(); if (x < 0) x = 0; if (x > 256) x = 256; if (y < 0) y = 0; if (y > 256) y = 256; DOM.setStyleAttribute(slider.getElement(), "left", x - 7 + "px"); DOM.setStyleAttribute(slider.getElement(), "top", y - 7 + "px"); if (parent != null) { parent.onMapSelected(x, y); } } } }
From source file:com.lushprojects.circuitjs1.client.Scrollbar.java
License:Open Source License
void doMouseDown(int x, boolean mouse) { if (enabled) { if (x < HMARGIN + SCROLLHEIGHT) { if (val > min) val--; } else {/* w w w. j a v a 2s .c o m*/ if (x > CirSim.VERTICALPANELWIDTH - HMARGIN - SCROLLHEIGHT) { if (val < max) val++; } else { val = calcValueFromPos(x); dragging = true; // setCapture doesn't work on touch for some reason; touchend/touchmoved events // don't get sent if (mouse) Event.setCapture(can.getElement()); } } draw(); if (command != null) command.execute(); } }
From source file:com.risevision.ui.client.common.widgets.colorPicker.SliderBar.java
License:Artistic License
/** * Fired whenever a browser event is received. * @param event Event to process//from w w w .j a v a 2 s .c o m */ @Override public void onBrowserEvent(Event event) { switch (DOM.eventGetType(event)) { case Event.ONMOUSEUP: Event.releaseCapture(this.getElement()); capturedMouse = false; break; case Event.ONMOUSEDOWN: Event.setCapture(this.getElement()); capturedMouse = true; case Event.ONMOUSEMOVE: if (capturedMouse) { event.preventDefault(); if (vertical) { int y = event.getClientY() - getAbsoluteTop() + Window.getScrollTop(); if (y < 0) y = 0; if (y > 256) y = 256; slider.getElement().getStyle().setProperty("top", y - 4 + "px"); if (parent != null) { parent.onBarSelected(mode, y); } } else { int x = event.getClientX() - getAbsoluteLeft() + Window.getScrollLeft(); if (x < 0) x = 0; if (x > 256) x = 256; slider.getElement().getStyle().setProperty("left", 256 - x - 4 + "px"); if (parent != null) { parent.onBarSelected(mode, x); } } } } }
From source file:com.risevision.ui.client.common.widgets.colorPicker.SliderMap.java
License:Artistic License
/** * Fired whenever a browser event is received. * @param event Event to process// ww w.j ava 2s .c o m */ @Override public void onBrowserEvent(Event event) { super.onBrowserEvent(event); switch (DOM.eventGetType(event)) { case Event.ONMOUSEUP: Event.releaseCapture(this.getElement()); capturedMouse = false; break; case Event.ONMOUSEDOWN: Event.setCapture(this.getElement()); capturedMouse = true; case Event.ONMOUSEMOVE: if (capturedMouse) { event.preventDefault(); int x = event.getClientX() - colorUnderlay.getAbsoluteLeft() + 1 + Window.getScrollLeft(); int y = event.getClientY() - colorUnderlay.getAbsoluteTop() + 1 + Window.getScrollTop(); if (x < 0) x = 0; if (x > 256) x = 256; if (y < 0) y = 0; if (y > 256) y = 256; slider.getElement().getStyle().setProperty("left", x - 7 + "px"); slider.getElement().getStyle().setProperty("top", y - 7 + "px"); if (parent != null) { parent.onMapSelected(x, y); } } } }
From source file:com.risevision.ui.client.common.widgets.SliderBarWidget.java
License:Artistic License
/** * Fired whenever a browser event is received. * @param event Event to process/*from ww w . j av a 2 s .c om*/ */ @Override public void onBrowserEvent(Event event) { switch (DOM.eventGetType(event)) { case Event.ONMOUSEUP: Event.releaseCapture(this.getElement()); capturedMouse = false; break; case Event.ONMOUSEDOWN: Event.setCapture(this.getElement()); capturedMouse = true; case Event.ONMOUSEMOVE: if (capturedMouse) { event.preventDefault(); if (vertical) { int y = event.getClientY() - getAbsoluteTop() + Window.getScrollTop() - 7; if (y < 0) y = 0; if (y > length) y = length; thumb.getStyle().setProperty("top", y - halfThumb + "px"); pos = y; } else { int x = event.getClientX() - getAbsoluteLeft() + Window.getScrollLeft() - 7; if (x < 0) x = 0; if (x > length) x = length; thumb.getStyle().setProperty("left", x - halfThumb + "px"); pos = x; } if (onBarSelected != null) { onBarSelected.execute(); } } } }
From source file:com.vaadin.addon.calendar.gwt.client.ui.schedule.SimpleDayCell.java
public void startCalendarEventDrag(MouseDownEvent event, final MonthEventLabel w) { if (w.isTimeSpecificEvent()) { return;//from www . java 2 s .com } moveRegistration = addMouseMoveHandler(this); startX = event.getClientX(); startY = event.getClientY(); startYrelative = event.getRelativeY(w.getParent().getElement()) % getHeigth(); startXrelative = event.getRelativeX(w.getParent().getElement()) % getWidth(); CalendarEvent e = getEventByWidget(w); startDateFrom = (Date) e.getStart().clone(); startDateTo = (Date) e.getEnd().clone(); Event.setCapture(getElement()); keyDownHandler = addKeyDownHandler(new KeyDownHandler() { public void onKeyDown(KeyDownEvent event) { if (event.getNativeKeyCode() == KeyCodes.KEY_ESCAPE) { cancelEventDrag(w); } } }); focus(); GWT.log("Start drag"); }
From source file:com.vaadin.addon.spreadsheet.client.SheetWidget.java
/** * * @param target/* www.j a va 2s.c o m*/ * The clicked element * @param event * The original event (that can be onClick or onTouchStart) */ protected void onSheetMouseDown(Event event) { Element target = event.getEventTarget().cast(); String className = target.getAttribute("class"); // click target is the inner div because IE10 and 9 are not compatible // with 'pointer-events: none' if ((BrowserInfo.get().isIE9() || BrowserInfo.get().isIE10()) && (className == null || className.isEmpty())) { String parentClassName = target.getParentElement().getAttribute("class"); if (parentClassName.contains("cell")) { className = parentClassName; } } if (cellCommentEditMode && !className.contains("comment-overlay")) { cellCommentEditMode = false; currentlyEditedCellComment.setEditMode(false); if (currentlyEditedCellComment.equals(cellCommentOverlay)) { cellCommentOverlay.hide(); cellCommentCellClassName = null; cellCommentCellColumn = -1; cellCommentCellRow = -1; } } if (className.contains("sheet") || target.getTagName().equals("input") || className.equals("floater")) { return; // event target is one of the panes or input } if (isEventInCustomEditorCell(event)) { // allow sheet context menu on top of custom editors if (event.getButton() == NativeEvent.BUTTON_RIGHT) { actionHandler.onCellRightClick(event, selectedCellCol, selectedCellRow); } else if (selectingCells) { // this is probably unnecessary stoppedSelectingCellsWithDrag(event); } } else if (className.contains("cell")) { if (className.equals("cell-comment-triangle")) { jsniUtil.parseColRow(target.getParentElement().getAttribute("class")); } else { jsniUtil.parseColRow(className); } int targetCol = jsniUtil.getParsedCol(); int targetRow = jsniUtil.getParsedRow(); // because of text overflow, the click might have happened on // top of a another cell than what event has. // merged cells are a special case, text won't overflow -> skip try { if (!className.endsWith(MERGED_CELL_CLASSNAME)) { int clientX = SpreadsheetWidget.getTouchOrMouseClientX(event); int clientY = SpreadsheetWidget.getTouchOrMouseClientY(event); Cell targetCell = getRealEventTargetCell(clientX, clientY, getCell(targetCol, targetRow)); target = targetCell.getElement(); targetCol = targetCell.getCol(); targetRow = targetCell.getRow(); } } catch (JavaScriptException jse) { debugConsole.severe( "SheetWidget:onSheetMouseDown - JSE while trying to find real event target, className:" + className); } catch (IndexOutOfBoundsException ioobe) { debugConsole.severe( "SheetWidget:onSheetMouseDown - IOOBE while trying to find real event target, className:" + className); } event.stopPropagation(); event.preventDefault(); if (event.getButton() == NativeEvent.BUTTON_RIGHT) { Event.releaseCapture(sheet); actionHandler.onCellRightClick(event, targetCol, targetRow); } else { sheet.focus(); // quit input if active if (editingCell && !input.getElement().isOrHasChild(target)) { actionHandler.onCellInputBlur(input.getValue()); } if (event.getCtrlKey() || event.getMetaKey() || event.getShiftKey()) { actionHandler.onCellClick(targetCol, targetRow, target.getInnerText(), event.getShiftKey(), event.getMetaKey() || event.getCtrlKey(), true); tempCol = -1; tempRow = -1; } else { // no special keys used // link cells are special keys // TODO should investigate what is the correct action when // clicking on hyperlink cells that overflow to next cells if (cellLinksMap != null && cellLinksMap.containsKey(toKey(jsniUtil.getParsedCol(), jsniUtil.getParsedRow()))) { actionHandler.onLinkCellClick(targetCol, targetRow); } else { // otherwise selecting starts actionHandler.onCellClick(targetCol, targetRow, target.getInnerText(), event.getShiftKey(), event.getMetaKey() || event.getCtrlKey(), false); selectingCells = true; tempCol = targetCol; tempRow = targetRow; startCellTopLeft = isCellRenderedInTopLeftPane(targetCol, targetRow); startCellTopRight = isCellRenderedInTopRightPane(targetCol, targetRow); startCellBottomLeft = isCellRenderedInBottomLeftPane(targetCol, targetRow); crossedDown = !startCellTopLeft && !startCellTopRight; crossedLeft = !startCellTopLeft && !startCellBottomLeft; clientX = SpreadsheetWidget.getTouchOrMouseClientX(event); clientY = SpreadsheetWidget.getTouchOrMouseClientY(event); Event.setCapture(sheet); } } } } }
From source file:com.vaadin.addon.spreadsheet.client.SheetWidget.java
private void startRowResizeDrag(int rowIndex, int clientX, int clientY) { // for some reason FF doesn't hide headers instantly, // the event might be from hidden div while (actionHandler.isRowHidden(rowIndex)) { rowIndex--;//from ww w . ja va 2s. co m } if (rowIndex == 0) { // ERROR ... return; } Event.setCapture(getElement()); resizingRow = true; resized = false; resizedRowIndex = rowIndex; resizedColumnIndex = -1; DivElement header; if (resizedRowIndex <= verticalSplitPosition) { header = frozenRowHeaders.get(resizedRowIndex - 1); } else { header = rowHeaders.get(rowIndex - firstRowIndex); } resizeFirstEdgePos = header.getAbsoluteTop(); resizeLastEdgePos = header.getAbsoluteBottom(); if (actionHandler.getRowHeight(rowIndex) > 0) { resizeTooltipLabel.setText("Height: " + actionHandler.getRowHeight(rowIndex) + "pt"); } else { resizeTooltipLabel.setText("Hide row"); } showResizeTooltipRelativeTo(clientX, clientY); resizeTooltip.show(); spreadsheet.addClassName(ROW_RESIZING_CLASSNAME); resizeLineStable.addClassName("row" + rowIndex); rowIndex++; while (rowIndex < actionHandler.getMaxRows() && actionHandler.isRowHidden(rowIndex)) { rowIndex++; } resizeLine.addClassName("rh row" + (rowIndex)); handleRowResizeDrag(clientX, clientY); }
From source file:com.vaadin.addon.spreadsheet.client.SheetWidget.java
private void startColumnResizeDrag(final int columnIndex, final int clientX, final int clientY) { resized = false;//from w ww . j a va2 s. c om Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { if (columnResizeCancelled) { return; } // for some reason FF doesn't hide headers instantly, // the event might be from hidden div int tempColumnIndex = columnIndex; while (actionHandler.isColumnHidden(tempColumnIndex)) { tempColumnIndex--; } if (tempColumnIndex < 1) { // ERROR ... return; } Event.setCapture(getElement()); resizingColumn = true; resizedColumnIndex = tempColumnIndex; resizedRowIndex = -1; DivElement header; if (resizedColumnIndex <= horizontalSplitPosition) { header = frozenColumnHeaders.get(resizedColumnIndex - 1); } else { header = colHeaders.get(tempColumnIndex - firstColumnIndex); } resizeFirstEdgePos = header.getAbsoluteLeft(); resizeLastEdgePos = header.getAbsoluteRight(); if (actionHandler.getColWidth(tempColumnIndex) > 0) { resizeTooltipLabel.setText("Width: " + actionHandler.getColWidth(tempColumnIndex) + "px"); } else { resizeTooltipLabel.setText("Hide column"); } showResizeTooltipRelativeTo(clientX, clientY); resizeTooltip.show(); spreadsheet.addClassName(COLUMN_RESIZING_CLASSNAME); resizeLineStable.addClassName("col" + tempColumnIndex); tempColumnIndex++; while (columnIndex <= actionHandler.getMaxColumns() && actionHandler.isColumnHidden(tempColumnIndex)) { tempColumnIndex++; } resizeLine.addClassName("ch col" + (tempColumnIndex)); handleColumnResizeDrag(clientX, clientY); } }); }