Example usage for org.apache.wicket ClassAttributeModifier ClassAttributeModifier

List of usage examples for org.apache.wicket ClassAttributeModifier ClassAttributeModifier

Introduction

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

Prototype

public ClassAttributeModifier() 

Source Link

Document

Constructor.

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);//w w w  . ja  v  a 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.AbstractListMapper.java

License:Apache License

protected static void personalizeCSS(BSContainer<?> footer) {
    footer.add(new ClassAttributeModifier() {
        protected Set<String> update(Set<String> oldClasses) {
            oldClasses.remove("text-right");
            return oldClasses;
        }//from w  w w.java2 s .co  m
    });
}

From source file:org.opensingular.form.wicket.mapper.attachment.single.FileUploadPanel.java

License:Apache License

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

    adder = new AddFileBehavior();
    add(adder);//from www . jav a 2 s .c  o m

    downloader = new DownloadSupportedBehavior(self.getModel());
    add(downloader);

    downloadLink = new DownloadLink("downloadLink", self.getModel(), downloader);
    fileField = new FileUploadField("fileUpload", dummyModel(self.getModel()));

    filesContainer = new WebMarkupContainer("files");
    add(filesContainer.add(downloadLink));
    add(uploadFileButton.add(fileField));
    add(removeFileButton.add(new AttributeAppender("title", "Excluir")));

    progressBar = new WebMarkupContainer("progress");
    add(progressBar);

    add(new ClassAttributeModifier() {

        @Override
        protected Set<String> update(Set<String> oldClasses) {
            oldClasses.add("fileinput fileinput-new upload-single upload-single-uploaded");
            return oldClasses;
        }
    });
}

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

License:Apache License

private void buildForEdition(WicketBuildContext ctx, IModel<? extends SInstance> model, BSControls formGroup,
        AttributeModel<String> labelModel) {

    final CheckBox input = new CheckBox(model.getObject().getName(), new SInstanceValueModel<>(model));
    final Label label = buildLabel("_", labelModel);
    adjustJSEvents(label);//from ww  w. ja  va 2s.c  o m
    formGroup.appendCheckbox(input, label);
    input.add(DisabledClassBehavior.getInstance());
    formGroup.appendFeedback(ctx.createFeedbackCompactPanel("feedback"));
    ctx.configure(this, input);

    label.add(new ClassAttributeModifier() {
        @Override
        protected Set<String> update(Set<String> oldClasses) {
            if (model.getObject().isRequired()) {
                oldClasses.add("singular-form-required");
            } else {
                oldClasses.remove("singular-form-required");
            }
            return oldClasses;
        }
    });
}

From source file:org.opensingular.form.wicket.mapper.components.MetronicPanel.java

License:Apache License

public static ClassAttributeModifier dependsOnModifier(IModel<? extends SInstance> model) {
    return new ClassAttributeModifier() {
        @Override//from  w w w. j ava2  s.  co m
        protected Set<String> update(Set<String> oldClasses) {
            if (model.getObject().getAttributeValue(SPackageBasic.ATR_DEPENDS_ON_FUNCTION) != null) {
                oldClasses.add("dependant-input-group");
            }
            return oldClasses;
        }
    };
}

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

License:Apache License

private void builContent(BSContainer<?> content, Form<?> form, IModel<SIList<SInstance>> list,
        WicketBuildContext ctx, SViewListByTable view, boolean isEdition) {

    final String markup = ""
            + " <div class='list-table-empty' wicket:id='empty-content'>                                             "
            + "     <p class='list-table-empty-message'>Nenhum item foi adicionado. </p>                             "
            + " </div>                                                                                               "
            + " <div wicket:id='not-empty-content'>                                                                  "
            + "     <table class='table table-condensed table-unstyled' style='margin-bottom:0px'>                   "
            + "          <thead wicket:id='_h'></thead>                                                              "
            + "          <tbody><wicket:container wicket:id='_e'><tr wicket:id='_r'></tr></wicket:container></tbody> "
            + "          <tfoot wicket:id='_ft'>                                                                     "
            + "              <tr><td colspan='99' wicket:id='_fb'></td></tr>                                         "
            + "          </tfoot>                                                                                    "
            + "     </table>                                                                                         "
            + " </div>                                                                                               ";

    final TemplatePanel template = content.newTemplateTag(tp -> markup);

    final WebMarkupContainer emptyContent = new WebMarkupContainer("empty-content");
    emptyContent.add(new Behavior() {
        @Override//www  .  ja va  2 s .c  om
        public void onConfigure(Component component) {
            super.onConfigure(component);
            component.setVisible(list.getObject().isEmpty());
        }
    });
    template.add(emptyContent);

    final WebMarkupContainer notEmptyContent = new WebMarkupContainer("not-empty-content");

    final BSTSection tableHeader = new BSTSection("_h").setTagName("thead");
    final ElementsView tableRows = new TableElementsView("_e", list, ctx, form);
    final WebMarkupContainer tableFooter = new WebMarkupContainer("_ft");
    final BSContainer<?> footerBody = new BSContainer<>("_fb");
    final SType<SInstance> elementsType = list.getObject().getElementsType();

    notEmptyContent.add($b.onConfigure(c -> c.setVisible(!list.getObject().isEmpty())));

    //        content.add($b.attrAppender("style", "padding: 15px 15px 10px 15px", ";"));

    if (elementsType.isComposite()) {

        final STypeComposite<?> compositeElementsType = (STypeComposite<?>) elementsType;
        final BSTRow row = tableHeader.newRow();

        if (view.isInsertEnabled()) {
            row.newTHeaderCell($m.ofValue(""));
        }

        Collection<SType<?>> fields = compositeElementsType.getFields();
        int sumWidthPref = fields.stream().mapToInt((x) -> x.asAtrBootstrap().getColPreference(1)).sum();

        for (SType<?> tCampo : fields) {

            final Integer preferentialWidth = tCampo.asAtrBootstrap().getColPreference(1);
            final IModel<String> headerModel = $m.ofValue(tCampo.asAtr().getLabel());
            final BSTDataCell cell = row.newTHeaderCell(headerModel);
            final String width = String.format("width:%.0f%%;", (100.0 * preferentialWidth) / sumWidthPref);
            final boolean isCampoObrigatorio = tCampo.asAtr().isRequired();

            ctx.configureContainer(headerModel);

            cell.setInnerStyle(width);
            cell.add(new ClassAttributeModifier() {
                @Override
                protected Set<String> update(Set<String> oldClasses) {
                    if (isCampoObrigatorio && isEdition) {
                        oldClasses.add("singular-form-required");
                    } else {
                        oldClasses.remove("singular-form-required");
                    }
                    return oldClasses;
                }
            });
        }
    }

    tableFooter.setVisible(!(view.isNewEnabled() && isEdition));

    template.add(notEmptyContent.add(tableHeader).add(tableRows).add(tableFooter.add(footerBody)));

    content.getParent().add(dependsOnModifier(list));
}

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  w ww.j ava 2s .  com*/
    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);

}