package org.nocket.component.table; import org.apache.wicket.Component; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.Model; public class LabelHtmlizer { public static final String NO_LABEL = "_no_label"; public static void enableHtml(Component labelComponent) { if (labelComponent instanceof Label) { Label label = (Label) labelComponent; String labelText = (String) label.getDefaultModelObject(); String strippedLabel = stripHTMLIntroOutro(labelText); if (strippedLabel.length() < labelText.length()) { // Text is <HTML>-introduced label.setDefaultModel(Model.of(strippedLabel)); label.setEscapeModelStrings(false); } } } public static String stripHTMLIntroOutro(String message) { if (message.length() > 5) { String intro = message.substring(0, 6).toUpperCase(); if (intro.equals("<HTML>")) { message = message.substring(6); if (message.length() > 6) { String outro = message.substring(message.length() - 7, message.length()).toUpperCase(); if (outro.equals("</HTML>")) { message = message.substring(0, message.length() - 7); } } } } return message; } }