List of usage examples for org.apache.wicket Page visitChildren
public final <R> R visitChildren(final IVisitor<Component, R> visitor)
From source file:com.googlecode.wicketwebbeans.containers.ContainerModelTest.java
License:Apache License
private void detachModels(Page page) { page.visitChildren(new IVisitor<Component>() { public Object component(Component component) { try { // detach any models of the component component.detachModels(); } catch (Exception e) { // Ignore }/* ww w .j ava2 s . com*/ return IVisitor.CONTINUE_TRAVERSAL; } }); }
From source file:de.inren.frontend.application.InRenApplication.java
License:Apache License
public FeedbackPanel getFeedbackPanel(Page page) { return (FeedbackPanel) page.visitChildren(new FeedbackPanelVisitor()); }
From source file:de.micromata.genome.junittools.wicket.TpsbWicketTools.java
License:Apache License
/** * Internal finder./*from ww w.j ava 2 s. c o m*/ * * @param <X> the generic type * @param tester the tester * @param startComponent the start component * @param componentClass the component class * @param matcher the matcher * @return the list */ private static <X extends Component> List<X> internalFinder(WicketTester tester, MarkupContainer startComponent, Class<X> componentClass, final Matcher<Component> matcher) { final List<X> results = new LinkedList<X>(); Page lastRenderedPage = tester.getLastRenderedPage(); if (lastRenderedPage == null) { throw new IllegalStateException("You must call #goToPage before you can find components."); } if (componentClass == null) { componentClass = (Class<X>) Component.class; } final Class<? extends Component> searchComponent = componentClass; IVisitor<Component, Object> visitor = new IVisitor<Component, Object>() { @Override public void component(Component object, IVisit<Object> visit) { if (LOG.isDebugEnabled() == true) { LOG.debug("candite for wicket internalFinder: " + object.getClass().getSimpleName() + "|" + object.getId() + "|" + object.getPath()); } if (searchComponent.isAssignableFrom(object.getClass()) == true) { if (matcher.match(object) == true) { if (matcher instanceof TpsbWicketMatchSelector) { results.add((X) ((TpsbWicketMatchSelector) matcher).selectMatched(object)); } else { results.add((X) object); } } } } }; if (startComponent == null) { lastRenderedPage.visitChildren(visitor); } else { startComponent.visitChildren(visitor); } return results; }
From source file:de.micromata.genome.junittools.wicket.TpsbWicketTools.java
License:Apache License
/** * Find components for property model property. * //from ww w. j a va 2 s. co m * @param <X> the generic type * @param tester the tester * @param startComponent the start component * @param componentClass the component class * @param property the property * @return the list * @deprecated use TpsbWicketMatchSelector */ @Deprecated public static <X extends Component> List<X> _findComponentsForPropertyModelProperty(WicketTester tester, final MarkupContainer startComponent, final Class<X> componentClass, final String property) { final List<X> results = new LinkedList<X>(); Page lastRenderedPage = tester.getLastRenderedPage(); if (lastRenderedPage == null) { throw new IllegalStateException("You must call #goToPage before you can find components."); } if (componentClass == null || property == null) { throw new IllegalArgumentException("You must provide not null arguments."); } IVisitor<Component, Object> visitor = new IVisitor<Component, Object>() { @Override public void component(Component object, IVisit<Object> visit) { if (LOG.isDebugEnabled() == true) { LOG.debug("candite for wicket internalFinder: " + object.getClass().getSimpleName() + "|" + object.getId() + "|" + object.getPath()); } if (componentClass.isAssignableFrom(object.getClass()) == true) { IModel<?> defaultModel = object.getDefaultModel(); if (defaultModel instanceof AbstractPropertyModel == true) { AbstractPropertyModel propertyModel = (AbstractPropertyModel) defaultModel; if (StringUtils.equals(property, propertyModel.getPropertyExpression()) == true) { results.add((X) object); } } } } }; if (startComponent == null) { lastRenderedPage.visitChildren(visitor); } else { startComponent.visitChildren(visitor); } return results; }
From source file:org.apache.isis.viewer.wicket.model.models.WicketComponentUtils.java
License:Apache License
/** * Locates a component implementing the required class on the supplied page. *//*from w w w . j a v a 2 s . c om*/ public static <T> T getFrom(Page page, final Class<T> cls) { final Object[] pComponent = new Object[1]; page.visitChildren(new DeepChildFirstVisitor() { @Override public void component(Component component, IVisit<Void> visit) { if (cls.isAssignableFrom(component.getClass())) { pComponent[0] = component; visit.stop(); } } @Override public boolean preCheck(Component component) { return false; } }); return (T) pComponent[0]; }
From source file:org.apache.isis.viewer.wicket.ui.panels.FormExecutorDefault.java
License:Apache License
private void addComponentsToRedraw(final AjaxRequestTarget target) { final List<Component> componentsToRedraw = Lists.newArrayList(); final List<Component> componentsNotToRedraw = Lists.newArrayList(); final Page page = target.getPage(); page.visitChildren(new IVisitor<Component, Object>() { @Override/* www . j av a 2 s. c o m*/ public void component(final Component component, final IVisit<Object> visit) { if (component.getOutputMarkupId() && !(component instanceof Page)) { List<Component> listToAddTo = shouldRedraw(component) ? componentsToRedraw : componentsNotToRedraw; listToAddTo.add(component); } } private boolean shouldRedraw(final Component component) { // hmm... this doesn't work, because I think that the components // get removed after they've been added to target. // so.. still getting WARN log messages from XmlPartialPageUpdate // final Page page = component.findParent(Page.class); // if(page == null) { // // as per logic in XmlPartialPageUpdate, this has already been // // removed from page so don't attempt to redraw it // return false; // } final Object defaultModel = component.getDefaultModel(); if (!(defaultModel instanceof ScalarModel)) { return true; } final ScalarModel scalarModel = (ScalarModel) defaultModel; final UnchangingFacet unchangingFacet = scalarModel.getFacet(UnchangingFacet.class); return unchangingFacet == null || !unchangingFacet.value(); } }); for (Component componentNotToRedraw : componentsNotToRedraw) { MarkupContainer parent = componentNotToRedraw.getParent(); while (parent != null) { parent = parent.getParent(); } componentNotToRedraw.visitParents(MarkupContainer.class, new IVisitor<MarkupContainer, Object>() { @Override public void component(final MarkupContainer parent, final IVisit<Object> visit) { componentsToRedraw.remove(parent); // no-op if not in that list } }); if (componentNotToRedraw instanceof MarkupContainer) { final MarkupContainer containerNotToRedraw = (MarkupContainer) componentNotToRedraw; containerNotToRedraw.visitChildren(new IVisitor<Component, Object>() { @Override public void component(final Component parent, final IVisit<Object> visit) { componentsToRedraw.remove(parent); // no-op if not in that list } }); } } if (LOG.isDebugEnabled()) { debug(componentsToRedraw, componentsNotToRedraw); } for (Component component : componentsToRedraw) { target.add(component); } }
From source file:org.odlabs.wiquery.core.commons.WiQueryCoreHeaderContributor.java
License:Open Source License
private void renderResponse(final IHeaderResponse response) { Page page = RequestCycle.get().getResponsePage(); Boolean rendered;//from w w w. j av a2 s .c o m if (page == null) { rendered = RequestCycle.get().getMetaData(WIQUERY_KEY); } else { Long renderTime = page.getMetaData(WIQUERY_PAGE_KEY); rendered = renderTime != null && renderTime.equals(RequestCycle.get().getStartTime()); page.setMetaData(WIQUERY_PAGE_KEY, RequestCycle.get().getStartTime()); } RequestCycle.get().setMetaData(WIQUERY_KEY, Boolean.TRUE); if (rendered == null || !rendered) { WiQuerySettings settings = WiQuerySettings.get(); final List<WiQueryPluginRenderingListener> pluginRenderingListeners = getRenderingListeners(settings); WiQueryPluginCollector visitor = new WiQueryPluginCollector(); if (page != null) { page.visitChildren(visitor); visitor.component(page); } WiQueryHeaderResponse wiQueryHeaderResponse; IHeaderResponse headerResponse; if (settings.isEnableResourcesMerging() && page != null) { wiQueryHeaderResponse = page.getMetaData(WIQUERY_MERGER); if (wiQueryHeaderResponse == null) { wiQueryHeaderResponse = new WiQueryHeaderResponse(); page.setMetaData(WIQUERY_MERGER, wiQueryHeaderResponse); } wiQueryHeaderResponse.setIHeaderResponse(response); // Preserved already used // references headerResponse = wiQueryHeaderResponse; } else { wiQueryHeaderResponse = null; headerResponse = response; } WiQueryResourceManager manager = new WiQueryResourceManager(); JsStatement jsStatement = new JsStatement(); for (IWiQueryPlugin plugin : visitor.getPlugins()) { JsStatement tempStatement = plugin.statement(); if (tempStatement != null) { jsStatement.append("\t" + tempStatement.render() + "\n"); } // calling listeners to compute specific stuff for (WiQueryPluginRenderingListener listener : pluginRenderingListeners) { listener.onRender(plugin, manager, headerResponse); } plugin.contribute(manager); } initializeResourceManager(headerResponse, manager); mergeResources(response, settings, wiQueryHeaderResponse); JsQuery jsq = new JsQuery(); jsq.setStatement(jsStatement); jsq.renderHead(response, RequestCycle.get().getRequestTarget()); } }
From source file:org.odlabs.wiquery.tester.WiQueryTester.java
License:Open Source License
public List<IHeaderContributor> getHeaderContributors() { Page renderedPage = getLastRenderedPage(); final List<IHeaderContributor> contributors = new ArrayList<IHeaderContributor>(); renderedPage.visitChildren(new IVisitor<Component, Void>() { public void component(Component component, IVisit<Void> visit) { for (Behavior behavior : component.getBehaviors()) if (behavior instanceof IHeaderContributor) contributors.add((IHeaderContributor) behavior); }/*from w w w. ja v a 2s .c o m*/ }); return contributors; }
From source file:sf.wicklet.wicketext.util.WicketExtrasUtil.java
License:Apache License
public static Collection<Component> getComponents(final Page page) { final List<Component> data = new ArrayList<Component>(); if (page == null) { return data; }//www . j a va 2s. c om page.visitChildren(new IVisitor<Component, Void>() { @Override public void component(final Component component, final IVisit<Void> visit) { data.add(component); } }); return data; }