Example usage for org.apache.wicket.feedback FeedbackCollector FeedbackCollector

List of usage examples for org.apache.wicket.feedback FeedbackCollector FeedbackCollector

Introduction

In this page you can find the example usage for org.apache.wicket.feedback FeedbackCollector FeedbackCollector.

Prototype

public FeedbackCollector(Component component) 

Source Link

Document

Constructs a collector that will collect messages from the specified container

Usage

From source file:com.premiumminds.webapp.wicket.bootstrap.BootstrapControlGroupFeedback.java

License:Open Source License

@Override
protected void onComponentTag(ComponentTag tag) {
    super.onComponentTag(tag);

    if (new FeedbackCollector(getPage()).collect(filter).size() > 0)
        tag.append("class", "has-error", " ");
}

From source file:net.rrm.ehour.ui.common.component.AjaxFormComponentFeedbackIndicator.java

License:Open Source License

public AjaxFormComponentFeedbackIndicator(String id, final Component indicatorFor) {
    super(id);//from  w ww  .j a va 2s.com

    setOutputMarkupId(true);
    setOutputMarkupPlaceholderTag(true);

    this.indicatorFor = indicatorFor;
    setIndicatorFor(this.indicatorFor);

    add(new Label("errorText", new Model<Serializable>() {
        @Override
        public Serializable getObject() {
            List<FeedbackMessage> collect = new FeedbackCollector(getPage())
                    .collect(getFeedbackMessageFilter());

            return !collect.isEmpty() ? collect.get(0).getMessage() : "";
        }
    }));
}

From source file:org.efaps.ui.wicket.behaviors.AjaxFieldUpdateBehavior.java

License:Apache License

/**
 * Default means nothing is done on error.
 *
 * @see org.apache.wicket.ajax.form.AjaxFormSubmitBehavior#onError(org.apache.wicket.ajax.AjaxRequestTarget)
 * @param _target AjaxRequestTarget//from   w  ww .j a v  a 2 s.c o  m
 */
@Override
protected void onError(final AjaxRequestTarget _target) {
    if (this.errorHandling) {
        final FeedbackCollector collector = new FeedbackCollector(getForm().getPage());
        final List<FeedbackMessage> msgs = collector.collect();
        final StringBuilder html = new StringBuilder()
                .append("<table class=\"eFapsValidateFieldValuesTable\">");
        for (final FeedbackMessage msg : msgs) {
            msg.getReporter().add(AttributeModifier.append("class", "invalid"));
            _target.add(msg.getReporter());
            Serializable warn = null;
            if (msg.getMessage() instanceof ValidationErrorFeedback) {
                // look if a message was set
                warn = ((ValidationErrorFeedback) msg.getMessage()).getMessage();
                // still no message, create one
                if (warn == null) {
                    warn = ((ValidationErrorFeedback) msg.getMessage()).getError()
                            .getErrorMessage(new ErrorMessageResource());
                }
            }
            String label = "";
            if (msg.getReporter() instanceof IFieldConfig) {
                label = ((IFieldConfig) msg.getReporter()).getFieldConfig().getLabel();
            }
            html.append("<tr><td>").append(label).append(":</td><td>").append(warn).append("</td></tr>");
        }
        html.append("</table>");

        final ModalWindowContainer modal = ((AbstractContentPage) getComponent().getPage()).getModal();

        modal.setInitialWidth(350);
        modal.setInitialHeight(200);

        modal.setPageCreator(new ModalWindow.PageCreator() {

            private static final long serialVersionUID = 1L;

            @Override
            public Page createPage() {
                return new DialogPage(((AbstractContentPage) getComponent().getPage()).getPageReference(),
                        html.toString(), true, false);
            }
        });
        modal.show(_target);
    }
}

From source file:org.efaps.ui.wicket.components.footer.AjaxSubmitCloseBehavior.java

License:Apache License

/**
 * Method is not used, but needed from the api.
 *
 * @param _target AjaxRequestTarget/*from   ww w  . j  av a  2  s  . co m*/
 */
@Override
protected void onError(final AjaxRequestTarget _target) {
    final FeedbackCollector collector = new FeedbackCollector(getForm().getPage());
    final List<FeedbackMessage> msgs = collector.collect();
    final ErrorMessageResource msgResource = new ErrorMessageResource();
    final StringBuilder html = new StringBuilder().append("<table class=\"eFapsValidateFieldValuesTable\">");
    for (final FeedbackMessage msg : msgs) {
        if (!(msg.getReporter() instanceof Form)) {
            if (msg.getReporter() instanceof AutoCompleteComboBox) {
                final StringBuilder js = new StringBuilder()
                        .append("require(['dojo/dom','dojo/dom-class'], function (dom, domClass) {")
                        .append("domClass.add(dom.byId('").append(msg.getReporter().getMarkupId())
                        .append("').parentNode, 'invalid');").append("});");
                _target.prependJavaScript(js);
            } else {
                msg.getReporter().add(AttributeModifier.append("class", "invalid"));
                _target.add(msg.getReporter());
            }
        }
        Serializable warn = null;
        if (msg.getMessage() instanceof ValidationErrorFeedback) {
            // look if a message was set
            warn = ((ValidationErrorFeedback) msg.getMessage()).getMessage();
            // still no message, create one
            if (warn == null) {
                warn = ((ValidationErrorFeedback) msg.getMessage()).getError().getErrorMessage(msgResource);
            }
        } else {
            warn = String.valueOf(msg.getMessage());
        }
        html.append("<tr>");
        if (msg.getReporter() instanceof IFieldConfig) {
            html.append("<td>").append(((IFieldConfig) msg.getReporter()).getFieldConfig().getLabel())
                    .append(":</td><td>").append(warn).append("</td>");
        } else {
            html.append("<td colspan=\"2\">").append(warn).append("</td></tr>");
        }
        msg.getReporter().getFeedbackMessages().clear();
    }
    html.append("</table>");
    showDialog(_target, html.toString(), true, false);

    // after every commit the fieldset must be resteted
    getForm().getPage().visitChildren(SetDataGrid.class, new IVisitor<SetDataGrid, Void>() {

        @Override
        public void component(final SetDataGrid _setDataGrid, final IVisit<Void> _visit) {
            final UIFieldSet fieldSet = (UIFieldSet) _setDataGrid.getDefaultModelObject();
            fieldSet.resetIndex();
        }
    });
    getForm().getPage().visitChildren(DropDownField.class, new IVisitor<DropDownField, Void>() {

        @Override
        public void component(final DropDownField _dropDown, final IVisit<Void> _visit) {
            _dropDown.setConverted(false);
        }
    });
}

From source file:org.opensingular.lib.wicket.util.util.WicketUtils.java

License:Apache License

public static void clearMessagesForComponent(Component component) {
    new FeedbackCollector(component.getPage())
            .collect(message -> Objects.equals(message.getReporter(), component)).stream()
            .forEach(it -> it.markRendered());
}