List of usage examples for com.google.gwt.dom.client Element getClientHeight
@Override
public int getClientHeight()
From source file:com.ait.toolkit.clientio.canvg.client.CanVgParser.java
License:Open Source License
public static ByteArray getFromSgvElement(Element chartElement) { assert chartElement != null : "Element cant be null"; int width = chartElement.getClientWidth(); int height = chartElement.getClientHeight(); return getFromSgvElement(chartElement, width, height); }
From source file:com.alkacon.geranium.client.dnd.DNDHandler.java
License:Open Source License
/** * Execute on mouse wheel event.<p> * //from www . jav a 2s . c om * @param event the native event */ protected void onMouseWheelScroll(Event event) { int scrollStep = event.getMouseWheelVelocityY() * 5; Element scrollTarget; if (getCurrentTarget() != null) { scrollTarget = getCurrentTarget().getElement(); } else { scrollTarget = RootPanel.getBodyElement(); } while ((scrollTarget.getScrollHeight() == scrollTarget.getClientHeight()) && (scrollTarget != RootPanel.getBodyElement())) { scrollTarget = scrollTarget.getParentElement(); } if (scrollTarget == RootPanel.getBodyElement()) { int top = Window.getScrollTop() + scrollStep; int left = Window.getScrollLeft(); if (top < 0) { top = 0; } Window.scrollTo(left, top); } else { int top = scrollTarget.getScrollTop() + scrollStep; if (top < 0) { top = 0; } scrollTarget.setScrollTop(top); } onMove(event); }
From source file:com.alkacon.geranium.client.dnd.DNDHandler.java
License:Open Source License
/** * Convenience method to get the appropriate scroll direction.<p> * /*ww w. ja v a 2 s . c o m*/ * @param offset the scroll parent border offset, if the cursor is within the border offset, scrolling should be triggered * * @return the scroll direction */ private Direction getScrollDirection(int offset) { if (m_scrollElement == null) { Element body = RootPanel.getBodyElement(); int windowHeight = Window.getClientHeight(); int bodyHeight = body.getClientHeight(); if (windowHeight < bodyHeight) { if (((windowHeight - m_clientY) < offset) && (Window.getScrollTop() < (bodyHeight - windowHeight))) { return Direction.down; } if ((m_clientY < offset) && (Window.getScrollTop() > 0)) { return Direction.up; } } int windowWidth = Window.getClientWidth(); int bodyWidth = body.getClientWidth(); if (windowWidth < bodyWidth) { if (((windowWidth - m_clientX) < offset) && (Window.getScrollLeft() < (bodyWidth - windowWidth))) { return Direction.right; } if ((m_clientX < offset) && (Window.getScrollLeft() > 0)) { return Direction.left; } } return null; } else { int outerHeight = m_scrollElement.getClientHeight(); int innerHeight = m_scrollElement.getScrollHeight(); if (outerHeight < innerHeight) { if ((((outerHeight + m_scrollElement.getAbsoluteTop()) - m_clientY) < offset) && (m_scrollElement.getScrollTop() < (innerHeight - outerHeight))) { return Direction.down; } if (((m_clientY - m_scrollElement.getAbsoluteTop()) < offset) && (m_scrollElement.getScrollTop() > 0)) { return Direction.up; } } int outerWidth = m_scrollElement.getClientWidth(); int innerWidth = m_scrollElement.getScrollWidth(); if (outerWidth < innerWidth) { if ((((outerWidth + m_scrollElement.getAbsoluteLeft()) - m_clientX) < offset) && (m_scrollElement.getScrollLeft() < (innerWidth - outerWidth))) { return Direction.right; } if (((m_clientX - m_scrollElement.getAbsoluteLeft()) < offset) && (m_scrollElement.getScrollLeft() > 0)) { return Direction.left; } } return null; } }
From source file:com.arcbees.gquery.elastic.client.ElasticImpl.java
License:Apache License
private void readItemHeight(Element e) { StyleInfo si = getStyleInfo(e); si.height = e.getClientHeight(); }
From source file:com.axlight.gbrain.client.MainPane.java
License:Apache License
public MainPane() { nodeManager = new NodeManager(); nullCallback = new AsyncCallback<Void>() { public void onFailure(Throwable caught) { GWT.log("Network error!", caught); showAlertDialog("Network error!"); }/*from www . j a va 2 s .c om*/ public void onSuccess(Void ignored) { // nothing } }; ClickHandler borderClickHandler = new ClickHandler() { public void onClick(ClickEvent event) { int left = getWindowScrollLeft(); int top = getWindowScrollTop(); int screenWidth = getWindowScreenWidth(); int screenHeight = getWindowScreenHeight(); int prevCenterPosX = viewX + left + screenWidth / 2; int prevCenterPosY = viewY + top + screenHeight / 2; relocateCenter(prevCenterPosX, prevCenterPosY); } }; borderNorth = new SimplePanel(); borderNorth.addDomHandler(borderClickHandler, ClickEvent.getType()); borderNorth.getElement().getStyle().setBackgroundColor("#445566"); borderEast = new SimplePanel(); borderEast.addDomHandler(borderClickHandler, ClickEvent.getType()); borderEast.getElement().getStyle().setBackgroundColor("#445566"); borderSouth = new SimplePanel(); borderSouth.addDomHandler(borderClickHandler, ClickEvent.getType()); borderSouth.getElement().getStyle().setBackgroundColor("#445566"); borderWest = new SimplePanel(); borderWest.addDomHandler(borderClickHandler, ClickEvent.getType()); borderWest.getElement().getStyle().setBackgroundColor("#445566"); Image image; if (GBrain.isIPhone) { image = new Image("images/create_button.svg"); } else { image = new Image("images/create_button.png"); } PushButton createButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { showCreateDialog(); } }); createButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); createButton.setTitle("Create a new text"); if (GBrain.isIPhone) { image = new Image("images/delete_button.svg"); } else { image = new Image("images/delete_button.png"); } PushButton deleteButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } if (selectNode.getChildren() > 0) { showAlertDialog("You can't delete it with children."); return; } final NeuronNode tmpSelectNode = selectNode; String content = tmpSelectNode.getContent(); final long id = tmpSelectNode.getId(); showConfirmDialog("Are you sure you want to delete\n'" + content + "' ?", new ClickHandler() { public void onClick(ClickEvent event) { gbrainService.deleteNeuron(id, new AsyncCallback<Void>() { public void onFailure(Throwable caught) { GWT.log("Network error!", caught); showAlertDialog("Network error!"); } public void onSuccess(Void ignored) { Long parentId = tmpSelectNode.getParentId(); if (parentId != null) { NeuronNode parentNode = nodeManager.getNode(parentId); if (parentNode != null) { parentNode.decreaseChildren(); } } removeNode(tmpSelectNode); } }); } }); } }); deleteButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); deleteButton.setTitle("Delete text"); if (GBrain.isIPhone) { image = new Image("images/noparent_button.svg"); } else { image = new Image("images/noparent_button.png"); } PushButton noparentButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } NeuronNode n = selectNode; if (n.getParentId() != null) { replaceParent(n, null); gbrainService.removeParent(n.getId(), nullCallback); } } }); noparentButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); noparentButton.setTitle("Remove parent link"); if (GBrain.isIPhone) { image = new Image("images/open_button.svg"); } else { image = new Image("images/open_button.png"); } PushButton openButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } refreshChildNeurons(selectNode.getId()); } }); openButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); openButton.setTitle("Open children"); if (GBrain.isIPhone) { image = new Image("images/close_button.svg"); } else { image = new Image("images/close_button.png"); } PushButton closeButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } removeChildNodes(selectNode); } }); closeButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); closeButton.setTitle("Close children"); if (GBrain.isIPhone) { image = new Image("images/arrange_button.svg"); } else { image = new Image("images/arrange_button.png"); } PushButton arrangeButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } NeuronNode n = selectNode; nodeManager.arrangeAllChildNodes(n); updatePositionNodeAndChildNodes(n); } }); arrangeButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); arrangeButton.setTitle("Arrange children"); if (GBrain.isIPhone) { image = new Image("images/up_button.svg"); } else { image = new Image("images/up_button.png"); } PushButton upButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } NeuronNode n = nodeManager.getParentNode(selectNode.getId()); if (n == null) { return; } handleNodeClick(n); slideToPosition(n.getPosX(), n.getPosY()); } }); upButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); upButton.setTitle("Jump to parent"); if (GBrain.isIPhone) { image = new Image("images/down_button.svg"); } else { image = new Image("images/down_button.png"); } PushButton downButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } NeuronNode n = nodeManager.getFirstChildNode(selectNode.getId()); if (n == null) { return; } handleNodeClick(n); slideToPosition(n.getPosX(), n.getPosY()); } }); downButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); downButton.setTitle("Jump to a child"); if (GBrain.isIPhone) { image = new Image("images/prev_button.svg"); } else { image = new Image("images/prev_button.png"); } PushButton prevButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } NeuronNode n = nodeManager.getPreviousSiblingNode(selectNode.getId()); if (n == null) { return; } handleNodeClick(n); slideToPosition(n.getPosX(), n.getPosY()); } }); prevButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); prevButton.setTitle("Jump to previous sibling"); if (GBrain.isIPhone) { image = new Image("images/next_button.svg"); } else { image = new Image("images/next_button.png"); } PushButton nextButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } NeuronNode n = nodeManager.getNextSiblingNode(selectNode.getId()); if (n == null) { return; } handleNodeClick(n); slideToPosition(n.getPosX(), n.getPosY()); } }); nextButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); nextButton.setTitle("Jump to next sibling"); if (GBrain.isIPhone) { image = new Image("images/jump_button.svg"); } else { image = new Image("images/jump_button.png"); } PushButton jumpButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } jumpToUrl(selectNode); } }); jumpButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); jumpButton.setTitle("Jump to URL"); if (GBrain.isIPhone) { image = new Image("images/color_button.svg"); } else { image = new Image("images/color_button.png"); } PushButton colorButton = new PushButton(image, new ClickHandler() { public void onClick(ClickEvent event) { if (selectNode == null) { showAlertDialog("Nothing is selected."); return; } NeuronNode n = selectNode; n.setNextColor(); gbrainService.updateColor(n.getId(), n.getColor(), nullCallback); } }); colorButton.setPixelSize(BUTTON_SIZE, BUTTON_SIZE); colorButton.setTitle("Change color"); buttonPanel = new FlowPanel(); buttonPanel.add(createButton); buttonPanel.add(deleteButton); buttonPanel.add(noparentButton); buttonPanel.add(openButton); buttonPanel.add(closeButton); buttonPanel.add(arrangeButton); buttonPanel.add(upButton); buttonPanel.add(downButton); buttonPanel.add(prevButton); buttonPanel.add(nextButton); buttonPanel.add(jumpButton); buttonPanel.add(colorButton); drawArea = new DrawingArea(0, 0); drawArea.getElement().setId("gbrain-svgpanel"); drawArea.getElement().getStyle().setBackgroundColor("#000000"); this.add(drawArea, 0, 0); this.add(borderNorth, -100, -100); // initially not visible this.add(borderEast, -100, -100); // initially not visible this.add(borderSouth, -100, -100); // initially not visible this.add(borderWest, -100, -100); // initially not visible this.add(buttonPanel, -100, -100); // initially not visible coordinate = new Coordinate(drawArea); drawArea.add(coordinate); supportDragAndDrop(); refreshTopNeurons(); onResize(); Element welcome = Document.get().getElementById("gbrain-welcome"); welcome.getStyle().setLeft(viewWidth / 2 - welcome.getClientWidth() / 2, Unit.PX); welcome.getStyle().setTop(viewHeight / 2 - welcome.getClientHeight() / 2, Unit.PX); Window.addWindowScrollHandler(this); }
From source file:com.bearsoft.gwt.ui.widgets.grid.Grid.java
public Grid(ProvidesKey<T> aKeyProvider) { super();//from ww w . java 2 s . com getElement().getStyle().setPosition(Style.Position.RELATIVE); getElement().appendChild(tdsStyleElement); getElement().appendChild(cellsStyleElement); getElement().appendChild(oddRowsStyleElement); getElement().appendChild(evenRowsStyleElement); setRowsHeight(25); hive = new FlexTable(); setWidget(hive); hive.setCellPadding(0); hive.setCellSpacing(0); hive.setBorderWidth(0); headerLeft = new GridSection<T>(aKeyProvider); headerLeftContainer = new ScrollPanel(headerLeft); headerRight = new GridSection<T>(aKeyProvider); headerRightContainer = new ScrollPanel(headerRight); frozenLeft = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerLeft.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerLeft.redrawFooters(); } }; frozenLeftContainer = new ScrollPanel(frozenLeft); frozenRight = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerRight.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerRight.redrawFooters(); } }; frozenRightContainer = new ScrollPanel(frozenRight); scrollableLeft = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerLeft.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerLeft.redrawFooters(); } }; scrollableLeftContainer = new ScrollPanel(scrollableLeft); scrollableRight = new GridSection<T>(aKeyProvider) { @Override protected void replaceAllChildren(List<T> values, SafeHtml html) { super.replaceAllChildren(values, html); footerRight.redrawFooters(); } @Override protected void replaceChildren(List<T> values, int start, SafeHtml html) { super.replaceChildren(values, start, html); footerRight.redrawFooters(); } }; scrollableRightContainer = new ScrollPanel(scrollableRight); footerLeft = new GridSection<>(aKeyProvider); footerLeftContainer = new ScrollPanel(footerLeft); footerRight = new GridSection<>(aKeyProvider); footerRightContainer = new ScrollPanel(footerRight); // positioning context / overflow setup // overflow for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer, frozenRightContainer, scrollableLeftContainer, footerLeftContainer, footerRightContainer }) { w.getElement().getStyle().setOverflow(Style.Overflow.HIDDEN); } // scrollableRightContainer.getElement().getStyle().setOverflow(Style.Overflow.AUTO); // default value // context for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer, frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer, footerRightContainer }) { w.getElement().getFirstChildElement().getStyle().setPosition(Style.Position.ABSOLUTE); } // propagation of some widths headerLeft.setWidthPropagator(new GridWidthPropagator<T>(headerLeft) { @Override public void changed() { super.changed(); propagateHeaderWidth(); } }); for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenLeft, frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) { section.setWidthPropagator(new GridWidthPropagator<>(section)); } headerLeft.setColumnsPartners(new AbstractCellTable[] { frozenLeft, scrollableLeft, footerLeft }); headerRight.setColumnsPartners(new AbstractCellTable[] { frozenRight, scrollableRight, footerRight }); ColumnsRemover leftColumnsRemover = new ColumnsRemoverAdapter<T>(headerLeft, frozenLeft, scrollableLeft, footerLeft); ColumnsRemover rightColumnsRemover = new ColumnsRemoverAdapter<T>(headerRight, frozenRight, scrollableRight, footerRight); for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft, scrollableLeft, footerLeft }) { section.setColumnsRemover(leftColumnsRemover); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight, scrollableRight, footerRight }) { section.setColumnsRemover(rightColumnsRemover); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenLeft, scrollableLeft, footerLeft }) { section.setHeaderSource(headerLeft); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { frozenRight, scrollableRight, footerRight }) { section.setHeaderSource(headerRight); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerLeft, frozenLeft, scrollableLeft }) { section.setFooterSource(footerLeft); } for (GridSection<T> section : (GridSection<T>[]) new GridSection<?>[] { headerRight, frozenRight, scrollableRight }) { section.setFooterSource(footerRight); } // hive organization hive.setWidget(0, 0, headerLeftContainer); hive.setWidget(0, 1, headerRightContainer); hive.setWidget(1, 0, frozenLeftContainer); hive.setWidget(1, 1, frozenRightContainer); hive.setWidget(2, 0, scrollableLeftContainer); hive.setWidget(2, 1, scrollableRightContainer); hive.setWidget(3, 0, footerLeftContainer); hive.setWidget(3, 1, footerRightContainer); for (Widget w : new Widget[] { headerLeftContainer, headerRightContainer, frozenLeftContainer, frozenRightContainer, scrollableLeftContainer, scrollableRightContainer, footerLeftContainer, footerRightContainer }) { w.setWidth("100%"); w.setHeight("100%"); } // misc for (Widget w : new Widget[] { headerRightContainer, frozenRightContainer, footerRightContainer, scrollableLeftContainer }) { w.getElement().getParentElement().getStyle().setOverflow(Style.Overflow.HIDDEN); } hive.getElement().getStyle().setTableLayout(Style.TableLayout.FIXED); hive.getElement().getStyle().setPosition(Style.Position.RELATIVE); for (CellTable<?> tbl : new CellTable<?>[] { headerLeft, headerRight, frozenLeft, frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) { tbl.setTableLayoutFixed(true); } // header headerLeft.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerLeft, false, this)); headerLeft.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerLeft, true)); headerRight.setHeaderBuilder(new ThemedHeaderOrFooterBuilder<T>(headerRight, false, this)); headerRight.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(headerRight, true)); // footer footerLeft.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerLeft, false)); footerLeft.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerLeft, true)); footerRight.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(footerRight, false)); footerRight.setFooterBuilder(new ThemedHeaderOrFooterBuilder<T>(footerRight, true)); // data bodies for (GridSection<?> section : new GridSection<?>[] { frozenLeft, frozenRight, scrollableLeft, scrollableRight }) { GridSection<T> gSection = (GridSection<T>) section; gSection.setHeaderBuilder(new NullHeaderOrFooterBuilder<T>(gSection, false)); gSection.setFooterBuilder(new NullHeaderOrFooterBuilder<T>(gSection, true)); } for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, frozenLeft, frozenRight, scrollableLeft, scrollableRight, footerLeft, footerRight }) { section.setAutoHeaderRefreshDisabled(true); } for (GridSection<?> section : new GridSection<?>[] { headerLeft, headerRight, footerLeft, footerRight }) { section.setAutoFooterRefreshDisabled(true); } // cells installCellBuilders(); scrollableRightContainer.addScrollHandler(new ScrollHandler() { @Override public void onScroll(ScrollEvent event) { int aimTop = scrollableRightContainer.getElement().getScrollTop(); int aimLeft = scrollableRightContainer.getElement().getScrollLeft(); scrollableLeftContainer.getElement().setScrollTop(aimTop); int factTopDelta = aimTop - scrollableLeftContainer.getElement().getScrollTop(); if (factTopDelta > 0) { scrollableLeftContainer.getElement().getStyle().setBottom(factTopDelta, Style.Unit.PX); } else { scrollableLeftContainer.getElement().getStyle().clearBottom(); } headerRightContainer.getElement().setScrollLeft(aimLeft); int factLeftDelta0 = aimLeft - headerRightContainer.getElement().getScrollLeft(); if (factLeftDelta0 > 0) { headerRightContainer.getElement().getStyle().setRight(factLeftDelta0, Style.Unit.PX); } else { headerRightContainer.getElement().getStyle().clearRight(); } frozenRightContainer.getElement().setScrollLeft(aimLeft); int factLeftDelta1 = aimLeft - frozenRightContainer.getElement().getScrollLeft(); if (factLeftDelta1 > 0) { frozenRightContainer.getElement().getStyle().setRight(factLeftDelta1, Style.Unit.PX); } else { frozenRightContainer.getElement().getStyle().clearRight(); } footerRightContainer.getElement() .setScrollLeft(scrollableRightContainer.getElement().getScrollLeft()); int factLeftDelta2 = aimLeft - footerRightContainer.getElement().getScrollLeft(); if (factLeftDelta2 > 0) { footerRightContainer.getElement().getStyle().setRight(factLeftDelta2, Style.Unit.PX); } else { footerRightContainer.getElement().getStyle().clearRight(); } } }); ghostLine = Document.get().createDivElement(); ghostLine.addClassName(RULER_STYLE); ghostLine.getStyle().setPosition(Style.Position.ABSOLUTE); ghostLine.getStyle().setTop(0, Style.Unit.PX); ghostColumn = Document.get().createDivElement(); ghostColumn.addClassName(COLUMN_PHANTOM_STYLE); ghostColumn.getStyle().setPosition(Style.Position.ABSOLUTE); ghostColumn.getStyle().setTop(0, Style.Unit.PX); addDomHandler(new DragEnterHandler() { @Override public void onDragEnter(DragEnterEvent event) { if (DraggedColumn.instance != null) { if (DraggedColumn.instance.isMove()) { event.preventDefault(); event.stopPropagation(); DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget()); if (target != null) { showColumnMoveDecorations(target); event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move"); } else { event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none"); } } else { } } else { event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none"); } } }, DragEnterEvent.getType()); addDomHandler(new DragHandler() { @Override public void onDrag(DragEvent event) { if (DraggedColumn.instance != null && DraggedColumn.instance.isResize()) { event.stopPropagation(); /* int newWidth = event.getNativeEvent().getClientX() - DraggedColumn.instance.getCellElement().getAbsoluteLeft(); if (newWidth > MINIMUM_COLUMN_WIDTH) { event.getDataTransfer().<XDataTransfer> cast().setDropEffect("move"); } else { event.getDataTransfer().<XDataTransfer> cast().setDropEffect("none"); } */ } } }, DragEvent.getType()); addDomHandler(new DragOverHandler() { @Override public void onDragOver(DragOverEvent event) { if (DraggedColumn.instance != null) { event.preventDefault(); event.stopPropagation(); if (DraggedColumn.instance.isMove()) { DraggedColumn<T> target = findTargetDraggedColumn(event.getNativeEvent().getEventTarget()); if (target != null) { event.getDataTransfer().<XDataTransfer>cast().setDropEffect("move"); } else { hideColumnDecorations(); event.getDataTransfer().<XDataTransfer>cast().setDropEffect("none"); } } else { Element hostElement = Grid.this.getElement(); int clientX = event.getNativeEvent().getClientX(); int hostAbsX = hostElement.getAbsoluteLeft(); int hostScrollX = hostElement.getScrollLeft(); int docScrollX = hostElement.getOwnerDocument().getScrollLeft(); int relativeX = clientX - hostAbsX + hostScrollX + docScrollX; ghostLine.getStyle().setLeft(relativeX, Style.Unit.PX); ghostLine.getStyle().setHeight(hostElement.getClientHeight(), Style.Unit.PX); if (ghostLine.getParentElement() != hostElement) { hostElement.appendChild(ghostLine); } } } } }, DragOverEvent.getType()); addDomHandler(new DragLeaveHandler() { @Override public void onDragLeave(DragLeaveEvent event) { if (DraggedColumn.instance != null) { event.stopPropagation(); if (DraggedColumn.instance.isMove()) { if (event.getNativeEvent().getEventTarget() == (JavaScriptObject) Grid.this.getElement()) { hideColumnDecorations(); } } } } }, DragLeaveEvent.getType()); addDomHandler(new DragEndHandler() { @Override public void onDragEnd(DragEndEvent event) { event.stopPropagation(); hideColumnDecorations(); DraggedColumn.instance = null; } }, DragEndEvent.getType()); addDomHandler(new DropHandler() { @Override public void onDrop(DropEvent event) { DraggedColumn<?> source = DraggedColumn.instance; DraggedColumn<T> target = targetDraggedColumn; hideColumnDecorations(); DraggedColumn.instance = null; if (source != null) { event.preventDefault(); event.stopPropagation(); if (source.isMove()) { AbstractCellTable<T> sourceSection = (AbstractCellTable<T>) source.getTable(); // target table may be any section in our grid if (target != null) { Header<?> sourceHeader = source.getHeader(); Header<?> targetHeader = target.getHeader(); if (sourceHeader instanceof DraggableHeader<?> && targetHeader instanceof DraggableHeader<?>) { DraggableHeader<T> sourceDH = (DraggableHeader<T>) sourceHeader; DraggableHeader<T> targetDH = (DraggableHeader<T>) targetHeader; moveColumnNode(sourceDH.getHeaderNode(), targetDH.getHeaderNode()); } else { int sourceIndex = source.getColumnIndex(); int targetIndex = target.getColumnIndex(); GridSection<T> targetSection = (GridSection<T>) target.getTable(); boolean isSourceLeft = sourceSection == headerLeft || sourceSection == frozenLeft || sourceSection == scrollableLeft || sourceSection == footerLeft; boolean isTargetLeft = targetSection == headerLeft || targetSection == frozenLeft || targetSection == scrollableLeft || targetSection == footerLeft; sourceSection = isSourceLeft ? headerLeft : headerRight; targetSection = isTargetLeft ? headerLeft : headerRight; int generalSourceIndex = isSourceLeft ? sourceIndex : sourceIndex + frozenColumns; int generalTargetIndex = isTargetLeft ? targetIndex : targetIndex + frozenColumns; Header<?> header = sourceSection.getHeader(sourceIndex); if (header instanceof DraggableHeader) { ((DraggableHeader) header).setTable(targetSection); } if (generalSourceIndex != generalTargetIndex) { Column<T, ?> column = (Column<T, ?>) source.getColumn(); if (!(header instanceof DraggableHeader) || ((DraggableHeader) header).isMoveable()) { moveColumn(generalSourceIndex, generalTargetIndex); } } } } } else { Header<?> header = source.getHeader(); if (!(header instanceof DraggableHeader) || ((DraggableHeader) header).isResizable()) { int newWidth = Math.max( event.getNativeEvent().getClientX() - source.getCellElement().getAbsoluteLeft(), MINIMUM_COLUMN_WIDTH); // Source and target tables are the same, so we can // cast to DraggedColumn<T> with no care setColumnWidthFromHeaderDrag(((DraggedColumn<T>) source).getColumn(), newWidth, Style.Unit.PX); } } } } }, DropEvent.getType()); columnsChevron.getElement().getStyle().setPosition(Style.Position.ABSOLUTE); columnsChevron.getElement().addClassName(COLUMNS_CHEVRON_STYLE); getElement().appendChild(columnsChevron.getElement()); columnsChevron.addDomHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { PopupPanel pp = new PopupPanel(); pp.setAutoHideEnabled(true); pp.setAutoHideOnHistoryEventsEnabled(true); pp.setAnimationEnabled(true); MenuBar columnsMenu = new MenuBar(true); fillColumns(columnsMenu, headerLeft); fillColumns(columnsMenu, headerRight); pp.setWidget(columnsMenu); pp.setPopupPosition(columnsChevron.getAbsoluteLeft(), columnsChevron.getAbsoluteTop()); pp.showRelativeTo(columnsChevron); } private void fillColumns(MenuBar aTarget, final GridSection<T> aSection) { for (int i = 0; i < aSection.getColumnCount(); i++) { Header<?> h = aSection.getHeader(i); final Column<T, ?> column = aSection.getColumn(i); SafeHtml rendered; if (h.getValue() instanceof String) { String hVal = (String) h.getValue(); rendered = hVal.startsWith("<html>") ? SafeHtmlUtils.fromTrustedString(hVal.substring(6)) : SafeHtmlUtils.fromString(hVal); } else { Cell.Context context = new Cell.Context(0, i, h.getKey()); SafeHtmlBuilder sb = new SafeHtmlBuilder(); h.render(context, sb); rendered = sb.toSafeHtml(); } MenuItemCheckBox miCheck = new MenuItemCheckBox(!aSection.isColumnHidden(column), rendered.asString(), true); miCheck.addValueChangeHandler(new ValueChangeHandler<Boolean>() { @Override public void onValueChange(ValueChangeEvent<Boolean> event) { if (Boolean.TRUE.equals(event.getValue())) { showColumn(column); } else { hideColumn(column); } Grid.this.onResize(); } }); aTarget.addItem(miCheck); } } }, ClickEvent.getType()); ColumnSortEvent.Handler sectionSortHandler = new ColumnSortEvent.Handler() { @Override public void onColumnSort(ColumnSortEvent event) { boolean isCtrlKey = ((GridSection<?>) event.getSource()).isCtrlKey(); boolean contains = false; int containsAt = -1; for (int i = 0; i < sortList.size(); i++) { if (sortList.get(i).getColumn() == event.getColumn()) { contains = true; containsAt = i; break; } } if (!contains) { if (!isCtrlKey) { sortList.clear(); } sortList.insert(sortList.size(), new ColumnSortList.ColumnSortInfo(event.getColumn(), true)); } else { boolean wasAscending = sortList.get(containsAt).isAscending(); if (!isCtrlKey) { sortList.clear(); if (wasAscending) { sortList.push(new ColumnSortList.ColumnSortInfo(event.getColumn(), false)); } } else { sortList.remove(sortList.get(containsAt)); if (wasAscending) { sortList.insert(containsAt, new ColumnSortList.ColumnSortInfo(event.getColumn(), false)); } } } ColumnSortEvent.fire(Grid.this, sortList); } }; headerLeft.getColumnSortList().setLimit(1); headerLeft.addColumnSortHandler(sectionSortHandler); headerRight.getColumnSortList().setLimit(1); headerRight.addColumnSortHandler(sectionSortHandler); gridColor = PublishedColor.create(211, 211, 211, 255); regenerateDynamicTDStyles(); regenerateDynamicOddRowsStyles(); getElement().<XElement>cast().addResizingTransitionEnd(this); }
From source file:com.bearsoft.gwt.ui.widgets.grid.Grid.java
protected void showColumnMoveDecorations(DraggedColumn<T> target) { targetDraggedColumn = target;//w w w. jav a 2 s. co m Element hostElement = getElement(); Element thtdElement = target.getCellElement(); int thLeft = thtdElement.getAbsoluteLeft(); thLeft = thLeft - getAbsoluteLeft() + hostElement.getScrollLeft(); ghostLine.getStyle().setLeft(thLeft, Style.Unit.PX); ghostLine.getStyle().setHeight(hostElement.getClientHeight(), Style.Unit.PX); ghostColumn.getStyle().setLeft(thLeft, Style.Unit.PX); ghostColumn.getStyle().setWidth(thtdElement.getOffsetWidth(), Style.Unit.PX); ghostColumn.getStyle().setHeight(hostElement.getClientHeight(), Style.Unit.PX); if (ghostLine.getParentElement() != hostElement) { ghostLine.removeFromParent(); hostElement.appendChild(ghostLine); } if (ghostColumn.getParentElement() != hostElement) { ghostColumn.removeFromParent(); hostElement.appendChild(ghostColumn); } }
From source file:com.cgxlib.core.CGXHelper.java
License:Apache License
public static int documentHeight() { Element document = XQ.document.getDocumentElement(); BodyElement body = XQ.body;/* w ww . j av a 2 s .co m*/ int maxBody = Math.max(body.getScrollHeight(), body.getOffsetHeight()); int maxDocument = Math.max(document.getClientHeight(), document.getScrollHeight()); maxDocument = Math.max(maxDocument, document.getOffsetHeight()); maxDocument = Math.max(maxDocument, maxBody); return maxDocument; }
From source file:com.cgxlib.core.component.modal.ModalBSViewHandler.java
License:Apache License
protected void adjustDialog() { Element documentElement = XQ.document.getDocumentElement(); boolean modalIsOverflowing = root.get(0).getScrollHeight() > documentElement.getClientHeight(); String right = this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth + "" : ""; String left = !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth + "" : ""; root.css("paddingLeft", left); root.css("paddingRight", right); }
From source file:com.cgxlib.xq.client.impl.DocumentStyleImpl.java
License:Apache License
private void fixInlineElement(Element e) { if (e.getClientHeight() == 0 && e.getClientWidth() == 0 && "inline".equals(curCSS(e, "display", true))) { setStyleProperty(e, "display", "inline-block"); setStyleProperty(e, "width", "auto"); setStyleProperty(e, "height", "auto"); }//from w w w. j av a 2 s. co m }