You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2010/03/25 08:03:20 UTC
svn commit: r927290 - in /wicket/trunk:
wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/
wicket-extensions/src/main/java/org/apache/wicket/extensions/breadcrumb/panel/
wicket-util/src/main/java/org/apache/wicket/util/visit...
Author: ivaynberg
Date: Thu Mar 25 07:03:19 2010
New Revision: 927290
URL: http://svn.apache.org/viewvc?rev=927290&view=rev
Log:
more visitor cleanup. externalized and simplified. still lots of stuff to do.
Added:
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisit.java (with props)
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitFilter.java (with props)
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitor.java (with props)
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visit.java (with props)
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visits.java (with props)
Modified:
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanelTester.java
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/breadcrumb/panel/BreadCrumbParticipantDelegate.java
wicket/trunk/wicket/src/main/disabled/org/apache/wicket/protocol/http/MockHttpServletRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormValidatingBehavior.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/debug/PageView.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/list/ListView.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ChildFirstHeaderRenderStrategy.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/DeepChildFirstVisitor.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ParentFirstHeaderRenderStrategy.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/VisitorTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormTest.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadFieldTest.java
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanelTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanelTester.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanelTester.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanelTester.java Thu Mar 25 07:03:19 2010
@@ -19,13 +19,13 @@ package org.apache.wicket.extensions.aja
import java.util.List;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.ajax.AjaxSelfUpdatingTimerBehavior;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
import org.apache.wicket.behavior.BehaviorsUtil;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.util.tester.WicketTester;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/breadcrumb/panel/BreadCrumbParticipantDelegate.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/breadcrumb/panel/BreadCrumbParticipantDelegate.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/breadcrumb/panel/BreadCrumbParticipantDelegate.java (original)
+++ wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/breadcrumb/panel/BreadCrumbParticipantDelegate.java Thu Mar 25 07:03:19 2010
@@ -21,10 +21,10 @@ package org.apache.wicket.extensions.bre
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.extensions.breadcrumb.IBreadCrumbParticipant;
import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
* Base implementation for {@link Panel}/ {@link Component} based {@link IBreadCrumbParticipant}
@@ -84,8 +84,7 @@ public abstract class BreadCrumbParticip
// NOTE unfortunately, we can't rely on the path pre 2.0
Component c = parent.visitChildren(new IVisitor<Component, Component>()
{
- public void component(Component component,
- final IVisit<Component> visit)
+ public void component(Component component, final IVisit<Component> visit)
{
if (component.getId().equals(thisId))
{
Added: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisit.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisit.java?rev=927290&view=auto
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisit.java (added)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisit.java Thu Mar 25 07:03:19 2010
@@ -0,0 +1,10 @@
+package org.apache.wicket.util.visit;
+
+public interface IVisit<R>
+{
+ void stop();
+
+ void stop(R result);
+
+ void dontGoDeeper();
+}
Propchange: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisit.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitFilter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitFilter.java?rev=927290&view=auto
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitFilter.java (added)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitFilter.java Thu Mar 25 07:03:19 2010
@@ -0,0 +1,21 @@
+package org.apache.wicket.util.visit;
+
+public interface IVisitFilter
+{
+ boolean visitObject(Object object);
+
+ boolean visitChildren(Object object);
+
+ public static IVisitFilter ANY = new IVisitFilter()
+ {
+ public boolean visitObject(Object object)
+ {
+ return true;
+ }
+
+ public boolean visitChildren(Object object)
+ {
+ return true;
+ }
+ };
+}
Propchange: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitFilter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitor.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitor.java?rev=927290&view=auto
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitor.java (added)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitor.java Thu Mar 25 07:03:19 2010
@@ -0,0 +1,25 @@
+package org.apache.wicket.util.visit;
+
+
+/**
+ * Generic component visitor interface for component traversals.
+ *
+ * @param <T>
+ * The component
+ */
+public interface IVisitor<T, R>
+{
+ /**
+ * Called at each component in a visit.
+ *
+ * @param component
+ * The component
+ * @param traversal
+ * An {@link IVisit} which state will be modified depending on
+ * the visitation. CONTINUE_TRAVERSAL (null) if the traversal
+ * should continue, or a non-null return value for the traversal
+ * method if it should stop. If no return value is useful, the
+ * generic non-null value STOP_TRAVERSAL can be used.
+ */
+ public void component(T component, IVisit<R> visit);
+}
\ No newline at end of file
Propchange: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/IVisitor.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visit.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visit.java?rev=927290&view=auto
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visit.java (added)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visit.java Thu Mar 25 07:03:19 2010
@@ -0,0 +1,50 @@
+package org.apache.wicket.util.visit;
+public class Visit<R> implements IVisit<R>
+ {
+ private static enum Action {
+ CONTINUE, CONTINUE_BUT_DONT_GO_DEEPER, STOP;
+ }
+
+ private R result;
+ private Action action = Action.CONTINUE;
+
+ public void stop()
+ {
+ stop(null);
+ }
+
+ public void stop(R result)
+ {
+ action = Action.STOP;
+ this.result = result;
+ }
+
+ public void dontGoDeeper()
+ {
+ action = Action.CONTINUE_BUT_DONT_GO_DEEPER;
+ }
+
+ public boolean isStopped()
+ {
+ return action == Action.STOP;
+ }
+
+ public boolean isContinue()
+ {
+ return action == Action.CONTINUE;
+ }
+
+ public boolean isDontGoDeeper()
+ {
+ return action == Action.CONTINUE_BUT_DONT_GO_DEEPER;
+ }
+
+ public R getResult()
+ {
+ return result;
+ }
+
+
+ }
+
+
\ No newline at end of file
Propchange: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visit.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visits.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visits.java?rev=927290&view=auto
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visits.java (added)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visits.java Thu Mar 25 07:03:19 2010
@@ -0,0 +1,161 @@
+package org.apache.wicket.util.visit;
+
+import java.util.Iterator;
+
+
+public class Visits
+{
+ // TODO replace class argument with IVisitFilter
+ public static final <S, R> R visitChildren(Iterable<?> container, final Class<?> clazz,
+ final IVisitor<S, R> visitor)
+ {
+ Visit<R> visit = new Visit<R>();
+ visitChildren(container, clazz, visitor, visit);
+ return visit.getResult();
+ }
+
+
+ private static final <S, R> void visitChildren(Iterable<?> container, final Class<?> clazz,
+ final IVisitor<S, R> visitor, Visit<R> visit)
+ {
+ if (visitor == null)
+ {
+ throw new IllegalArgumentException("argument visitor may not be null");
+ }
+
+ // Iterate through children of this container
+ for (final Iterator<?> children = container.iterator(); children.hasNext();)
+ {
+ // Get next child component
+ final Object child = children.next();
+
+ // Is the child of the correct class (or was no class specified)?
+ if (clazz == null || clazz.isInstance(child))
+ {
+ Visit<R> childTraversal = new Visit<R>();
+
+ // Call visitor
+ @SuppressWarnings("unchecked")
+ S s = (S)child;
+ visitor.component(s, childTraversal);
+
+ if (childTraversal.isStopped())
+ {
+ visit.stop(childTraversal.getResult());
+ return;
+ }
+ else if (childTraversal.isDontGoDeeper())
+ {
+ continue;
+ }
+ }
+
+ // If child is a container
+ if (!visit.isDontGoDeeper() && (child instanceof Iterable<?>))
+ {
+ // visit the children in the container
+ visitChildren((Iterable<?>)child, clazz, visitor, visit);
+
+ if (visit.isStopped())
+ {
+ return;
+ }
+ }
+ }
+
+ return;
+ }
+
+ /**
+ * Traverses all child components in this container, calling the visitor's
+ * visit method at each one.
+ *
+ * @param visitor
+ * The visitor to call back to
+ * @return The return value from a visitor which halted the traversal, or
+ * null if the entire traversal occurred
+ */
+ public static final <S, R> R visitChildren(Iterable<?> visitable, final IVisitor<S, R> visitor)
+ {
+ return visitChildren(visitable, null, visitor);
+ }
+
+ /**
+ * Visits any form components inside component if it is a container, or
+ * component itself if it is itself a form component
+ *
+ * @param component
+ * starting point of the traversal
+ *
+ * @param visitor
+ * The visitor to call
+ */
+ public static final <S, R> R visitComponentsPostOrder(Iterable<?> component,
+ final org.apache.wicket.util.visit.IVisitor<S, R> visitor)
+ {
+ return visitComponentsPostOrder(component, visitor, IVisitFilter.ANY);
+ }
+
+ /**
+ * Visits any form components inside component if it is a container, or
+ * component itself if it is itself a form component
+ *
+ * @param component
+ * starting point of the traversal
+ *
+ * @param visitor
+ * The visitor to call
+ */
+ public static final <S, R> R visitComponentsPostOrder(Object component,
+ final org.apache.wicket.util.visit.IVisitor<S, R> visitor, IVisitFilter filter)
+ {
+ if (visitor == null)
+ {
+ throw new IllegalArgumentException("Argument `visitor` cannot be null");
+ }
+
+ Visit<R> visit = new Visit<R>();
+ visitComponentsPostOrderHelper(component, visitor, filter, visit);
+ return visit.getResult();
+ }
+
+ /**
+ *
+ * @param component
+ * @param visitor
+ * @return Object
+ */
+ private static final <S, R> void visitComponentsPostOrderHelper(Object component,
+ final org.apache.wicket.util.visit.IVisitor<S, R> visitor, IVisitFilter filter,
+ Visit<R> visit)
+ {
+
+ if (component instanceof Iterable<?>)
+ {
+ final Iterable<?> container = (Iterable<?>)component;
+ if (filter.visitChildren(container))
+ {
+ Visit<R> childTraversal = new Visit<R>();
+ for (final Iterator<?> iterator = ((Iterable<?>)component).iterator(); iterator
+ .hasNext();)
+ {
+ final Object child = iterator.next();
+ if (child instanceof Iterable<?>)
+ {
+ visitComponentsPostOrderHelper((Iterable<?>)child, visitor, filter,
+ childTraversal);
+ if (childTraversal.isStopped())
+ {
+ visit.stop(childTraversal.getResult());
+ return;
+ }
+ }
+ }
+ }
+ if (filter.visitObject(component))
+ {
+ visitor.component((S)component, visit);
+ }
+ }
+ }
+}
Propchange: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/visit/Visits.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: wicket/trunk/wicket/src/main/disabled/org/apache/wicket/protocol/http/MockHttpServletRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/disabled/org/apache/wicket/protocol/http/MockHttpServletRequest.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/disabled/org/apache/wicket/protocol/http/MockHttpServletRequest.java (original)
+++ wicket/trunk/wicket/src/main/disabled/org/apache/wicket/protocol/http/MockHttpServletRequest.java Thu Mar 25 07:03:19 2010
@@ -1323,7 +1323,7 @@ public class MockHttpServletRequest impl
setRequestToComponent(form);
final Map<String, Object> valuesApplied = new HashMap<String, Object>();
- form.visitChildren(FormComponent.class, new Component.IVisitor<FormComponent<?>>()
+ form.visitChildren(FormComponent.class, new IVisitor<FormComponent<?>>()
{
public Object component(final FormComponent<?> component)
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Thu Mar 25 07:03:19 2010
@@ -69,6 +69,9 @@ import org.apache.wicket.util.string.Com
import org.apache.wicket.util.string.PrependingStringBuffer;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.value.ValueMap;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
+import org.apache.wicket.util.visit.Visit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -216,83 +219,6 @@ import org.slf4j.LoggerFactory;
public abstract class Component implements IClusterable, IConverterLocator, IRequestableComponent
{
- public static interface IVisit<R>
- {
- void stop();
-
- void stop(R result);
-
- void dontGoDeeper();
- }
- public static class Visit<R> implements IVisit<R>
- {
- private static enum Action {
- CONTINUE, CONTINUE_BUT_DONT_GO_DEEPER, STOP;
- }
-
- private R result;
- private Action action = Action.CONTINUE;
-
- public void stop()
- {
- stop(null);
- }
-
- public void stop(R result)
- {
- action = Action.STOP;
- this.result = result;
- }
-
- public void dontGoDeeper()
- {
- action = Action.CONTINUE_BUT_DONT_GO_DEEPER;
- }
-
- public boolean isStopped()
- {
- return action == Action.STOP;
- }
-
- public boolean isContinue()
- {
- return action == Action.CONTINUE;
- }
-
- public boolean isDontGoDeeper()
- {
- return action == Action.CONTINUE_BUT_DONT_GO_DEEPER;
- }
-
- public R getResult()
- {
- return result;
- }
-
-
- }
-
- /**
- * Generic component visitor interface for component traversals.
- *
- * @param <T>
- * The component
- */
- public static interface IVisitor<T extends Component, R>
- {
- /**
- * Called at each component in a visit.
- *
- * @param component
- * The component
- * @param traversal
- * An {@link IVisit} which state will be modified depending on the visitation.
- * CONTINUE_TRAVERSAL (null) if the traversal should continue, or a non-null
- * return value for the traversal method if it should stop. If no return value is
- * useful, the generic non-null value STOP_TRAVERSAL can be used.
- */
- public void component(T component, IVisit<R> visit);
- }
/** Log. */
private static final Logger log = LoggerFactory.getLogger(Component.class);
@@ -3365,9 +3291,9 @@ public abstract class Component implemen
if (c.isInstance(current))
{
visitor.component(current, visit);
- if (visit.action == Visit.Action.STOP)
+ if (visit.isStopped())
{
- return visit.result;
+ return visit.getResult();
}
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java Thu Mar 25 07:03:19 2010
@@ -41,6 +41,9 @@ import org.apache.wicket.model.IWrapMode
import org.apache.wicket.settings.IDebugSettings;
import org.apache.wicket.util.string.ComponentStrings;
import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
+import org.apache.wicket.util.visit.Visits;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,7 +55,7 @@ import org.slf4j.LoggerFactory;
* held a nested component "c", then a.get("b:c") would return the Component with id "c". The number
* of children in a MarkupContainer can be determined by calling size(), and the whole hierarchy of
* children held by a MarkupContainer can be traversed by calling visitChildren(), passing in an
- * implementation of Component.IVisitor.
+ * implementation of IVisitor.
*
* <li><b>Markup Rendering </b>- A MarkupContainer also holds/references associated markup which is
* used to render the container. As the markup stream for a container is rendered, component
@@ -84,7 +87,7 @@ import org.slf4j.LoggerFactory;
* @author Jonathan Locke
*
*/
-public abstract class MarkupContainer extends Component
+public abstract class MarkupContainer extends Component implements Iterable<Component>
{
private static final long serialVersionUID = 1L;
@@ -533,7 +536,7 @@ public abstract class MarkupContainer ex
/**
* @return Iterator that iterates through children in the order they were added
*/
- public Iterator<? extends Component> iterator()
+ public Iterator<Component> iterator()
{
return new Iterator<Component>()
{
@@ -901,63 +904,7 @@ public abstract class MarkupContainer ex
public final <S extends Component, R> R visitChildren(final Class<?> clazz,
final IVisitor<S, R> visitor)
{
- Visit<R> visit = new Visit<R>();
- visitChildren(clazz, visitor, visit);
- return visit.getResult();
- }
-
-
- private final <S extends Component, R> void visitChildren(final Class<?> clazz,
- final IVisitor<S, R> visitor, Visit<R> visit)
- {
- if (visitor == null)
- {
- throw new IllegalArgumentException("argument visitor may not be null");
- }
-
- // Iterate through children of this container
- for (int i = 0; i < children_size(); i++)
- {
- // Get next child component
- final Component child = children_get(i);
-
- // Is the child of the correct class (or was no class specified)?
- if (clazz == null || clazz.isInstance(child))
- {
- Visit<R> childTraversal = new Visit<R>();
-
- // Call visitor
- @SuppressWarnings("unchecked")
- S s = (S)child;
- visitor.component(s, childTraversal);
-
- if (childTraversal.isStopped())
- {
- visit.stop(childTraversal.getResult());
- return;
- }
- else if (childTraversal.isDontGoDeeper())
- {
- continue;
- }
- }
-
- // If child is a container
- if ((child instanceof MarkupContainer) && !visit.isDontGoDeeper())
- {
- Visit<R> childTraversal = new Visit<R>();
-
- // visit the children in the container
- ((MarkupContainer)child).visitChildren(clazz, visitor, visit);
-
- if (visit.isStopped())
- {
- return;
- }
- }
- }
-
- return;
+ return Visits.visitChildren(this, clazz, visitor);
}
/**
@@ -971,7 +918,7 @@ public abstract class MarkupContainer ex
*/
public final <R> R visitChildren(final IVisitor<Component, R> visitor)
{
- return visitChildren(null, visitor);
+ return Visits.visitChildren(this, visitor);
}
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Page.java Thu Mar 25 07:03:19 2010
@@ -47,6 +47,8 @@ import org.apache.wicket.settings.IDebug
import org.apache.wicket.util.lang.Classes;
import org.apache.wicket.util.lang.WicketObjects;
import org.apache.wicket.util.string.StringValue;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -988,7 +990,7 @@ public abstract class Page extends Marku
@Override
protected final void internalOnModelChanged()
{
- visitChildren(new Component.IVisitor<Component, Void>()
+ visitChildren(new IVisitor<Component, Void>()
{
public void component(final Component component, final IVisit<Void> visit)
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java Thu Mar 25 07:03:19 2010
@@ -33,7 +33,6 @@ import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.Component.IVisit;
import org.apache.wicket.markup.html.IHeaderResponse;
import org.apache.wicket.markup.html.internal.HeaderResponse;
import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
@@ -54,6 +53,8 @@ import org.apache.wicket.request.mapper.
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -321,7 +322,7 @@ public class AjaxRequestTarget implement
Component.class.getName() + ".class` as the value for this argument");
}
- parent.visitChildren(childCriteria, new Component.IVisitor<Component, Void>()
+ parent.visitChildren(childCriteria, new IVisitor<Component, Void>()
{
public void component(final Component component, final IVisit<Void> visit)
@@ -1079,7 +1080,7 @@ public class AjaxRequestTarget implement
if (component instanceof MarkupContainer)
{
- ((MarkupContainer)component).visitChildren(new Component.IVisitor<Component, Void>()
+ ((MarkupContainer)component).visitChildren(new IVisitor<Component, Void>()
{
public void component(final Component component, final IVisit<Void> visit)
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormValidatingBehavior.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormValidatingBehavior.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormValidatingBehavior.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/form/AjaxFormValidatingBehavior.java Thu Mar 25 07:03:19 2010
@@ -17,13 +17,13 @@
package org.apache.wicket.ajax.form;
import org.apache.wicket.Component;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.feedback.IFeedback;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.util.time.Duration;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
* Ajax event behavior that submits the form and updates all form feedback panels on the page.
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/WebPage.java Thu Mar 25 07:03:19 2010
@@ -33,6 +33,8 @@ import org.apache.wicket.request.mapper.
import org.apache.wicket.request.resource.PackageResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.response.StringResponse;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -244,8 +246,7 @@ public class WebPage extends Page implem
{
HtmlHeaderContainer header = visitChildren(new IVisitor<Component, HtmlHeaderContainer>()
{
- public void component(final Component component,
- final IVisit<HtmlHeaderContainer> visit)
+ public void component(final Component component, final IVisit<HtmlHeaderContainer> visit)
{
if (component instanceof HtmlHeaderContainer)
{
@@ -282,10 +283,9 @@ public class WebPage extends Page implem
visitChildren(new IVisitor<Component, Void>()
{
/**
- * @see org.apache.wicket.Component.IVisitor#component(org.apache.wicket.Component)
+ * @see org.apache.wicket.IVisitor#component(org.apache.wicket.Component)
*/
- public void component(final Component component,
- final IVisit<Void> visit)
+ public void component(final Component component, final IVisit<Void> visit)
{
component.renderHead(finalHeader);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/debug/PageView.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/debug/PageView.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/debug/PageView.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/debug/PageView.java Thu Mar 25 07:03:19 2010
@@ -30,6 +30,8 @@ import org.apache.wicket.markup.html.lis
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.util.lang.Bytes;
import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java Thu Mar 25 07:03:19 2010
@@ -20,7 +20,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -28,6 +27,7 @@ import org.apache.wicket.model.IModel;
import org.apache.wicket.model.util.CollectionModel;
import org.apache.wicket.util.convert.ConversionException;
import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.visit.IVisit;
/**
@@ -119,10 +119,9 @@ public class CheckGroup<T> extends FormC
if (value != null)
{
Check<T> checkbox = visitChildren(Check.class,
- new Component.IVisitor<Check<T>, Check<T>>()
+ new org.apache.wicket.util.visit.IVisitor<Check<T>, Check<T>>()
{
- public void component(final Check<T> check,
- final IVisit<Check<T>> visit)
+ public void component(final Check<T> check, final IVisit<Check<T>> visit)
{
if (String.valueOf(check.getValue()).equals(value))
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java Thu Mar 25 07:03:19 2010
@@ -50,6 +50,8 @@ import org.apache.wicket.util.string.Str
import org.apache.wicket.util.string.interpolator.MapVariableInterpolator;
import org.apache.wicket.util.upload.FileUploadException;
import org.apache.wicket.util.upload.FileUploadBase.SizeLimitExceededException;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
import org.apache.wicket.validation.IValidatorAddListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -136,29 +138,25 @@ public class Form<T> extends WebMarkupCo
*
* @author Igor Vaynberg (ivaynberg)
*/
- public static abstract class ValidationVisitor implements FormComponent.IVisitor<Void>
+ public static abstract class ValidationVisitor implements IVisitor<FormComponent<?>, Void>
{
- public void formComponent(final IFormVisitorParticipant component, final IVisit<Void> visit)
+ public void component(final FormComponent<?> formComponent, final IVisit<Void> visit)
{
- if (component instanceof FormComponent<?>)
- {
- FormComponent<?> formComponent = (FormComponent<?>)component;
- Form<?> form = formComponent.getForm();
- if (!form.isVisibleInHierarchy() || !form.isEnabledInHierarchy())
- {
- // do not validate formComponent or any of formComponent's children
- visit.dontGoDeeper();
- return;
- }
+ Form<?> form = formComponent.getForm();
+ if (!form.isVisibleInHierarchy() || !form.isEnabledInHierarchy())
+ {
+ // do not validate formComponent or any of formComponent's children
+ visit.dontGoDeeper();
+ return;
+ }
- if (formComponent.isVisibleInHierarchy() && formComponent.isValid() &&
- formComponent.isEnabledInHierarchy())
- {
- validate(formComponent);
- }
+ if (formComponent.isVisibleInHierarchy() && formComponent.isValid() &&
+ formComponent.isEnabledInHierarchy())
+ {
+ validate(formComponent);
}
- if (component.processChildren())
+ if (formComponent.processChildren())
{
return;
}
@@ -183,7 +181,7 @@ public class Form<T> extends WebMarkupCo
*
* @author Igor Vaynberg (ivaynberg)
*/
- private static class FormModelUpdateVisitor implements Component.IVisitor<Component, Void>
+ private static class FormModelUpdateVisitor implements IVisitor<Component, Void>
{
private final Form<?> formFilter;
@@ -795,15 +793,11 @@ public class Form<T> extends WebMarkupCo
final PageParameters parameters = page.getPageParameters();
if (parameters != null)
{
- visitFormComponents(new FormComponent.IVisitor<Void>()
+ visitFormComponents(new IVisitor<FormComponent<?>, Void>()
{
- public void formComponent(final IFormVisitorParticipant formComponent,
- final IVisit<Void> visit)
+ public void component(final FormComponent<?> formComponent, final IVisit<Void> visit)
{
- if (formComponent instanceof FormComponent<?>)
- {
- parameters.removeNamedParameter(((FormComponent<?>)formComponent).getInputName());
- }
+ parameters.removeNamedParameter(formComponent.getInputName());
}
});
parameters.removeNamedParameter(getHiddenFieldId());
@@ -993,15 +987,9 @@ public class Form<T> extends WebMarkupCo
* @param visitor
* The visitor interface to call
*/
- public final <R> R visitFormComponents(final FormComponent.IVisitor<R> visitor)
+ public final <R> R visitFormComponents(final IVisitor<? extends FormComponent<?>, R> visitor)
{
- return visitChildren(FormComponent.class, new IVisitor<Component, R>()
- {
- public void component(final Component component, final IVisit<R> visit)
- {
- visitor.formComponent((FormComponent<?>)component, visit);
- }
- });
+ return visitChildren(FormComponent.class, visitor);
}
/**
@@ -1011,7 +999,8 @@ public class Form<T> extends WebMarkupCo
* @param visitor
* The visitor interface to call
*/
- public final <R> R visitFormComponentsPostOrder(final FormComponent.IVisitor<R> visitor)
+ public final <R> R visitFormComponentsPostOrder(
+ final IVisitor<? extends FormComponent<?>, R> visitor)
{
return FormComponent.visitFormComponentsPostOrder(this, visitor);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/FormComponent.java Thu Mar 25 07:03:19 2010
@@ -32,7 +32,6 @@ import org.apache.wicket.Application;
import org.apache.wicket.Component;
import org.apache.wicket.IConverterLocator;
import org.apache.wicket.Localizer;
-import org.apache.wicket.MarkupContainer;
import org.apache.wicket.Page;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
@@ -47,6 +46,10 @@ import org.apache.wicket.util.string.Str
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
import org.apache.wicket.util.string.interpolator.MapVariableInterpolator;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitFilter;
+import org.apache.wicket.util.visit.IVisitor;
+import org.apache.wicket.util.visit.Visits;
import org.apache.wicket.validation.IErrorMessageSource;
import org.apache.wicket.validation.INullAcceptingValidator;
import org.apache.wicket.validation.IValidatable;
@@ -100,37 +103,21 @@ public abstract class FormComponent<T> e
/**
* Visitor for traversing form components
+ *
+ * @deprecated no longer a need for this base class
*/
- public static abstract class AbstractVisitor<R> implements IVisitor<R>
+ @Deprecated
+ public static abstract class AbstractVisitor<R> implements IVisitor<FormComponent<?>, R>
{
- public void formComponent(final IFormVisitorParticipant component, final IVisit<R> visit)
+ public void component(final FormComponent<?> component, final IVisit<R> visit)
{
- if (component instanceof FormComponent<?>)
- {
- onFormComponent((FormComponent<?>)component, visit);
- }
+ onFormComponent(component, visit);
}
protected abstract void onFormComponent(FormComponent<?> formComponent, IVisit<R> visit);
}
/**
- * Typesafe interface to code that is called when visiting a form component.
- */
- public static interface IVisitor<R>
- {
- /**
- * Called when visiting a form component
- *
- * @param formComponent
- * The form component
- * @param traversal
- * The {@link IVisit} that will keep the result and traversing state
- */
- public void formComponent(IFormVisitorParticipant formComponent, IVisit<R> visit);
- }
-
- /**
* {@link IErrorMessageSource} used for error messages against this form components.
*
* @author ivaynberg
@@ -362,61 +349,27 @@ public abstract class FormComponent<T> e
* The visitor to call
*/
public static final <R> R visitFormComponentsPostOrder(Component component,
- final FormComponent.IVisitor<R> visitor)
+ final IVisitor<? extends FormComponent, R> visitor)
{
- if (visitor == null)
+ return Visits.visitComponentsPostOrder(component, visitor, new IVisitFilter()
{
- throw new IllegalArgumentException("Argument `visitor` cannot be null");
- }
- Visit<R> visit = new Visit<R>();
- visitFormComponentsPostOrderHelper(component, visitor, visit);
- return visit.getResult();
-
- }
-
- /**
- *
- * @param component
- * @param visitor
- * @return Object
- */
- private static final <R> void visitFormComponentsPostOrderHelper(Component component,
- final FormComponent.IVisitor<R> visitor, Visit<R> visit)
- {
- if (component instanceof MarkupContainer)
- {
- final MarkupContainer container = (MarkupContainer)component;
- if (container.size() > 0)
+ public boolean visitChildren(Object object)
{
- boolean visitChildren = true;
- if (container instanceof IFormVisitorParticipant)
+ if (object instanceof IFormVisitorParticipant)
{
- visitChildren = ((IFormVisitorParticipant)container).processChildren();
- }
- if (visitChildren)
- {
- Visit<R> childTraversal = new Visit<R>();
- final Iterator<? extends Component> children = container.iterator();
- while (children.hasNext())
- {
- final Component child = children.next();
- visitFormComponentsPostOrderHelper(child, visitor, childTraversal);
- if (childTraversal.isStopped())
- {
- visit.stop(childTraversal.getResult());
- return;
- }
- }
+ return ((IFormVisitorParticipant)object).processChildren();
}
+ return true;
}
- }
- if (component instanceof FormComponent<?>)
- {
- final FormComponent<?> fc = (FormComponent<?>)component;
- visitor.formComponent(fc, visit);
- }
+ public boolean visitObject(Object object)
+ {
+ return (object instanceof FormComponent<?>);
+ }
+
+ });
+
}
/**
@@ -430,57 +383,32 @@ public abstract class FormComponent<T> e
* The visitor to call
*/
public static final <R> R visitComponentsPostOrder(Component component,
- final Component.IVisitor<Component, R> visitor)
+ final org.apache.wicket.util.visit.IVisitor<Component, R> visitor)
{
if (visitor == null)
{
throw new IllegalArgumentException("Argument `visitor` cannot be null");
}
- Visit<R> visit = new Visit<R>();
- visitComponentsPostOrderHelper(component, visitor, visit);
- return visit.getResult();
- }
-
- /**
- *
- * @param component
- * @param visitor
- * @return Object
- */
- private static final <R> void visitComponentsPostOrderHelper(Component component,
- final Component.IVisitor<Component, R> visitor, Visit<R> visit)
- {
- if (component instanceof MarkupContainer)
+ return Visits.visitComponentsPostOrder(component, visitor, new IVisitFilter()
{
- final MarkupContainer container = (MarkupContainer)component;
- if (container.size() > 0)
+
+ public boolean visitObject(Object object)
{
- boolean visitChildren = true;
- if (container instanceof IFormVisitorParticipant)
- {
- visitChildren = ((IFormVisitorParticipant)container).processChildren();
- }
- if (visitChildren)
+ return true;
+ }
+
+ public boolean visitChildren(Object object)
+ {
+ if (object instanceof IFormVisitorParticipant)
{
- Visit<R> childTraversal = new Visit<R>();
- final Iterator<? extends Component> children = container.iterator();
- while (children.hasNext())
- {
- final Component child = children.next();
- visitComponentsPostOrderHelper(child, visitor, childTraversal);
- if (childTraversal.isStopped())
- {
- visit.stop(childTraversal.getResult());
- return;
- }
- }
+ return ((IFormVisitorParticipant)object).processChildren();
}
+ return true;
}
- }
- visitor.component(component, visit);
- }
+ });
+ }
private transient T convertedInput;
@@ -970,13 +898,11 @@ public abstract class FormComponent<T> e
*/
public final boolean isValid()
{
- class IsValidVisitor implements IVisitor<Boolean>
+ class IsValidVisitor implements IVisitor<FormComponent<?>, Boolean>
{
- public void formComponent(final IFormVisitorParticipant formComponent,
- final IVisit<Boolean> visit)
+ public void component(final FormComponent<?> formComponent, final IVisit<Boolean> visit)
{
- final FormComponent<?> fc = (FormComponent<?>)formComponent;
- if (fc.hasErrorMessage())
+ if (formComponent.hasErrorMessage())
{
visit.stop(Boolean.FALSE);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/RadioGroup.java Thu Mar 25 07:03:19 2010
@@ -16,12 +16,12 @@
*/
package org.apache.wicket.markup.html.form;
-import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
import org.apache.wicket.util.convert.ConversionException;
+import org.apache.wicket.util.visit.IVisit;
/**
* Component used to connect instances of Radio components into a group. Instances of Radio have to
@@ -102,7 +102,7 @@ public class RadioGroup<T> extends FormC
// retrieve the selected single radio choice component
Radio<T> choice = visitChildren(Radio.class,
- new Component.IVisitor<Radio<T>, Radio<T>>()
+ new org.apache.wicket.util.visit.IVisitor<Radio<T>, Radio<T>>()
{
public void component(final Radio<T> radio, final IVisit<Radio<T>> visit)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/list/ListView.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/list/ListView.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/list/ListView.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/list/ListView.java Thu Mar 25 07:03:19 2010
@@ -491,10 +491,10 @@ public abstract class ListView<T> extend
{
// Remove all ListItems no longer required
final int maxIndex = firstIndex + size;
- for (final Iterator<? extends ListItem<T>> iterator = iterator(); iterator.hasNext();)
+ for (final Iterator<Component> iterator = iterator(); iterator.hasNext();)
{
// Get next child component
- final ListItem<?> child = iterator.next();
+ final ListItem<?> child = (ListItem<?>)iterator.next();
if (child != null)
{
final int index = child.getIndex();
@@ -628,11 +628,10 @@ public abstract class ListView<T> extend
*
* @see org.apache.wicket.MarkupContainer#iterator()
*/
- @SuppressWarnings( { "unchecked" })
@Override
- public Iterator<? extends ListItem<T>> iterator()
+ public Iterator<Component> iterator()
{
- return (Iterator<? extends ListItem<T>>)super.iterator();
+ return super.iterator();
}
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/tree/AbstractTree.java Thu Mar 25 07:03:19 2010
@@ -44,6 +44,8 @@ import org.apache.wicket.request.IReques
import org.apache.wicket.request.resource.JavascriptResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.util.string.AppendingStringBuffer;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
@@ -253,7 +255,7 @@ public abstract class AbstractTree exten
public void visitItem(TreeItem item)
{
// write header contributions from the children of item
- item.visitChildren(new Component.IVisitor<Component, Void>()
+ item.visitChildren(new IVisitor<Component, Void>()
{
public void component(final Component component,
final IVisit<Void> visit)
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ChildFirstHeaderRenderStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ChildFirstHeaderRenderStrategy.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ChildFirstHeaderRenderStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ChildFirstHeaderRenderStrategy.java Thu Mar 25 07:03:19 2010
@@ -18,9 +18,9 @@ package org.apache.wicket.markup.renderS
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Component.IVisit;
import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
import org.apache.wicket.util.lang.Checks;
+import org.apache.wicket.util.visit.IVisit;
/**
* THIS IS EXPERIMENTAL ONLY. YOU MUST NOT USE IT IN YOUR APPLICATION. SOME WICKET CORE COMPONENT
@@ -84,8 +84,7 @@ public class ChildFirstHeaderRenderStrat
new DeepChildFirstVisitor()
{
@Override
- public void component(final Component component,
- final IVisit<Component> visit)
+ public void component(final Component component, final IVisit<Component> visit)
{
component.renderHead(headerContainer);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/DeepChildFirstVisitor.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/DeepChildFirstVisitor.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/DeepChildFirstVisitor.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/DeepChildFirstVisitor.java Thu Mar 25 07:03:19 2010
@@ -18,10 +18,10 @@ package org.apache.wicket.markup.renderS
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
-import org.apache.wicket.Component.Visit;
import org.apache.wicket.util.lang.Checks;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
+import org.apache.wicket.util.visit.Visit;
/**
*
@@ -50,7 +50,7 @@ public abstract class DeepChildFirstVisi
{
final Visit<Component> visit = new Visit<Component>();
final Component[] lastComponent = new Component[1];
- Object rtn = ((MarkupContainer)rootComponent).visitChildren(new Component.IVisitor<Component, Component>()
+ Object rtn = ((MarkupContainer)rootComponent).visitChildren(new IVisitor<Component, Component>()
{
public void component(final Component component, final IVisit<Component> visit)
{
@@ -167,7 +167,7 @@ public abstract class DeepChildFirstVisi
}
/**
- * @see org.apache.wicket.Component.IVisitor#component(org.apache.wicket.Component)
+ * @see org.apache.wicket.IVisitor#component(org.apache.wicket.Component)
*/
public abstract void component(Component component, IVisit<Component> visit);
}
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ParentFirstHeaderRenderStrategy.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ParentFirstHeaderRenderStrategy.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ParentFirstHeaderRenderStrategy.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/renderStrategy/ParentFirstHeaderRenderStrategy.java Thu Mar 25 07:03:19 2010
@@ -18,14 +18,15 @@ package org.apache.wicket.markup.renderS
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.Component.IVisit;
import org.apache.wicket.markup.html.internal.HtmlHeaderContainer;
import org.apache.wicket.util.lang.Checks;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
* This is Wicket's default header render strategy which uses
- * {@link MarkupContainer#visitChildren(org.apache.wicket.Component.IVisitor)} to traverse the
- * hierarchy to render the children headers.
+ * {@link MarkupContainer#visitChildren(org.apache.wicket.IVisitor)} to traverse the hierarchy to
+ * render the children headers.
*
* Since child contributions are added to the markup after the parent contributions, children may
* replace / modify existing settings.
@@ -60,7 +61,7 @@ public class ParentFirstHeaderRenderStra
if (rootComponent instanceof MarkupContainer)
{
- ((MarkupContainer)rootComponent).visitChildren(new Component.IVisitor<Component, Void>()
+ ((MarkupContainer)rootComponent).visitChildren(new IVisitor<Component, Void>()
{
public void component(final Component component, final IVisit<Void> visit)
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/mock/MockHttpServletRequest.java Thu Mar 25 07:03:19 2010
@@ -1382,7 +1382,7 @@ public class MockHttpServletRequest impl
// setRequestToComponent(form);
//
// final Map<String, Object> valuesApplied = new HashMap<String, Object>();
-// form.visitChildren(FormComponent.class, new Component.IVisitor<FormComponent<?>>()
+// form.visitChildren(FormComponent.class, new IVisitor<FormComponent<?>>()
// {
// public Object component(final FormComponent<?> component)
// {
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java Thu Mar 25 07:03:19 2010
@@ -45,8 +45,6 @@ import org.apache.wicket.RequestListener
import org.apache.wicket.Session;
import org.apache.wicket.ThreadContext;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
@@ -102,6 +100,8 @@ import org.apache.wicket.settings.IReque
import org.apache.wicket.util.IProvider;
import org.apache.wicket.util.lang.Classes;
import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java Thu Mar 25 07:03:19 2010
@@ -27,8 +27,6 @@ import java.util.List;
import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.markup.html.form.AbstractTextComponent;
import org.apache.wicket.markup.html.form.Check;
import org.apache.wicket.markup.html.form.CheckBox;
@@ -47,6 +45,8 @@ import org.apache.wicket.protocol.http.m
import org.apache.wicket.util.file.File;
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
* A helper class for testing validation and submission of <code>FormComponent</code>s.
@@ -80,7 +80,7 @@ public class FormTester
}
/**
- * @see org.apache.wicket.Component.IVisitor#component(org.apache.wicket.Component)
+ * @see org.apache.wicket.IVisitor#component(org.apache.wicket.Component)
*/
public void component(final Component component, final IVisit<Component> visit)
{
@@ -377,8 +377,7 @@ public class FormTester
{
@SuppressWarnings("unchecked")
@Override
- public void onFormComponent(final FormComponent<?> formComponent,
- IVisit<Void> visit)
+ public void onFormComponent(final FormComponent<?> formComponent, IVisit<Void> visit)
{
// do nothing for invisible component
if (!formComponent.isVisibleInHierarchy())
@@ -421,8 +420,7 @@ public class FormTester
final Collection<?> checkGroupValues = (Collection<?>)formComponent.getDefaultModelObject();
formComponent.visitChildren(Check.class, new IVisitor<Component, Void>()
{
- public void component(final Component component,
- final IVisit<Void> visit)
+ public void component(final Component component, final IVisit<Void> visit)
{
if (checkGroupValues.contains(component.getDefaultModelObject()))
{
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java Thu Mar 25 07:03:19 2010
@@ -26,11 +26,11 @@ import junit.framework.Assert;
import org.apache.wicket.Component;
import org.apache.wicket.IClusterable;
import org.apache.wicket.Page;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.behavior.IBehavior;
import org.apache.wicket.util.string.Strings;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
* A <code>WicketTester</code>-specific helper class.
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/VisitorTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/VisitorTest.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/VisitorTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/VisitorTest.java Thu Mar 25 07:03:19 2010
@@ -18,10 +18,10 @@ package org.apache.wicket;
import junit.framework.Assert;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.form.FormComponent;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
/**
* <code>
@@ -45,6 +45,7 @@ public class VisitorTest extends WicketT
final StringBuilder path = new StringBuilder();
TestContainer container = new TestContainer();
+
container.visitChildren(new IVisitor<Component, Void>()
{
public void component(Component component, IVisit<Void> visit)
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormTest.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormTest.java Thu Mar 25 07:03:19 2010
@@ -17,6 +17,7 @@
package org.apache.wicket.markup.html.form;
import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.util.visit.IVisitor;
/**
@@ -25,7 +26,7 @@ import org.apache.wicket.WicketTestCase;
*/
public class FormTest extends WicketTestCase
{
- private FormComponent.IVisitor visitor;
+ private IVisitor visitor;
/**
* Construct.
Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadFieldTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadFieldTest.java?rev=927290&r1=927289&r2=927290&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadFieldTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/upload/FileUploadFieldTest.java Thu Mar 25 07:03:19 2010
@@ -27,11 +27,11 @@ import java.util.Set;
import org.apache.wicket.Page;
import org.apache.wicket.WicketTestCase;
-import org.apache.wicket.Component.IVisit;
-import org.apache.wicket.Component.IVisitor;
import org.apache.wicket.util.file.File;
import org.apache.wicket.util.tester.FormTester;
import org.apache.wicket.util.tester.ITestPageSource;
+import org.apache.wicket.util.visit.IVisit;
+import org.apache.wicket.util.visit.IVisitor;
import org.apache.wicket.validation.IValidatable;
import org.apache.wicket.validation.IValidator;