/** * Triggers loading of all {@link AjaxLazyLoadPanel}'s content in a page. * * @param wt * the tester * @param page * contains the {@link AjaxLazyLoadPanel}s to trigger */ public static void executeAjaxLazyLoadPanel(final BaseWicketTester wt, final Page page) { // get the AbstractAjaxBehaviour which is responsible for // getting the contents of the lazy panel List<AjaxLazyLoadTimer> behaviors = page.getBehaviors(AjaxLazyLoadTimer.class); if (behaviors.size() == 0) { logger.warn("No timer behavior for AjaxLazyLoadPanel found. A curious situation..."); return; } else if (behaviors.size() > 1) { logger.warn( "Multiple timer behavior for AjaxLazyLoadPanel found. A curious situation..."); } wt.executeBehavior(behaviors.get(0)); }
private void subscribeComponent(Component component, Behavior behavior, Method method) { EventSubscription subscription = new EventSubscription(component, behavior, method); Page page = component.getPage(); eventBus.register(page, subscription); if (page.getBehaviors(AtmosphereBehavior.class).isEmpty()) page.add(new AtmosphereBehavior()); } }
private void subscribeComponent(Component component, Behavior behavior, Method method) { EventSubscription subscription = new EventSubscription(component, behavior, method); Page page = component.getPage(); eventBus.register(page, subscription); if (page.getBehaviors(AtmosphereBehavior.class).isEmpty()) page.add(new AtmosphereBehavior()); } }
/** * Initialize a timer - default implementation installs an {@link AbstractAjaxTimerBehavior} on the page, * if it is not already present. */ protected void initTimer() { // when the timer is not yet installed add it List<AjaxLazyLoadTimer> behaviors = getPage().getBehaviors(AjaxLazyLoadTimer.class); if (behaviors.isEmpty()) { AbstractAjaxTimerBehavior timer = new AjaxLazyLoadTimer(); getPage().add(timer); getRequestCycle().find(AjaxRequestTarget.class).ifPresent(target -> { // the timer will not be rendered, so restart it immediately on the Ajax target timer.restart(target); }); } }
/** * Don't call super since WicketAjax is loaded by Yui webapp behavior * TODO: webapp ajax is configurable, maybe check here and still load it. */ @Override public void renderHead(Component component, IHeaderResponse response) { if (context == null) { Page page = component.getPage(); for (Behavior behavior : page.getBehaviors()) { if (behavior instanceof IYuiManager) { context = ((IYuiManager) behavior).newContext(); addHeaderContribution(context); break; } } if (context == null) { throw new IllegalStateException( "Page has no yui manager behavior, unable to register module dependencies."); } } onRenderHead(response); context.renderHead(response); }
/** * Don't call super since WicketAjax is loaded by Yui webapp behavior * TODO: webapp ajax is configurable, maybe check here and still load it. */ @Override public final void renderHead(Component component, IHeaderResponse response) { if (context == null) { Page page = component.getPage(); for (Behavior behavior : page.getBehaviors()) { if (behavior instanceof IYuiManager) { context = ((IYuiManager) behavior).newContext(); addHeaderContribution(context); break; } } if (context == null) { throw new IllegalStateException( "Page has no yui manager behavior, unable to register module dependencies."); } } context.renderHead(response); onRenderHead(response); }
/** * Don't call super since WicketAjax is loaded by Yui webapp behavior * TODO: webapp ajax is configurable, maybe check here and still load it. */ @Override public final void renderHead(IHeaderResponse response) { if (context == null) { Page page = component.getPage(); for (IBehavior behavior : page.getBehaviors()) { if (behavior instanceof IYuiManager) { context = ((IYuiManager) behavior).newContext(); addHeaderContribution(context); break; } } if (context == null) { throw new IllegalStateException( "Page has no yui manager behavior, unable to register module dependencies."); } } onRenderHead(response); context.renderHead(response); }
/** * Don't call super since WicketAjax is loaded by Yui webapp behavior * TODO: webapp ajax is configurable, maybe check here and still load it. */ @Override public final void renderHead(IHeaderResponse response) { if (context == null) { Page page = component.getPage(); for (IBehavior behavior : page.getBehaviors()) { if (behavior instanceof IYuiManager) { context = ((IYuiManager) behavior).newContext(); addHeaderContribution(context); break; } } if (context == null) { throw new IllegalStateException( "Page has no yui manager behavior, unable to register module dependencies."); } } onRenderHead(response); context.renderHead(response); }
/** * Don't call super since WicketAjax is loaded by Yui webapp behavior * TODO: webapp ajax is configurable, maybe check here and still load it. */ @Override public void renderHead(IHeaderResponse response) { if (context == null) { Page page = getComponent().getPage(); for (IBehavior behavior : page.getBehaviors()) { if (behavior instanceof IYuiManager) { context = ((IYuiManager) behavior).newContext(); addHeaderContribution(context); break; } } if (context == null) { throw new IllegalStateException( "Page has no yui manager behavior, unable to register module dependencies."); } } onRenderHead(response); context.renderHead(response); }
private void initialize(final WicketTester wicketTester, Page page) { // remove any already installed AtmosphereBehaviors on the page List<AtmosphereBehavior> behaviors = page.getBehaviors(AtmosphereBehavior.class); page.remove(behaviors.toArray(new AtmosphereBehavior[behaviors.size()])); // install AtmosphereBehavior that doesn't use Meteor AtmosphereBehavior atmosphereBehavior = new TesterAtmosphereBehavior(wicketTester, eventBus); page.add(atmosphereBehavior); // start the page to collect all @Subscribe methods in the component hierarchy wicketTester.startPage(page); // pretend it is a websocket connection wicketTester.getRequest().setHeader(HeaderConfig.X_ATMOSPHERE_TRANSPORT, AtmosphereResource.TRANSPORT.WEBSOCKET.name()); // start the "upgrade" connection suspendedResponse = wicketTester.getResponse(); wicketTester.executeBehavior(atmosphereBehavior); }
/** * Don't call super since WicketAjax is loaded by Yui webapp behavior * TODO: webapp ajax is configurable, maybe check here and still load it. */ @Override public void renderHead(IHeaderResponse response) { if (context == null) { Page page = getComponent().getPage(); for (IBehavior behavior : page.getBehaviors()) { if (behavior instanceof IYuiManager) { context = ((IYuiManager) behavior).newContext(); addHeaderContribution(context); break; } } if (context == null) { throw new IllegalStateException( "Page has no yui manager behavior, unable to register module dependencies."); } } onRenderHead(response); context.renderHead(response); }
@Override protected void onBeforeRender() { super.onBeforeRender(); if (detectedFlash == null) { Page page = getPage(); for (IBehavior behavior : page.getBehaviors()) { if (behavior instanceof WebAppBehavior) { WebAppBehavior webapp = (WebAppBehavior) behavior; detectedFlash = webapp.getFlash(); } } } if (isFlash()) { renderFlashUpload(); } else { renderJavascriptUpload(); } }
@Override protected void onBeforeRender() { super.onBeforeRender(); if (detectedFlash == null) { Page page = getPage(); for (IBehavior behavior : page.getBehaviors()) { if (behavior instanceof WebAppBehavior) { WebAppBehavior webapp = (WebAppBehavior) behavior; detectedFlash = webapp.getFlash(); } } } if (isFlash()) { renderFlashUpload(); } else { renderJavascriptUpload(); } }
/** * Don't call super since WicketAjax is loaded by Yui webapp behavior * TODO: webapp ajax is configurable, maybe check here and still load it. */ @Override public final void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); if (_helper == null) { Page page = component.getPage(); for (Behavior behavior : page.getBehaviors()) { if (behavior instanceof IYuiManager) { _helper = ((IYuiManager) behavior).newContext(); _helper.addJavascriptReference(new JavaScriptResourceReference(OnEnterAjaxBehavior.class, "enter.js")); break; } } if (_helper == null) { throw new IllegalStateException("Page has no yui manager behavior, unable to register module dependencies."); } _helper.addOnDomLoad("new Hippo.EnterHandler('" + component.getMarkupId() + "')"); } _helper.renderHead(response); }
tester.getLastRenderedPage().getBehaviors(AbstractAjaxTimerBehavior.class).get(0));