Example usage for org.apache.wicket.extensions.markup.html.repeater.tree Node visitChildren

List of usage examples for org.apache.wicket.extensions.markup.html.repeater.tree Node visitChildren

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.repeater.tree Node visitChildren.

Prototype

public final <S extends Component, R> R visitChildren(final Class<?> clazz, final IVisitor<S, R> visitor) 

Source Link

Document

Traverses all child components of the given class in this container, calling the visitor's visit method at each one.

Usage

From source file:org.efaps.ui.wicket.components.menutree.MenuTree.java

License:Apache License

@Override
public void updateNode(final UIMenuItem _menuItem, final IPartialPageRequestHandler _target) {
    if (_target != null) {
        final IModel<UIMenuItem> model = getProvider().model(_menuItem);
        visitChildren(Node.class, new IVisitor<Node<UIMenuItem>, Void>() {

            @Override//  w  ww .  j a va  2 s .  c om
            public void component(final Node<UIMenuItem> _node, final IVisit<Void> _visit) {
                if (model.equals(_node.getModel())) {
                    _target.add(_node);
                    _node.visitChildren(Label.class, new IVisitor<Label, Void>() {
                        @Override
                        public void component(final Label _label, final IVisit<Void> _visit) {
                            _label.setDefaultModelObject(
                                    ((UIMenuItem) _node.getDefaultModelObject()).getLabel());
                        }
                    });
                    _visit.stop();
                }
                _visit.dontGoDeeper();
            }
        });
        model.detach();
    }
}