List of usage examples for org.apache.wicket StyleAttributeModifier StyleAttributeModifier
public StyleAttributeModifier()
From source file:org.opensingular.form.wicket.feedback.SValidationFeedbackCompactPanel.java
License:Apache License
public SValidationFeedbackCompactPanel(String id, FeedbackFence fence) { super(id, fence); add($b.classAppender("singular-validation-feedback-compact-panel")); add(new Label("firstMessage", $m.get(this::firstMessageOrQuantity))); add(new StyleAttributeModifier() { @Override/*from w ww .jav a 2 s. c o m*/ protected Map<String, String> update(Map<String, String> oldStyles) { final Map<String, String> newStyles = new HashMap<>(oldStyles); if (getMessages().isEmpty()) { newStyles.put("display", "none"); } else { newStyles.put("display", "block"); } return newStyles; } }); add(new Behavior() { @Override public void renderHead(Component component, IHeaderResponse response) { super.renderHead(component, response); SValidationFeedbackCompactPanel fp = (SValidationFeedbackCompactPanel) component; if (fp.anyMessage(ValidationErrorLevel.ERROR)) { response.render(OnDomReadyHeaderItem .forScript(JQuery.$(fp) + ".closest('.can-have-error').addClass('has-error');")); } else if (fp.anyMessage(ValidationErrorLevel.WARNING)) { response.render(OnDomReadyHeaderItem .forScript(JQuery.$(fp) + ".closest('.can-have-error').addClass('has-warning');")); } else { response.render(OnDomReadyHeaderItem.forScript(JQuery.$(fp) + ".closest('.can-have-error').removeClass('has-error').removeClass('has-warning');")); } response.render(OnDomReadyHeaderItem.forScript( "" + "var $this = " + JQuery.$(SValidationFeedbackCompactPanel.this) + ";" + "var $fence = " + JQuery.$(fence.getMainContainer()) + ";" + "$fence.find(':input')" + " .on('focus', function(){ $this.addClass('singular-active'); })" + " .on('blur', function(){ $this.removeClass('singular-active'); });" // + "$this" // + " .on('mouseover', function(){ $this.addClass('singular-active'); })" // + " .on('mouseout', function(){ $this.removeClass('singular-active'); });" + "")); List<IValidationError> messages = getMessages(); if (!messages.isEmpty()) { String errors = messages.stream().map(IValidationError::getMessage) .collect(joining("</li><li>", "<ul class='list-unstyled'><li>", "</li></ul>")); if (messages.size() > 1) { response.render(OnDomReadyHeaderItem .forScript("" + "(function(){" + "'use strict';" + "var $feedback = " + JQuery.$(component) + ";" + "var $formGroup = $feedback.parent();" + "var $input = $formGroup.find(':input:first');" + "$input" + " .data('content', '" + JavaScriptUtils.javaScriptEscape(errors) + "')" + " .popover({" + " 'html':true," + " 'placement':'bottom'," + " 'trigger':'manual'" + " });" + "$formGroup" + " .hover(" + " function(){ console.log($input); $input.popover('show'); }," + " function(){ $input.popover('hide'); });" + "})();")); } } } }); }