Example usage for org.apache.wicket.util.visit IVisit stop

List of usage examples for org.apache.wicket.util.visit IVisit stop

Introduction

In this page you can find the example usage for org.apache.wicket.util.visit IVisit stop.

Prototype

void stop();

Source Link

Document

Stops the visit/traversal

Usage

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  www. j  av  a 2  s.  c o  m*/
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.cast.isi.component.ResponseFeedbackButtonPanelVisitor.java

License:Open Source License

public void component(ResponseFeedbackButtonPanel component, IVisit<Void> visit) {
    String currentState = component.getState();

    // once a new feedback is found - stop, this will be the indicator
    if (currentState.equals("new")) {
        state = "new";
        visit.stop();
    } else if (currentState.equals("old") && (state == null)) {
        state = "old";
    }/*from www. j  a va 2  s .c o m*/
}

From source file:org.cast.isi.panel.ResponseButtons.java

License:Open Source License

/**
 * Returns a ResponseList component on this page that refers to the same Prompt.
 * This ResponseList will be used to insert new responses, and refreshed when appropriate.
 * @return/*from  w w w.  j  a va2s.  c o  m*/
 */
private ResponseList getListComponent() {
    if (listComponent != null)
        return listComponent;
    getPage().visitChildren(ResponseList.class, new IVisitor<ResponseList, Void>() {
        public void component(ResponseList component, IVisit<Void> visit) {
            if (component.getPromptModel().equals(mPrompt)) {
                listComponent = component; // found!
                visit.stop();
            } else {
                visit.dontGoDeeper();
            }
        }
    });
    return listComponent;
}

From source file:org.dcm4chee.wizard.common.login.secure.ExtendedSwarmStrategy.java

License:LGPL

private MarkupContainer findLowestSecureContainer(Component component) {

    final MarkupContainer[] lowestSecureParent = new MarkupContainer[1];

    component.visitParents(MarkupContainer.class, new IVisitor<MarkupContainer, Void>() {
        public void component(MarkupContainer component, IVisit<Void> visit) {
            if (component instanceof ISecureComponent) {
                lowestSecureParent[0] = component;
                visit.stop();
            }//ww w . j a  va2  s. com
        }
    });

    if (null == lowestSecureParent[0]) {
        try {
            lowestSecureParent[0] = component.getPage();
        } catch (IllegalStateException e) {
            throw new SecurityException(
                    this.getClass() + ": Unable to create alias for component: " + component, e);
        }
    }

    MarkupContainer markupContainer = lowestSecureParent[0];
    return markupContainer;
}

From source file:org.devgateway.eudevfin.ui.common.components.VisibilityAwareContainer.java

License:Open Source License

@Override
protected void onConfigure() {
    super.onConfigure();

    final Model<Boolean> oneVisibleChild = Model.of(Boolean.FALSE);
    this.visitChildren(AbstractField.class, new IVisitor<Component, Object>() {
        @Override/*from ww w  . j a  v a  2  s . c  o  m*/
        public void component(Component object, IVisit<Object> visit) {
            object.configure(); //force an early configure on the visited object
            if (object.determineVisibility()) { //use determineVisibility instead of isVisible, handles all cases!
                oneVisibleChild.setObject(Boolean.TRUE);
                visit.stop();
            }
        }
    });

    this.setVisibilityAllowed(oneVisibleChild.getObject());
}

From source file:org.efaps.ui.wicket.components.bpm.process.ProcessAdminPanel.java

License:Apache License

/**
 * @param _wicketId WicketId//from  w  w w  .  ja  va2 s.c  o m
 * @param _pageReference    Refernce to the page
 * @throws EFapsException on error
 */
public ProcessAdminPanel(final String _wicketId, final PageReference _pageReference) throws EFapsException {
    super(_wicketId);
    final Form<UIProcessInstanceLog> form = new Form<UIProcessInstanceLog>("form");
    add(form);
    final DropDownChoice<String> dropDown = new DropDownChoice<String>("processIds", Model.<String>of(),
            UIProcessInstanceLog.getProcessIds());
    dropDown.setNullValid(true);
    dropDown.add(new AjaxFormComponentUpdatingBehavior("change") {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onUpdate(final AjaxRequestTarget _target) {
            getPage().visitChildren(AjaxFallbackDefaultDataTable.class,
                    new IVisitor<AjaxFallbackDefaultDataTable<?, ?>, Void>() {

                        @Override
                        public void component(final AjaxFallbackDefaultDataTable<?, ?> _table,
                                final IVisit<Void> _visit) {
                            final IDataProvider<?> provider = _table.getDataProvider();
                            if (provider instanceof ProcessInstanceProvider) {
                                ((ProcessInstanceProvider) provider)
                                        .setProcessId(getComponent().getDefaultModelObjectAsString());
                                ((ProcessInstanceProvider) provider).requery();
                                _target.add(_table);
                                _visit.stop();
                            }
                        }
                    });
        }
    });
    form.add(dropDown);

    final ProcessTablePanel taskTable = new ProcessTablePanel("processTable", _pageReference,
            new ProcessInstanceProvider());
    form.add(taskTable);

    final NodeTablePanel nodeTable = new NodeTablePanel("nodeTable", _pageReference,
            new NodeInstanceProvider());
    form.add(nodeTable);

    final VariableTablePanel variableTable = new VariableTablePanel("variableTable", _pageReference,
            new VariableInstanceProvider());
    form.add(variableTable);
}

From source file:org.efaps.ui.wicket.components.connection.MessagePanel.java

License:Apache License

/**
 * @param _wicketId wicketId of this component
 * @param _pageReference reference to the page
 * @throws EFapsException on error/*ww  w . ja  v a2s . c om*/
 */
public MessagePanel(final String _wicketId, final PageReference _pageReference) throws EFapsException {
    super(_wicketId);
    final Form<Void> msgForm = new Form<>("msgForm");
    add(msgForm);

    final AjaxSubmitLink sendMsgBtn = new AjaxSubmitLink("sendMsgBtn", msgForm) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onAfterSubmit(final AjaxRequestTarget _target, final Form<?> _form) {
            final StringBuilder msg = new StringBuilder();
            _form.visitChildren(TextArea.class, new IVisitor<TextArea<String>, Void>() {
                @Override
                public void component(final TextArea<String> _textArea, final IVisit<Void> _visit) {
                    _textArea.setEscapeModelStrings(false);
                    msg.append(_textArea.getDefaultModelObjectAsString());
                    _visit.stop();
                }
            });

            if (msg.length() > 0) {
                _form.visitChildren(CheckBox.class, new IVisitor<CheckBox, Void>() {

                    @Override
                    public void component(final CheckBox _checkBox, final IVisit<Void> _visit) {
                        final Boolean selected = (Boolean) _checkBox.getDefaultModelObject();
                        if (selected) {
                            final CheckBoxPanel panel = (CheckBoxPanel) _checkBox.getParent();
                            final UIUser user = (UIUser) panel.getDefaultModelObject();
                            final List<IWebSocketConnection> conns = RegistryManager
                                    .getConnections4User(user.getUserName());
                            for (final IWebSocketConnection conn : conns) {
                                conn.sendMessage(new PushMsg(msg.toString()));
                            }
                        }
                    }
                });
            }
        }
    };
    msgForm.add(sendMsgBtn);

    final AjaxSubmitLink broadcastMsgBtn = new AjaxSubmitLink("broadcastMsgBtn", msgForm) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onAfterSubmit(final AjaxRequestTarget _target, final Form<?> _form) {

            final StringBuilder msg = new StringBuilder();
            _form.visitChildren(TextArea.class, new IVisitor<TextArea<String>, Void>() {

                @Override
                public void component(final TextArea<String> _textArea, final IVisit<Void> _visit) {
                    _textArea.setEscapeModelStrings(false);
                    msg.append(_textArea.getDefaultModelObjectAsString());
                    _visit.stop();
                }
            });

            if (msg.length() > 0) {
                final WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get(getApplication());
                final WebSocketPushBroadcaster broadcaster = new WebSocketPushBroadcaster(
                        webSocketSettings.getConnectionRegistry());
                broadcaster.broadcastAll(EFapsApplication.get(), new PushMsg(msg.toString()));
            }
        }
    };
    msgForm.add(broadcastMsgBtn);

    final TextArea<String> msg = new TextArea<>("msg", Model.of(""));
    msgForm.add(msg);

    final MessageTablePanel messageTable = new MessageTablePanel("messageTable", _pageReference,
            new UserProvider());
    msgForm.add(messageTable);
}

From source file:org.efaps.ui.wicket.components.gridx.behaviors.SubmitBehavior.java

License:Apache License

@Override
protected void onSubmit(final AjaxRequestTarget _target) {
    super.onSubmit(_target);

    final IRequestParameters para = getComponent().getRequest().getRequestParameters();
    final StringValue rid = para.getParameterValue("rid");
    final UIGrid uiGrid = (UIGrid) getComponent().getPage().getDefaultModelObject();
    final Long cmdId = uiGrid.getID4Random(rid.toString());

    try {/*from  w  w w  .j  a  va 2  s. co m*/
        final Command cmd = Command.get(cmdId);
        final List<StringValue> oidValues = para.getParameterValues("selectedRow");
        final String[] oids = ParameterUtil.parameter2Array(para, "selectedRow");
        boolean check = false;
        if (cmd.getSubmitSelectedRows() > -1) {
            if (cmd.getSubmitSelectedRows() > 0) {
                check = oidValues == null ? false : oidValues.size() == cmd.getSubmitSelectedRows();
            } else {
                check = oidValues == null ? false : !oidValues.isEmpty();
            }
        } else {
            check = true;
        }

        if (check) {
            if (cmd.isAskUser()) {
                getComponent().getPage().visitChildren(ModalWindowContainer.class,
                        new IVisitor<ModalWindowContainer, Void>() {

                            @Override
                            public void component(final ModalWindowContainer _modal,
                                    final IVisit<Void> _visit) {
                                _modal.setPageCreator(new ModalWindow.PageCreator() {

                                    private static final long serialVersionUID = 1L;

                                    @Override
                                    public Page createPage() {
                                        Page page = null;
                                        try {
                                            page = new DialogPage(getComponent().getPage().getPageReference(),
                                                    UICmdObject.getModel(cmdId), oids);
                                        } catch (final EFapsException e) {
                                            page = new ErrorPage(e);
                                        }
                                        return page;
                                    }
                                });
                                _modal.setInitialHeight(150);
                                _modal.setInitialWidth(350);
                                _modal.show(_target);
                                _visit.stop();
                            }
                        });
            } else {
                boolean updatePage = true;
                if (cmd.hasEvents(EventType.UI_COMMAND_EXECUTE)) {
                    try {
                        final List<Return> rets;
                        if (oidValues != null) {
                            rets = cmd.executeEvents(EventType.UI_COMMAND_EXECUTE, ParameterValues.OTHERS,
                                    oids);
                        } else {
                            rets = cmd.executeEvents(EventType.UI_COMMAND_EXECUTE);
                        }
                        if (cmd.isTargetShowFile() && rets != null && !rets.isEmpty()) {
                            final Object object = rets.get(0).get(ReturnValues.VALUES);
                            if (object instanceof File) {
                                ((EFapsSession) getComponent().getSession()).setFile((File) object);
                                ((AbstractMergePage) getComponent().getPage()).getDownloadBehavior()
                                        .initiate(_target);
                                updatePage = false;
                            }
                        }
                    } catch (final EFapsException e) {
                        throw new RestartResponseException(new ErrorPage(e));
                    }
                }
                if (updatePage) {
                    uiGrid.reload();
                    getComponent().setResponsePage(new GridPage(Model.of(uiGrid)));
                }
            }
        } else {
            getComponent().getPage().visitChildren(ModalWindowContainer.class,
                    new IVisitor<ModalWindowContainer, Void>() {

                        @Override
                        public void component(final ModalWindowContainer _modal, final IVisit<Void> _visit) {
                            _modal.setPageCreator(new ModalWindow.PageCreator() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public Page createPage() {
                                    return new DialogPage(getComponent().getPage().getPageReference(),
                                            "SubmitSelectedRows.fail" + cmd.getSubmitSelectedRows(), false,
                                            false);
                                }
                            });
                            _modal.setInitialHeight(150);
                            _modal.setInitialWidth(350);
                            _modal.show(_target);
                            _visit.stop();
                        }
                    });
        }
    } catch (final EFapsException e) {
        SubmitBehavior.LOG.error("Catched", e);
    }
}

From source file:org.efaps.ui.wicket.components.gridx.behaviors.SubmitModalBehavior.java

License:Apache License

@Override
protected void onSubmit(final AjaxRequestTarget _target) {
    super.onSubmit(_target);

    try {/*from   w  w w .ja  v a  2s.co  m*/
        final IRequestParameters para = getComponent().getRequest().getRequestParameters();
        final StringValue rid = para.getParameterValue("rid");
        final UIGrid uiGrid = (UIGrid) getComponent().getPage().getDefaultModelObject();
        final Long cmdId = uiGrid.getID4Random(rid.toString());
        final Command cmd = Command.get(cmdId);
        final List<StringValue> oidValues = para.getParameterValues("selectedRow");
        boolean check = false;
        if (cmd.getSubmitSelectedRows() > -1) {
            if (cmd.getSubmitSelectedRows() > 0) {
                check = oidValues == null ? false : oidValues.size() == cmd.getSubmitSelectedRows();
            } else {
                check = oidValues == null ? false : !oidValues.isEmpty();
            }
        } else {
            check = true;
        }
        if (check) {
            final ModalWindowContainer modal = getComponent().getPage()
                    .visitChildren(ModalWindowContainer.class, new ModalVisitor());
            modal.show(_target);
        } else {
            getComponent().getPage().visitChildren(ModalWindowContainer.class,
                    new IVisitor<ModalWindowContainer, Void>() {

                        @Override
                        public void component(final ModalWindowContainer _modal, final IVisit<Void> _visit) {
                            _modal.setPageCreator(new ModalWindow.PageCreator() {

                                private static final long serialVersionUID = 1L;

                                @Override
                                public Page createPage() {
                                    return new DialogPage(getComponent().getPage().getPageReference(),
                                            "SubmitSelectedRows.fail" + cmd.getSubmitSelectedRows(), false,
                                            false);
                                }
                            });
                            _modal.setInitialHeight(150);
                            _modal.setInitialWidth(350);
                            _modal.show(_target);
                            _visit.stop();
                        }
                    });
        }
    } catch (final Exception e) {
        SubmitModalBehavior.LOG.error("Catched", e);
    }
}

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

License:Apache License

/**
 * @param _commandUUID UUID of the command
 * @param _instanceKey instance key//from w w w . j  a  va2s .co m
 * @param _target the ajax target to use
 * @throws CacheReloadException on error
 */
public void addChildMenu(final UUID _commandUUID, final String _instanceKey, final AjaxRequestTarget _target)
        throws CacheReloadException {
    final UIMenuItem menuItem = (UIMenuItem) getSelected().getDefaultModelObject();
    boolean old = false;
    for (final UIMenuItem child : menuItem.getChildren()) {
        if (child.getInstanceKey().equals(_instanceKey) && child.getCommandUUID().equals(_commandUUID)) {
            old = true;
            child.setSelected(true);
            menuItem.setSelected(false);
            visitChildren(MenuItem.class, new IVisitor<MenuItem, Void>() {

                @Override
                public void component(final MenuItem _comp, final IVisit<Void> _visit) {
                    final Object object = _comp.getDefaultModelObject();
                    if (object != null && object instanceof UIMenuItem) {
                        if (((UIMenuItem) object).isSelected()) {
                            _target.add(getSelected());
                            setSelected(_comp);
                            _target.add(getSelected());
                            _visit.stop();
                        }
                    }
                }
            });
            break;
        }
    }

    if (!old) {
        final UIMenuItem newMenuItem = new UIMenuItem(_commandUUID, _instanceKey);
        newMenuItem.setSelected(true);
        newMenuItem.setAncestor(menuItem);
        menuItem.getChildren().add(newMenuItem);
        expand(menuItem);
        expand(newMenuItem);
        menuItem.setSelected(false);
        _target.add(getSelected());
    }
}