Class AjaxFallbackLink<T>

Type Parameters:
T - type of model object
All Implemented Interfaces:
Serializable, Iterable<Component>, IEventSink, IEventSource, IFeedbackContributor, IConverterLocator, IGenericComponent<T,Link<T>>, IMetadataContext<Serializable,Component>, IRequestListener, IHeaderContributor, IRequestableComponent, IHierarchical<Component>, IClusterable
Direct Known Subclasses:
IndicatingAjaxFallbackLink

public abstract class AjaxFallbackLink<T> extends Link<T>
An ajax link that will degrade to a normal request if ajax is not available or javascript is disabled.

If JavaScript is enabled then the registered JavaScript event 'click' handler will be used, otherwise the 'href' attribute if the markup element is an <a>, <area> or <link>. AjaxFallbackLink doesn't fallback if the markup element is none of the three above.

Since:
1.2
Author:
Igor Vaynberg (ivaynberg)
See Also:
  • Constructor Details

  • Method Details

    • onInitialize

      protected void onInitialize()
      Description copied from class: Component
      This method is meant to be used as an alternative to initialize components. Usually the component's constructor is used for this task, but sometimes a component cannot be initialized in isolation, it may need to access its parent component or its markup in order to fully initialize. This method is invoked once per component's lifecycle when a path exists from this component to the Page thus providing the component with an atomic callback when the component's environment is built out.

      Overrides must call super#Component.onInitialize(). Usually this should be the first thing an override does, much like a constructor.

      Parent containers are guaranteed to be initialized before their children

      It is safe to use Component.getPage() in this method

      NOTE:The timing of this call is not precise, the contract is that it is called sometime before Component.onBeforeRender().

      Overrides:
      onInitialize in class MarkupContainer
    • newAjaxEventBehavior

      Parameters:
      event - the name of the default event on which this link will listen to
      Returns:
      the ajax behavior which will be executed when the user clicks the link
    • updateAjaxAttributes

      protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
      Parameters:
      attributes -
    • onClick

      public final void onClick()
      Description copied from class: Link
      Called when a link is clicked.
      Specified by:
      onClick in class Link<T>
    • onClick

      public abstract void onClick(Optional<AjaxRequestTarget> target)
      Callback for the onClick event. If ajax failed and this event was generated via a normal link the target argument will be null
      Parameters:
      target - ajax target if this linked was invoked using ajax, null otherwise
    • onComponentTag

      protected void onComponentTag(ComponentTag tag)
      Checks if the tag supports href: a, area or link.
      Overrides:
      onComponentTag in class Link<T>
      Parameters:
      tag - the component tag
      See Also:
    • useJSEventBindingWhenNeeded

      protected boolean useJSEventBindingWhenNeeded()
      Description copied from class: Link
      This method can be overridden by a subclass to disable the JS event binding or provide custom event binding code is used.
      Overrides:
      useJSEventBindingWhenNeeded in class Link<T>
      Returns:
      true when a javascripot event binding must used to handle the click event.