12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.vaadin.tests.themes;
-
- import java.io.ByteArrayInputStream;
- import java.io.InputStream;
- import java.util.UUID;
-
- import com.vaadin.server.Page;
- import com.vaadin.server.Page.Styles;
- import com.vaadin.shared.ui.ContentMode;
- import com.vaadin.server.StreamResource;
- import com.vaadin.tests.components.TestBase;
- import com.vaadin.ui.Button;
- import com.vaadin.ui.Button.ClickEvent;
- import com.vaadin.ui.Label;
- import com.vaadin.v7.ui.TextArea;
-
- public class CSSInjectTest extends TestBase {
-
- @Override
- protected void setup() {
-
- final Styles stylesheet = Page.getCurrent().getStyles();
-
- // Inject some resources initially
- final StreamResource initialResource = new StreamResource(
- new StreamResource.StreamSource() {
-
- @Override
- public InputStream getStream() {
- return new ByteArrayInputStream(
- ".hello, .world { color:silver; }".getBytes());
- }
- }, "mystyles-" + System.currentTimeMillis() + ".css");
- stylesheet.add(initialResource);
-
- Label hello = new Label(
- "<span class='hello'>Hello</span> <span class='world'>world</span>",
- ContentMode.HTML);
- addComponent(hello);
-
- final TextArea cssToInject = new TextArea();
- cssToInject.setImmediate(true);
- addComponent(cssToInject);
-
- Button inject = new Button("Inject!", new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
- stylesheet.add(cssToInject.getValue());
- cssToInject.setValue("");
- }
- });
- addComponent(inject);
-
- Button injectRandom = new Button("Inject as resource!",
- new Button.ClickListener() {
-
- @Override
- public void buttonClick(ClickEvent event) {
-
- final String css = cssToInject.getValue();
-
- stylesheet.add(new StreamResource(
- new StreamResource.StreamSource() {
-
- @Override
- public InputStream getStream() {
- return new ByteArrayInputStream(
- css.getBytes());
- }
- }, UUID.randomUUID().toString() + ".css"));
-
- cssToInject.setValue("");
- }
- });
- addComponent(injectRandom);
-
- addComponent(
- new Button("Inject initial again!", new Button.ClickListener() {
- @Override
- public void buttonClick(ClickEvent event) {
- stylesheet.add(initialResource);
- }
- }));
- }
-
- @Override
- protected String getDescription() {
- return "Demonstrates how CSS injections can be used to theme the \"Hello world\" label below";
- }
-
- @Override
- protected Integer getTicketNumber() {
- return 5500;
- }
-
- }
|