}
/** For internal use only. May be removed or replaced in the future. */
- public void setCaption(String text) {
- DOM.setInnerHTML(captionText, text);
+ public void setCaption(String text, boolean captionAsHtml) {
+ if (captionAsHtml) {
+ captionText.setInnerHTML(text);
+ } else {
+ captionText.setInnerText(text);
+ }
}
/** For internal use only. May be removed or replaced in the future. */
panel.captionNode.setClassName(VPanel.CLASSNAME + "-caption");
boolean hasCaption = hasCaption();
if (hasCaption) {
- panel.setCaption(getState().caption);
+ panel.setCaption(getState().caption,getState().captionAsHtml);
} else {
- panel.setCaption("");
+ panel.setCaption("",false);
panel.captionNode.setClassName(VPanel.CLASSNAME + "-nocaption");
}
buttons.addComponent(companiesButton);
buttons.addComponent(settingsButton);
panel = new Panel();
+ panel.setCaption("<div class=\"caption-with-html\">Caption</div>");
panel.setSizeFull();
panel.setContent(stats);
content.addComponent(buttons);
--- /dev/null
+package com.vaadin.tests.components.panel;
+
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.ui.Panel;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.VerticalLayout;
+
+public class PanelHTMLCaption extends AbstractTestUI {
+ public static final String caption = "<b> <div id='divId'>BOLD CAPTION</div></b>";
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ Panel panel = new Panel();
+ panel.setId("panelId");
+ panel.setWidth("200px");
+ panel.setHeight("200px");
+
+ panel.setCaption(caption);
+ panel.setCaptionAsHtml(false);
+
+ panel.setContent(new VerticalLayout());
+
+ addComponent(panel);
+ Button changeCaptionFormat = new Button("Set Caption as HTML", e -> {
+ panel.setCaptionAsHtml(true);
+ });
+ changeCaptionFormat.setId("buttonId");
+ addComponent(changeCaptionFormat);
+ }
+}
\ No newline at end of file
import org.junit.Test;
+import com.vaadin.testbench.By;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class PanelChangeContentsTest extends MultiBrowserTest {
"/VVerticalLayout[0]/Slot[1]/VPanel[0]/VVerticalLayout[0]/Slot[0]/VLabel[0]")
.getText());
+ assertElementNotPresent(By.className("caption-with-html"));
}
}
--- /dev/null
+package com.vaadin.tests.components.panel;
+
+import com.vaadin.tests.tb3.MultiBrowserTest;
+import org.junit.Test;
+import org.openqa.selenium.By;
+
+
+public class PanelHTMLCaptionTest extends MultiBrowserTest {
+ @Test
+ public void testCaptionDisplayedAsText() {
+ openTestURL();
+ assertElementNotPresent(By.id("divId"));
+ findElement(By.id("buttonId")).click();
+ assertElementPresent(By.id("divId"));
+ }
+}