Вопрос: Что эквивалентно IVisitor.CONTINUE TRAVERSAL в калитки 1.5


Я портирую наше приложение Wicket 1.4 на Wicket 1.5. Посетители сейчас Очень разные , Я хотел бы знать, как мне обрабатывать CONTINUAL_TRAVERSAL в Wicket 1.5? Существующий код 1.4 ниже:

 public class MyFormVisitor implements IVisitor<Component, Object>, Serializable {

    private static final long serialVersionUID = 7271477325583441433L;
    private Set<Component> visited = new HashSet<Component>();

    @Override
    public Object component(Component c) {
        if (!visited.contains(c)) {
            visited.add(c);

            c.add(new MandatoryBehavior());
            c.add(new ErrorHighlightBehavior());
        }
        return IVisitor.CONTINUE_TRAVERSAL;
   }

3


источник


Ответы:


Просто переведите свой метод на что-то вроде этого, и вы должны быть в порядке:

@Override
public void component(final Component c, final IVisit<Void> visit) {
    if (!visited.contains(c)) {
        visited.add(c);

        c.add(new MandatoryBehavior());
        c.add(new ErrorHighlightBehavior());
    }
}

Как вы можете видеть в документации, которую вы связываете, обход теперь контролируется через IVisit  переданному методу. Если ни один из методов не останавливаться или не идти глубже, то обход просто продолжится.


7