Example usage for org.apache.wicket Component add

List of usage examples for org.apache.wicket Component add

Introduction

In this page you can find the example usage for org.apache.wicket Component add.

Prototype

public Component add(final Behavior... behaviors) 

Source Link

Document

Adds a behavior modifier to the component.

Usage

From source file:org.opensingular.form.wicket.mapper.AbstractControlsFieldComponentMapper.java

License:Apache License

public void buildView(WicketBuildContext ctx) {

    final IModel<? extends SInstance> model = ctx.getModel();
    final IModel<String> labelModel = new AttributeModel<>(model, SPackageBasic.ATR_LABEL);

    final boolean hintNoDecoration = ctx.getHint(NO_DECORATION);
    final BSContainer<?> container = ctx.getContainer();
    final AttributeModel<String> subtitle = new AttributeModel<>(model, SPackageBasic.ATR_SUBTITLE);
    final ViewMode viewMode = ctx.getViewMode();
    final BSLabel label = new BSLabel("label", labelModel);
    final BSControls formGroup = container.newFormGroup();

    configureLabel(ctx, labelModel, hintNoDecoration, label);

    formGroup.appendLabel(label);/*from w  ww. java 2  s .  c  o m*/
    formGroup.newHelpBlock(subtitle).add($b.classAppender("hidden-xs")).add($b.classAppender("hidden-sm"))
            .add($b.classAppender("hidden-md")).add(InvisibleIfNullOrEmptyBehavior.getInstance());

    final Component input;

    if (viewMode.isEdition()) {
        input = appendInput(ctx, formGroup, labelModel);
        formGroup.appendFeedback(ctx.createFeedbackCompactPanel("feedback"));
        formGroup.add(new ClassAttributeModifier() {
            @Override
            protected Set<String> update(Set<String> oldClasses) {
                if (model.getObject().getAttributeValue(SPackageBasic.ATR_DEPENDS_ON_FUNCTION) != null) {
                    oldClasses.add("dependant-input-group");
                }
                return oldClasses;
            }
        });
        input.add(DisabledClassBehavior.getInstance());
        input.add($b.onConfigure(c -> label.add(new ClassAttributeModifier() {
            @Override
            protected Set<String> update(Set<String> oldClasses) {
                if (model.getObject().getAttributeValue(SPackageBasic.ATR_REQUIRED)) {
                    oldClasses.add("singular-form-required");
                } else {
                    oldClasses.remove("singular-form-required");
                }
                return oldClasses;
            }
        })));
        for (FormComponent<?> fc : findAjaxComponents(input)) {
            ctx.configure(this, fc);
        }
    } else {
        input = appendReadOnlyInput(ctx, formGroup, labelModel);
    }

    if ((input instanceof LabeledWebMarkupContainer)
            && (((LabeledWebMarkupContainer) input).getLabel() == null)) {
        ((LabeledWebMarkupContainer) input).setLabel(labelModel);
    }
}

From source file:org.opensingular.form.wicket.mapper.AbstractControlsFieldComponentMapper.java

License:Apache License

/**
 * Filtra os eventos (validate e process) garantindo que somente um ser disparado
 * <p>/*from  w w w .  j  a  v a2 s .c o  m*/
 * Quando algum blur acontecer, verifica se algum change est agendado, caso no esteja, agenda um blur
 * Quando algum change acontecer, verifica se algum blur est agendado, caso tenha limpa o blur dando dando prioridade ao change
 * <p>
 * @param comp o Componente a ser configurado.
 */
@Override
public void adjustJSEvents(Component comp) {
    comp.add(new SingularEventsHandlers(SingularEventsHandlers.FUNCTION.ADD_TEXT_FIELD_HANDLERS));
}

From source file:org.opensingular.form.wicket.mapper.annotation.AnnotationModalWindow.java

License:Apache License

@Override
protected void onInitialize() {
    super.onInitialize();
    SIAnnotationModel<?> annotationModel = annotationComponent.getAnnotationModel();
    final SInstanceValueModel<String> textModel = new SInstanceValueModel<>(
            new SInstanceFieldModel<>(annotationModel, "text"));
    final SInstanceValueModel<Boolean> approvedModel = new SInstanceValueModel<>(
            new SInstanceFieldModel<>(annotationModel, "isApproved"));

    if (editable) {

        final TextArea<?> comment = new TextArea<>("comment", textModel);
        final Label label = new Label("label", Model.of("Aprovado? "));
        final Component check = new CheckBox("approvalCheck", approvedModel)
                .add($b.attr("data-on-text", Model.of("Sim"))).add($b.attr("data-off-text", Model.of("No")));

        final BSContainer container = new BSContainer<>("body");
        final BSGrid grid = container.newGrid();

        BSControls formGroupAprove = grid.newRow().newCol(12).newFormGroup();
        formGroupAprove.appendLabel(label);
        formGroupAprove.appendTag("input", true,
                "type='checkbox' class='make-switch' data-on-color='info' data-off-color='danger'", check);

        BSControls justificativa = grid.newRow().newCol(12).newFormGroup();
        justificativa.appendLabel(new Label("label", "Justificativa"));
        justificativa.appendTextarea(comment, 15);

        check.add($b.on("switchChange.bootstrapSwitch", (c) -> JQuery.$(comment).append(".val('');")));

        setBody(container);//from w  ww. jav  a 2  s.com

        addLink(BSModalBorder.ButtonStyle.CANCEL, $m.ofValue("Cancelar"),
                new CancelOrCloseButton("btn-cancelar"));
        addButton(BSModalBorder.ButtonStyle.PRIMARY, $m.ofValue("Confirmar"),
                new OkButton("btn-ok", annotationComponent));

        comment.add(StringValidator.maximumLength(4000));
        comment.add(new CountDownBehaviour());

    } else {

        this.setBody(new BSContainer<>("body")
                .appendTag("div", true, "class='sannotation-text-comment'",
                        new MultiLineLabel("text", textModel))
                .appendTag("div", true, "", new ApprovalStatusLabel("approvalLabel", approvedModel)))
                .addLink(BSModalBorder.ButtonStyle.EMPTY, $m.ofValue("Fechar"),
                        new CancelOrCloseButton("cancel"));
    }
}

From source file:org.opensingular.form.wicket.mapper.BooleanMapper.java

License:Apache License

@Override
public void adjustJSEvents(Component comp) {
    comp.add(new SingularEventsHandlers(ADD_TEXT_FIELD_HANDLERS));
}

From source file:org.opensingular.form.wicket.mapper.DateMapper.java

License:Apache License

@Override
public void adjustJSEvents(Component comp) {
    BSDatepickerInputGroup datepicker = BSDatepickerInputGroup.getFromTextfield(comp);
    Component textField = datepicker.getTextField();
    textField.add(new SingularEventBehavior().setProcessEvent("changeDate", datepicker)
            .setValidateEvent("blur", textField).setSupportComponents(datepicker.getButton()));
}

From source file:org.opensingular.form.wicket.mapper.RichTextMapper.java

License:Apache License

private void addLogicToReplaceWithCKEditor(Component textarea) {
    textarea.add($b.attr("style", "display:none"));
    textarea.add(new CKEditorInitBehaviour());
}

From source file:org.opensingular.form.wicket.mapper.selection.RadioMapper.java

License:Apache License

@Override
public void adjustJSEvents(Component comp) {
    comp.add(new SingularEventsHandlers(SingularEventsHandlers.FUNCTION.ADD_TEXT_FIELD_HANDLERS));
}

From source file:org.opensingular.form.wicket.mapper.TabMapper.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public void buildView(final WicketBuildContext ctx) {

    final STypeComposite<SIComposite> tComposto = (STypeComposite<SIComposite>) ctx.getModel().getObject()
            .getType();//from   ww w. ja  v  a  2  s .c  o  m
    SViewTab tabView = (SViewTab) tComposto.getView();

    BSPanelGrid panel = new BSPanelGrid("panel") {

        @Override
        protected void onInitialize() {
            super.onInitialize();
            getNavigation().add($b.attr("style", "padding-right:0px;"));
        }

        @Override
        public void updateTab(BSTab tab, List<BSTab> tabs) {
            renderTab(tab.getSubtree(), this, ctx);
            ctx.updateExternalContainer(RequestCycle.get().find(AjaxRequestTarget.class));
        }

        @Override
        protected void onTabCreated(BSTab tab, Component tabComponent) {
            super.onTabCreated(tab, tabComponent);
            ISupplier<List<IModel<? extends SInstance>>> subtreeModels = () -> tab.getSubtree().stream()
                    .map(it -> new SInstanceFieldModel<>(tab.getModel(), it)).collect(toList());
            SValidationFeedbackHandler.bindTo(new FeedbackFence(tabComponent))
                    .addInstanceModels(subtreeModels.get())
                    .addListener((ISValidationFeedbackHandlerListener) (handler, target, container,
                            baseInstances, oldErrors, newErrors) -> {
                        if (target != null) {
                            target.add(tabComponent);
                        }
                    });
            tabComponent.add($b.classAppender("has-errors",
                    $m.get((ISupplier<Boolean>) () -> subtreeModels.get().stream().map(IModel::getObject)
                            .anyMatch(it -> !SValidationFeedbackHandler
                                    .collectNestedErrors(new FeedbackFence(tabComponent)).isEmpty()))));
        }

        @Override
        protected void configureColspan() {
            super.configureColspan();
            // Configura o tamanho da aba de acordo com os atributos bootstrap informados
            SIComposite instance = (SIComposite) ctx.getModel().getObject();
            SViewTab tabView = (SViewTab) instance.getType().getView();
            AtrBootstrap bootstrap = instance.asAtrBootstrap();
            // da prioridade ao que foi definido na View e nos atributos em seguida
            Integer colPreference = bootstrap.getColPreference();
            Integer colXs = resolveCol(tabView.getNavColXs(), bootstrap.getColXs(colPreference));
            Integer colSm = resolveCol(tabView.getNavColSm(), bootstrap.getColSm(colPreference));
            Integer colMd = resolveCol(tabView.getNavColMd(), bootstrap.getColMd(colPreference));
            Integer colLg = resolveCol(tabView.getNavColLg(), bootstrap.getColLg(colPreference));

            if (colXs != null) {
                getNavigation().xs(colXs);
                getContent().xs(BSTabCol.MAX_COLS - colXs);
            }
            if (colSm != null) {
                getNavigation().sm(colSm);
                getContent().sm(BSTabCol.MAX_COLS - colSm);
            }
            if (colMd != null) {
                getNavigation().md(colMd);
                getContent().md(BSTabCol.MAX_COLS - colMd);
            }
            if (colLg != null) {
                getNavigation().lg(colLg);
                getContent().lg(BSTabCol.MAX_COLS - colLg);
            }
        }

        private Integer resolveCol(Integer cols, Integer defaultCols) {
            Integer c = cols != null ? cols : defaultCols;
            return c != null && c < BSTabCol.MAX_COLS ? c : null;
        }
    };

    if (ctx.getCurrentInstance().getParent() == null) {
        panel.add(new ClassAttributeModifier() {
            @Override
            protected Set<String> update(Set<String> set) {
                set.add("singular-container-tab");
                return set;
            }
        });
    }

    SIComposite instance = (SIComposite) ctx.getModel().getObject();
    for (SViewTab.STab tab : tabView.getTabs()) {
        defineTabIconCss(ctx, instance, tab.getTypesName());
        IModel<SInstance> baseInstanceModel = (IModel<SInstance>) ctx.getModel();
        BSPanelGrid.BSTab t = panel.addTab(tab.getId(), tab.getTitle(), tab.getTypesName(), baseInstanceModel);
        t.iconClass((m) -> defineTabIconCss(ctx, (SIComposite) m.getObject(), t.getSubtree()));
    }

    final IModel<String> label = $m.ofValue(trimToEmpty(instance.asAtr().getLabel()));
    if (isNotBlank(label.getObject())) {
        ctx.getContainer().newTag("h4", new Label("_title", label));
    }

    ctx.getContainer().newTag("div", panel);

    SViewTab.STab tabDefault = tabView.getDefaultTab();

    renderTab(tabDefault.getTypesName(), panel, ctx);

}

From source file:org.opensingular.form.wicket.mapper.TelefoneNacionalMapper.java

License:Apache License

@Override
public Component appendInput(WicketBuildContext ctx, BSControls formGroup, IModel<String> labelModel) {
    final Component inputComponent = super.appendInput(ctx, formGroup, labelModel);
    inputComponent.add(new TelefoneNacionalMaskBehaviour());
    return inputComponent;
}

From source file:org.opensingular.lib.wicket.util.bootstrap.layout.BSControls.java

License:Apache License

public BSControls appendSelect(Component select, boolean multiple, boolean bootstrap) {
    if (multiple) {
        select.add(new BSSelectInitBehaviour());
    }//  w  w  w.j  a  va2 s  .c  o m

    return super.appendTag("select", true,
            ((bootstrap) ? "class='bs-select form-control' title='" + getString("BSControls.Select.Title") + "'"
                    : "class='form-control'") + (multiple ? "multiple" : ""),
            select);
}