Package org.apache.wicket.markup

Examples of org.apache.wicket.markup.MarkupElement


    {
      return -1;
    }

    // Scan the markup for <wicket:head>.
    MarkupElement elem = associatedMarkupStream.get();
    while (elem != null)
    {
      if (elem instanceof WicketTag)
      {
        WicketTag tag = (WicketTag)elem;
View Full Code Here


        tag = null;
      }

      while (markupStream.hasMore())
      {
        final MarkupElement cursor = markupStream.next();

        if (cursor.closes(parent))
        {
          // parent close tag found, we are done
          break;
        }

        if (tag != null && cursor.closes(tag))
        {
          // child tag is closed, next tag is either parent-close or next direct child
          tag = null;
        }
        else if (tag == null && cursor instanceof ComponentTag)
View Full Code Here

    stream.setCurrentIndex(0);

    boolean insideBorderMarkup = false;
    while (stream.hasMore())
    {
      MarkupElement e = stream.get();
      stream.next();
      if (e instanceof WicketTag)
      {
        WicketTag wt = (WicketTag)e;
        if (!insideBorderMarkup)
        {
          if (wt.isBorderTag() && wt.isOpen())
          {
            insideBorderMarkup = true;
            continue;
          }
          else
          {
            throw new WicketRuntimeException(
              "Unexpected tag encountered in markup of component border " +
                getClass().getName() + ". Tag: " + wt.toString() +
                ", expected tag: <wicket:border>");
          }
        }
        else
        {
          if (wt.isBodyTag())
          {
            break;
          }
          else
          {
            throw new WicketRuntimeException(
              "Unexpected tag encountered in markup of component border " +
                getClass().getName() + ". Tag: " + wt.toString() +
                ", expected tag: <wicket:body> or </wicket:body>");
          }
        }
      }
      if (insideBorderMarkup)
      {
        response.write(e.toCharSequence());
      }
    }

    if (!stream.hasMore())
    {
View Full Code Here

    final MarkupStream stream = getMarkupStream(component);
    final Response response = component.getResponse();

    while (stream.hasMore())
    {
      MarkupElement e = stream.get();
      stream.next();
      if (e instanceof WicketTag)
      {
        WicketTag wt = (WicketTag)e;
        if (wt.isBorderTag() && wt.isClose())
        {
          break;
        }
        else
        {
          throw new WicketRuntimeException(
            "Unexpected tag encountered in markup of component border " +
              getClass().getName() + ". Tag: " + wt.toString() +
              ", expected tag: </wicket:border>");
        }
      }
      response.write(e.toCharSequence());
    }
  }
View Full Code Here

    // skip until the targetted tag is found
    associatedMarkupStream.skipUntil(openTagName);
    setMarkupStream(associatedMarkupStream);

    // Get open tag in associated markup of border component
    MarkupElement elem = associatedMarkupStream.get();
    if ((elem instanceof ComponentTag) == false)
    {
      associatedMarkupStream.throwMarkupException("Expected the open tag. " +
        exceptionMessage);
    }
View Full Code Here

   *            The markup stream
   */
  protected final void renderNext(final MarkupStream markupStream)
  {
    // Get the current markup element
    final MarkupElement element = markupStream.get();

    // If it a tag like <wicket..> or <span wicket:id="..." >
    if ((element instanceof ComponentTag) && !markupStream.atCloseTag())
    {
      // Get element as tag
      final ComponentTag tag = (ComponentTag)element;

      // Get component id
      final String id = tag.getId();

      // Get the component for the id from the given container
      final Component component = get(id);

      // Failed to find it?
      if (component != null)
      {
        component.render(markupStream);
      }
      else
      {
        // 2rd try: Components like Border and Panel might implement
        // the ComponentResolver interface as well.
        MarkupContainer container = this;
        while (container != null)
        {
          if (container instanceof IComponentResolver)
          {
            if (((IComponentResolver)container).resolve(this, markupStream, tag))
            {
              return;
            }
          }

          container = container.findParent(MarkupContainer.class);
        }

        // 3rd try: Try application's component resolvers
        final List<IComponentResolver> componentResolvers = getApplication().getPageSettings()
          .getComponentResolvers();
        final Iterator<IComponentResolver> iterator = componentResolvers.iterator();
        while (iterator.hasNext())
        {
          final IComponentResolver resolver = iterator.next();
          if (resolver.resolve(this, markupStream, tag))
          {
            return;
          }
        }

        if (tag instanceof WicketTag)
        {
          if (((WicketTag)tag).isChildTag())
          {
            markupStream.throwMarkupException("Found " + tag.toString() +
              " but no <wicket:extend>");
          }
          else
          {
            markupStream.throwMarkupException("Failed to handle: " +
              tag.toString() +
              ". It might be that no resolver has been registered to handle this special tag. " +
              " But it also be that you declared wicket:id=" + id +
              " in your markup, but that you either did not add the " +
              "component to your page at all, or that the hierarchy does not match.");
          }
        }

        // No one was able to handle the component id
        markupStream.throwMarkupException("Unable to find component with id '" + id +
          "' in " + this + ". This means that you declared wicket:id=" + id +
          " in your markup, but that you either did not add the " +
          "component to your page at all, or that the hierarchy does not match.");
      }
    }
    else
    {
      // Render as raw markup
      if (log.isDebugEnabled())
      {
        log.debug("Rendering raw markup");
      }
      getResponse().write(element.toCharSequence());
      markupStream.next();
    }
  }
View Full Code Here

    {
      throw new WicketParseException("Wicket remove tag must not be an open-close tag:", tag);
    }

    // fetch markup elements
    MarkupElement markupElement;
    while ((markupElement = getNextFilter().nextElement()) != null)
    {
      // skip non-component tags
      if((markupElement instanceof ComponentTag) == false)
      {
View Full Code Here

    IMarkupFragment markup = getMarkup();
    if (markup != null)
    {
      for (int i = 0; i < markup.size(); i++)
      {
        MarkupElement elem = markup.get(i);
        if (elem instanceof ComponentTag)
        {
          return (ComponentTag)elem;
        }
      }
View Full Code Here

    MarkupStream markupStream = new MarkupStream(markup);

    // Flag: we started the render process
    markRendering(true);

    MarkupElement elem = markup.get(0);
    if (elem instanceof ComponentTag)
    {
      // Guarantee that the markupStream is set and determineVisibility not yet tested
      // See WICKET-2049
      ((ComponentTag)elem).onBeforeRender(this, markupStream);
View Full Code Here

      throw new MarkupNotFoundException("No Markup found for Fragment " + markupId +
        " in providing markup container " + getMarkupProvider(container));
    }
    else
    {
      MarkupElement fragmentTag = childMarkup.get(0);
      if ((fragmentTag instanceof WicketTag && ((WicketTag)fragmentTag).isFragmentTag()) == false)
      {
        throw new MarkupNotFoundException("Markup found for Fragment '" + markupId
          + "' in providing markup container " + getMarkupProvider(container)
          + " is not a <wicket:fragment> tag");
View Full Code Here

TOP

Related Classes of org.apache.wicket.markup.MarkupElement

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.