Package elemental.html

Examples of elemental.html.DivElement


      return scrollbarElement;
    }

    private Element createScrollableElement(BaseResources.Css baseCss) {
      final DivElement scrollableElement = Elements.createDivElement(css.scrollable());
      scrollableElement.addClassName(baseCss.documentScrollable());

      scrollableElement.addEventListener(Event.SCROLL, new EventListener() {
        @Override
        public void handleEvent(Event evt) {
          setScrollTop(scrollableElement.getScrollTop(), false);
        }
      }, false);

      scrollableElement.addEventListener(Event.CONTEXTMENU, new EventListener() {
        @Override
        public void handleEvent(Event evt) {
          /*
           * TODO: eventually have our context menu, but for now
           * disallow browser's since it's confusing that it does not have copy
           * nor paste options
           */
          evt.stopPropagation();
          evt.preventDefault();
        }
      }, false);

      // TODO: Detach listener in appropriate moment.
      MouseGestureListener.createAndAttach(scrollableElement, new MouseGestureListener.Callback() {
        @Override
        public boolean onClick(int clickCount, MouseEvent event) {
          // The buffer area does not include the scrollable's padding
          int bufferClientLeft = css.scrollableLeftPadding();
          int bufferClientTop = 0;
          for (Element element = scrollableElement; element.getOffsetParent() != null;
              element = element.getOffsetParent()) {
            bufferClientLeft += element.getOffsetLeft();
            bufferClientTop += element.getOffsetTop();
          }

          /*
           * This onClick method will get called for horizontal scrollbar interactions. We want to
           * exit early for those. It will not get called for vertical scrollbar interactions since
           * that is a separate element outside of the scrollable element.
           */
          if (scrollableElement == event.getTarget()) {
            // Test if the mouse event is on the horizontal scrollbar.
            int relativeY = event.getClientY() - bufferClientTop;
            if (relativeY > scrollableElement.getClientHeight()) {
              // Prevent editor losing focus
              event.preventDefault();
              return false;
            }
          }

          getDelegate().onMouseClick(clickCount,
              event.getClientX(),
              event.getClientY(),
              bufferClientLeft,
              bufferClientTop,
              event.isShiftKey());

          return true;
        }

        @Override
        public void onDragRelease(MouseEvent event) {
          getDelegate().onMouseDragRelease(event.getClientX(), event.getClientY());
        }

        @Override
        public void onDrag(MouseEvent event) {
          getDelegate().onMouseDrag(event.getClientX(), event.getClientY());
        }
      });

      /*
       * Don't allow tabbing to this -- the input element will be tabbable
       * instead
       */
      scrollableElement.setTabIndex(-1);

      Browser.getWindow().addEventListener(Event.RESIZE, new EventListener() {
        @Override
        public void handleEvent(Event evt) {
          // TODO: also listen for the navigation slider
          // this event is being caught multiple times, and sometimes the
          // calculated values are all zero. So only respond if we have positive
          // values.
          int height = (int) textLayerElement.getBoundingClientRect().getHeight();
          int viewportHeight = getHeight();
          if (height > 0 && viewportHeight > 0) {
            getDelegate().onScrollableResize(
                height, viewportHeight, scrollableElement.getScrollTop());
          }
        }
      }, false);

      return scrollableElement;
View Full Code Here


    Css css = getView().css;
    buildPager(page, pageCount, css);

    for (int i = 0; i < items.size(); i++) {
      SearchResult item = items.get(i);
      DivElement outer = Elements.createDivElement();
      if (i > 0) {
        outer.setClassName(css.second());
      }
      final PathUtil path = new PathUtil(item.getTitle());
      AnchorElement title = Elements.createAnchorElement(css.title());
      title.setTextContent(item.getTitle());
      if (item.getUrl() != null) {
        // this is unusual, but allows search results to point outside of this
        // workspace, e.g. to language API docs.
        title.setHref(item.getUrl());
      } else {
        // this is the common case; the title will be a path in this workspace
        // and clicking on the link should take us to its editor.
        title.setOnClick(new EventListener() {
          @Override
          public void handleEvent(Event evt) {
            currentPlace.fireChildPlaceNavigation(
                FileSelectedPlace.PLACE.createNavigationEvent(path));
          }
        });
      }
      outer.appendChild(title);
      JsoArray<Snippet> snippets = (JsoArray<Snippet>) item.getSnippets();
      for (int j = 0; j < snippets.size(); j++) {
        DivElement snippetDiv = Elements.createDivElement(css.snippet());
        final int lineNo = snippets.get(j).getLineNumber();
        snippetDiv.setTextContent(lineNo + ": " + snippets.get(j).getSnippetText());
        snippetDiv.setOnClick(new EventListener() {
          @Override
          public void handleEvent(Event evt) {
            // lineNo is 1-based, whereas the editor expects 0-based
            int documentLineNo = lineNo - 1;
            currentPlace.fireChildPlaceNavigation(
View Full Code Here

  }

  private void buildPager(final int page, final int pageCount, Css css) {
    if (pageCount > 1) {
      if (page > 1) {
        DivElement previous = Elements.createDivElement(css.previous());
        getView().pager.appendChild(previous);
        previous.setOnClick(new EventListener() {
          @Override
          public void handleEvent(Event evt) {
            currentPlace.fireChildPlaceNavigation(
                SearchPlace.PLACE.createNavigationEvent(query, page - 1));
          }
        });
      }
      if (page > 7) {
        SpanElement elipsis = Elements.createSpanElement(css.thispage());
        elipsis.setTextContent("...");
        getView().pager.appendChild(elipsis);
      }
      // page numbers are one-based (i.e. human-oriented)
      for (int i = page > 6 ? page - 6 : 1; i < pageCount + 1 && i < page + 6; i++) {
        SpanElement counter =
            Elements.createSpanElement(i == page ? css.thispage() : css.otherpage());
        counter.setTextContent(Integer.toString(i));
        getView().pager.appendChild(counter);
        final int pageNumber = i;
        counter.setOnClick(new EventListener() {
          @Override
          public void handleEvent(Event evt) {
            currentPlace.fireChildPlaceNavigation(
                SearchPlace.PLACE.createNavigationEvent(query, pageNumber));
          }
        });
        if (page + 7 < pageCount + 1) {
          SpanElement elipsis = Elements.createSpanElement(css.thispage());
          elipsis.setTextContent("...");
          getView().pager.appendChild(elipsis);
        }
      }
      if (page < pageCount) {
        DivElement next = Elements.createDivElement(css.next());
        getView().pager.appendChild(next);
        next.setOnClick(new EventListener() {
          @Override
          public void handleEvent(Event evt) {
            currentPlace.fireChildPlaceNavigation(
                SearchPlace.PLACE.createNavigationEvent(query, page + 1));
          }
View Full Code Here

  public static Element getFirstElementByClassName(Element element, String className) {
    return (Element) element.getElementsByClassName(className).item(0);
  }

  public static DivElement appendDivWithTextContent(Element root, String className, String text) {
    DivElement element = Elements.createDivElement(className);
    element.setTextContent(text);
    root.appendChild(element);
    return element;
  }
View Full Code Here

      }
      debugSetter.on(getElement());
    }

    private Element createDom() {
      DivElement root = Elements.createDivElement(css.statusArea());
      statusText = Elements.createDivElement(css.statusText());
      statusDismiss = Elements.createDivElement(css.statusDismiss());
      statusDismiss.setOnClick(new EventListener() {
        @Override
        public void handleEvent(Event evt) {
          getDelegate().onStatusDismissed();
        }
      });
      new DebugAttributeSetter().setId(DebugId.STATUS_PRESENTER).on(root);

      longText = Elements.createPreElement();
      longText.setClassName(css.longText());
      longText.getStyle().setDisplay(CSSStyleDeclaration.Display.NONE);

      more = Elements.createSpanElement();
      more.setClassName(css.more());
      more.setTextContent("show more details...");
      more.setOnClick(new EventListener() {
        @Override
        public void handleEvent(Event evt) {
          getDelegate().onStatusExpanded();
        }
      });

      actionsContainer = Elements.createDivElement();
      actionsContainer.setClassName(css.actionsContainer());

      fatalImage = Elements.createDivElement(css.fatalImage());

      root.appendChild(fatalImage);
      root.appendChild(statusText);
      root.appendChild(more);
      root.appendChild(actionsContainer);
      root.appendChild(statusDismiss);
      root.appendChild(longText);

      return root;
    }
View Full Code Here

      toggleTimeline(false);
    }

    public void setNotice(String text) {
      DivElement notice = Elements.createDivElement(css.notice());
      notice.setTextContent(text);
      nodeContainer.appendChild(notice);
    }
View Full Code Here

  /**
   * Creates a div from the specified {@link ImageResource}.
   */
  public static DivElement createImageElement(ImageResource image) {
    DivElement elem = Elements.createDivElement();
    applyImageResource(elem, image);
    return elem;
  }
View Full Code Here

   * Sets the appropriate icon based on the type of changed file.
   *
   * @param changedNode
   */
  public static DivElement makeConflictIconDiv(Css css, NodeConflictDto changedNode) {
    DivElement icon = Elements.createDivElement();
    if (changedNode.getSimplifiedConflictType() !=
        NodeConflictDto.SimplifiedConflictType.RESOLVED) {
      icon.setClassName(css.conflictIcon());
    } else {
      icon.setClassName(css.resolvedIcon());
    }
    icon.addClassName(css.commonIcon());
    return icon;
  }
View Full Code Here

  /**
   * Sets the appropriate icon based on the type of changed file.
   */
  public static DivElement makeModifiedIconDiv(Css css, MutationType mutationType) {
    DivElement icon = Elements.createDivElement();
    switch (mutationType) {
      case ADDED:
      case COPIED:
      case COPIED_AND_EDITED:
        icon.setClassName(css.addedIcon());
        break;
      case DELETED:
        icon.setClassName(css.removedIcon());
        break;
      case EDITED:
      case MOVED:
      case MOVED_AND_EDITED:
        icon.setClassName(css.deltaIcon());
        break;
      default:
        Log.error(DiffCommon.class, "Unknown modification type " + mutationType);
        icon.setClassName(css.deltaIcon());
    }
    icon.addClassName(css.commonIcon());
    return icon;
  }
View Full Code Here

  @Override
  public SpanElement renderNodeContents(OutlineNode data) {
    SpanElement root = Elements.createSpanElement(css.root());

    DivElement icon = Elements.createDivElement(css.icon());
    switch (data.getType()) {
      case CLASS:
        icon.addClassName(css.clazz());
        break;

      case FUNCTION:
        icon.addClassName(css.function());
        break;

      case FIELD:
        icon.addClassName(css.jsField());
        break;

      case CSS_CLASS:
        icon.addClassName(css.cssClazz());
        break;
    }

    SpanElement label = Elements.createSpanElement(css.label());
    label.setTextContent(data.getName());
View Full Code Here

TOP

Related Classes of elemental.html.DivElement

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.