/******************************************************************************* * Copyright (c) 2015 Development Gateway, Inc and others. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the MIT License (MIT) * which accompanies this distribution, and is available at * https://opensource.org/licenses/MIT * * Contributors: * Development Gateway - initial API and implementation *******************************************************************************/ /** * */ package org.devgateway.toolkit.forms.wicket.components; import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipBehavior; import de.agilecoders.wicket.core.markup.html.bootstrap.components.TooltipConfig; import org.apache.wicket.AttributeModifier; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.Model; import org.apache.wicket.model.StringResourceModel; /** * @author mpostelnicu * */ public class TooltipLabel extends Label { private static final long serialVersionUID = 1L; private StringResourceModel helpModelText; private String fieldId; private boolean configWithHtml = true; private TooltipConfig.OpenTrigger configWithTrigger = TooltipConfig.OpenTrigger.hover; private static CustomTooltipConfig tooltipConfig; public class CustomTooltipConfig extends TooltipConfig { private static final long serialVersionUID = 1L; public CustomTooltipConfig() { if (configWithHtml) { withHtml(true); } withTrigger(configWithTrigger); } } /** * @param id */ public TooltipLabel(final String id, final String fieldId) { super(id, Model.of("")); this.fieldId = fieldId; add(AttributeModifier.append("class", "fa fa-question-circle")); } /* * (non-Javadoc) * * @see org.apache.wicket.Component#onConfigure() */ @Override protected void onConfigure() { super.onConfigure(); helpModelText = new StringResourceModel(fieldId + ".help", this); helpModelText.setDefaultValue(""); if (!helpModelText.getString().isEmpty()) { tooltipConfig = new CustomTooltipConfig(); add(new TooltipBehavior(helpModelText, tooltipConfig)); setVisibilityAllowed(!ComponentUtil.isViewMode()); } else { setVisibilityAllowed(false); } } public TooltipConfig.OpenTrigger getConfigWithTrigger() { return configWithTrigger; } public void setConfigWithTrigger(final TooltipConfig.OpenTrigger configWithTrigger) { this.configWithTrigger = configWithTrigger; } public boolean isConfigWithHtml() { return configWithHtml; } public void setConfigWithHtml(final boolean configWithHtml) { this.configWithHtml = configWithHtml; } }