List of usage examples for org.apache.wicket ClassAttributeModifier ClassAttributeModifier
public ClassAttributeModifier()
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); }