From: Johannes Dahlström Date: Tue, 11 Sep 2012 07:52:56 +0000 (+0300) Subject: Improvements to #9087: X-Git-Tag: 7.0.0.beta1~59 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=c0b98ed77842f505f3a2f424c5d049a3c0c970cb;p=vaadin-framework.git Improvements to #9087: * Rename EmbeddedBrowser to BrowserFrame * Add constructors to Flash and BrowserFrame * Change getState() methods to protected * JavaDoc improvements * Make ImageClicks test deterministic --- diff --git a/client/src/com/vaadin/client/ui/browserframe/BrowserFrameConnector.java b/client/src/com/vaadin/client/ui/browserframe/BrowserFrameConnector.java new file mode 100644 index 0000000000..c22d92235b --- /dev/null +++ b/client/src/com/vaadin/client/ui/browserframe/BrowserFrameConnector.java @@ -0,0 +1,38 @@ +package com.vaadin.client.ui.browserframe; + +import com.vaadin.client.communication.StateChangeEvent; +import com.vaadin.client.ui.AbstractComponentConnector; +import com.vaadin.shared.ui.AbstractEmbeddedState; +import com.vaadin.shared.ui.Connect; +import com.vaadin.shared.ui.browserframe.BrowserFrameState; + +@Connect(com.vaadin.ui.BrowserFrame.class) +public class BrowserFrameConnector extends AbstractComponentConnector { + + @Override + protected void init() { + super.init(); + } + + @Override + public VBrowserFrame getWidget() { + return (VBrowserFrame) super.getWidget(); + } + + @Override + public BrowserFrameState getState() { + return (BrowserFrameState) super.getState(); + } + + @Override + public void onStateChanged(StateChangeEvent stateChangeEvent) { + + super.onStateChanged(stateChangeEvent); + + getWidget().setAlternateText(getState().alternateText); + getWidget().setSource( + getResourceUrl(AbstractEmbeddedState.SOURCE_RESOURCE)); + getWidget().setName(getConnectorId()); + } + +} diff --git a/client/src/com/vaadin/client/ui/browserframe/VBrowserFrame.java b/client/src/com/vaadin/client/ui/browserframe/VBrowserFrame.java new file mode 100644 index 0000000000..da2c981a8d --- /dev/null +++ b/client/src/com/vaadin/client/ui/browserframe/VBrowserFrame.java @@ -0,0 +1,120 @@ +package com.vaadin.client.ui.browserframe; + +import com.google.gwt.dom.client.Document; +import com.google.gwt.dom.client.Element; +import com.google.gwt.dom.client.IFrameElement; +import com.google.gwt.user.client.ui.Widget; + +public class VBrowserFrame extends Widget { + + protected IFrameElement iframe; + protected Element altElement; + protected String altText; + + public VBrowserFrame() { + Element root = Document.get().createDivElement(); + setElement(root); + + setStylePrimaryName("v-browserframe"); + + createAltTextElement(); + } + + /** + * Always creates new iframe inside widget. Will replace previous iframe. + * + * @return + */ + protected IFrameElement createIFrameElement(String src) { + String name = null; + + // Remove alt text + if (altElement != null) { + getElement().removeChild(altElement); + altElement = null; + } + + // Remove old iframe + if (iframe != null) { + name = iframe.getAttribute("name"); + getElement().removeChild(iframe); + iframe = null; + } + + iframe = Document.get().createIFrameElement(); + iframe.setSrc(src); + iframe.setFrameBorder(0); + iframe.setAttribute("width", "100%"); + iframe.setAttribute("height", "100%"); + iframe.setAttribute("allowTransparency", "true"); + + getElement().appendChild(iframe); + + // Reset old attributes (except src) + if (name != null) { + iframe.setName(name); + } + + return iframe; + } + + protected void createAltTextElement() { + if (iframe != null) { + return; + } + + if (altElement == null) { + altElement = Document.get().createSpanElement(); + getElement().appendChild(altElement); + } + + if (altText != null) { + altElement.setInnerText(altText); + } else { + altElement.setInnerText(""); + } + } + + public void setAlternateText(String altText) { + if (this.altText != altText) { + this.altText = altText; + if (altElement != null) { + if (altText != null) { + altElement.setInnerText(altText); + } else { + altElement.setInnerText(""); + } + } + } + } + + /** + * Set the source (the "src" attribute) of iframe. Will replace old iframe + * with new. + * + * @param source + * Source of iframe. + */ + public void setSource(String source) { + + if (source == null) { + if (iframe != null) { + getElement().removeChild(iframe); + iframe = null; + } + createAltTextElement(); + setAlternateText(altText); + return; + } + + if (iframe == null || iframe.getSrc() != source) { + createIFrameElement(source); + } + } + + public void setName(String name) { + if (iframe != null) { + iframe.setName(name); + } + } +} diff --git a/client/src/com/vaadin/client/ui/embeddedbrowser/EmbeddedBrowserConnector.java b/client/src/com/vaadin/client/ui/embeddedbrowser/EmbeddedBrowserConnector.java deleted file mode 100644 index 10445dbff5..0000000000 --- a/client/src/com/vaadin/client/ui/embeddedbrowser/EmbeddedBrowserConnector.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.vaadin.client.ui.embeddedbrowser; - -import com.vaadin.client.communication.StateChangeEvent; -import com.vaadin.client.ui.AbstractComponentConnector; -import com.vaadin.shared.ui.AbstractEmbeddedState; -import com.vaadin.shared.ui.Connect; -import com.vaadin.shared.ui.embeddedbrowser.EmbeddedBrowserState; - -@Connect(com.vaadin.ui.EmbeddedBrowser.class) -public class EmbeddedBrowserConnector extends AbstractComponentConnector { - - @Override - protected void init() { - super.init(); - } - - @Override - public VEmbeddedBrowser getWidget() { - return (VEmbeddedBrowser) super.getWidget(); - } - - @Override - public EmbeddedBrowserState getState() { - return (EmbeddedBrowserState) super.getState(); - } - - @Override - public void onStateChanged(StateChangeEvent stateChangeEvent) { - - super.onStateChanged(stateChangeEvent); - - getWidget().setAlternateText(getState().alternateText); - getWidget().setSource( - getResourceUrl(AbstractEmbeddedState.SOURCE_RESOURCE)); - getWidget().setName(getConnectorId()); - } - -} diff --git a/client/src/com/vaadin/client/ui/embeddedbrowser/VEmbeddedBrowser.java b/client/src/com/vaadin/client/ui/embeddedbrowser/VEmbeddedBrowser.java deleted file mode 100644 index 3fe1c44bc3..0000000000 --- a/client/src/com/vaadin/client/ui/embeddedbrowser/VEmbeddedBrowser.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.vaadin.client.ui.embeddedbrowser; - -import com.google.gwt.dom.client.Document; -import com.google.gwt.dom.client.Element; -import com.google.gwt.dom.client.IFrameElement; -import com.google.gwt.user.client.ui.Widget; - -public class VEmbeddedBrowser extends Widget { - - protected IFrameElement iframe; - protected Element altElement; - protected String altText; - - public VEmbeddedBrowser() { - Element root = Document.get().createDivElement(); - setElement(root); - - setStylePrimaryName("v-embeddedbrowser"); - - createAltTextElement(); - } - - /** - * Always creates new iframe inside widget. Will replace previous iframe. - * - * @return - */ - protected IFrameElement createIFrameElement(String src) { - String name = null; - - // Remove alt text - if (altElement != null) { - getElement().removeChild(altElement); - altElement = null; - } - - // Remove old iframe - if (iframe != null) { - name = iframe.getAttribute("name"); - getElement().removeChild(iframe); - iframe = null; - } - - iframe = Document.get().createIFrameElement(); - iframe.setSrc(src); - iframe.setFrameBorder(0); - iframe.setAttribute("width", "100%"); - iframe.setAttribute("height", "100%"); - iframe.setAttribute("allowTransparency", "true"); - - getElement().appendChild(iframe); - - // Reset old attributes (except src) - if (name != null) { - iframe.setName(name); - } - - return iframe; - } - - protected void createAltTextElement() { - if (iframe != null) { - return; - } - - if (altElement == null) { - altElement = Document.get().createSpanElement(); - getElement().appendChild(altElement); - } - - if (altText != null) { - altElement.setInnerText(altText); - } else { - altElement.setInnerText(""); - } - } - - public void setAlternateText(String altText) { - if (this.altText != altText) { - this.altText = altText; - if (altElement != null) { - if (altText != null) { - altElement.setInnerText(altText); - } else { - altElement.setInnerText(""); - } - } - } - } - - /** - * Set the source (the "src" attribute) of iframe. Will replace old iframe - * with new. - * - * @param source - * Source of iframe. - */ - public void setSource(String source) { - - if (source == null) { - if (iframe != null) { - getElement().removeChild(iframe); - iframe = null; - } - createAltTextElement(); - setAlternateText(altText); - return; - } - - if (iframe == null || iframe.getSrc() != source) { - createIFrameElement(source); - } - } - - public void setName(String name) { - if (iframe != null) { - iframe.setName(name); - } - } -} diff --git a/server/src/com/vaadin/ui/AbstractEmbedded.java b/server/src/com/vaadin/ui/AbstractEmbedded.java index 5c72141ef9..7dcf7ca091 100644 --- a/server/src/com/vaadin/ui/AbstractEmbedded.java +++ b/server/src/com/vaadin/ui/AbstractEmbedded.java @@ -19,7 +19,7 @@ import com.vaadin.shared.ui.AbstractEmbeddedState; public abstract class AbstractEmbedded extends AbstractComponent { @Override - public AbstractEmbeddedState getState() { + protected AbstractEmbeddedState getState() { return (AbstractEmbeddedState) super.getState(); } diff --git a/server/src/com/vaadin/ui/BrowserFrame.java b/server/src/com/vaadin/ui/BrowserFrame.java new file mode 100644 index 0000000000..e79e03c2dd --- /dev/null +++ b/server/src/com/vaadin/ui/BrowserFrame.java @@ -0,0 +1,51 @@ +package com.vaadin.ui; + +import com.vaadin.server.Resource; +import com.vaadin.shared.ui.browserframe.BrowserFrameState; + +/** + * A component displaying an embedded web page. Implemented as a HTML + * iframe element. + * + * @author Vaadin Ltd. + * @version + * @VERSION@ + * @since 7.0 + */ +public class BrowserFrame extends AbstractEmbedded { + + /** + * Creates a new empty browser frame. + */ + public BrowserFrame() { + + } + + /** + * Creates a new empty browser frame with the given caption. + * + * @param caption + * The caption for the component + */ + public BrowserFrame(String caption) { + setCaption(caption); + } + + /** + * Creates a new browser frame with the given caption and content. + * + * @param caption + * The caption for the component. + * @param source + * A Resource representing the Web page that should be displayed. + */ + public BrowserFrame(String caption, Resource source) { + this(caption); + setSource(source); + } + + @Override + protected BrowserFrameState getState() { + return (BrowserFrameState) super.getState(); + } +} diff --git a/server/src/com/vaadin/ui/Embedded.java b/server/src/com/vaadin/ui/Embedded.java index 3bcd7a26a0..d61fd44292 100644 --- a/server/src/com/vaadin/ui/Embedded.java +++ b/server/src/com/vaadin/ui/Embedded.java @@ -34,9 +34,14 @@ import com.vaadin.shared.ui.embedded.EmbeddedServerRpc; /** * Component for embedding external objects. *

- * As of Vaadin 7.0, the {@link Image}, {@link Flash}, and - * {@link EmbeddedBrowser} components should be used instead of - * Embedded whenever appropriate. + * As of Vaadin 7.0, the {@link Image}, {@link Flash}, and {@link BrowserFrame} + * components should be used instead of Embedded for displaying + * images, Adobe Flash objects, and embedded web pages, respectively. + * Embedded is still useful for displaying other multimedia content + * such as applets and PDF documents. + * + * @see Video + * @see Audio * * @author Vaadin Ltd. * @since 3.0 @@ -60,7 +65,7 @@ public class Embedded extends AbstractComponent implements LegacyComponent { /** * Browser ("iframe") type. * - * @deprecated As of 7.0, use the {@link EmbeddedBrowser} component instead. + * @deprecated As of 7.0, use the {@link BrowserFrame} component instead. */ @Deprecated public static final int TYPE_BROWSER = 2; diff --git a/server/src/com/vaadin/ui/EmbeddedBrowser.java b/server/src/com/vaadin/ui/EmbeddedBrowser.java deleted file mode 100644 index 4e2ae18de8..0000000000 --- a/server/src/com/vaadin/ui/EmbeddedBrowser.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.vaadin.ui; - -import com.vaadin.shared.ui.embeddedbrowser.EmbeddedBrowserState; - -/** - * Component for embedding browser "iframe". - * - * @author Vaadin Ltd. - * @version - * @VERSION@ - * @since 7.0 - */ -public class EmbeddedBrowser extends AbstractEmbedded { - - @Override - public EmbeddedBrowserState getState() { - return (EmbeddedBrowserState) super.getState(); - } -} diff --git a/server/src/com/vaadin/ui/Flash.java b/server/src/com/vaadin/ui/Flash.java index 430018289a..726b6c21c4 100644 --- a/server/src/com/vaadin/ui/Flash.java +++ b/server/src/com/vaadin/ui/Flash.java @@ -6,10 +6,11 @@ package com.vaadin.ui; import java.util.HashMap; +import com.vaadin.server.Resource; import com.vaadin.shared.ui.flash.FlashState; /** - * Component for embedding flash objects. + * A component for displaying Adobe® Flash® content. * * @author Vaadin Ltd. * @version @@ -19,8 +20,39 @@ import com.vaadin.shared.ui.flash.FlashState; @SuppressWarnings("serial") public class Flash extends AbstractEmbedded { + /** + * Creates a new empty Flash component. + */ + public Flash() { + + } + + /** + * Creates a new empty Flash component with the given caption + * + * @param caption + * The caption for the component + */ + public Flash(String caption) { + setCaption(caption); + } + + /** + * Creates a new Flash component with the given caption and content. + * + * @param caption + * The caption for the component + * @param source + * A Resource representing the Flash content that should be + * displayed + */ + public Flash(String caption, Resource source) { + this(caption); + setSource(source); + } + @Override - public FlashState getState() { + protected FlashState getState() { return (FlashState) super.getState(); } diff --git a/server/src/com/vaadin/ui/Image.java b/server/src/com/vaadin/ui/Image.java index 178e557cf3..c1b27704d4 100644 --- a/server/src/com/vaadin/ui/Image.java +++ b/server/src/com/vaadin/ui/Image.java @@ -61,7 +61,7 @@ public class Image extends AbstractEmbedded { } @Override - public ImageState getState() { + protected ImageState getState() { return (ImageState) super.getState(); } diff --git a/shared/src/com/vaadin/shared/ui/browserframe/BrowserFrameState.java b/shared/src/com/vaadin/shared/ui/browserframe/BrowserFrameState.java new file mode 100644 index 0000000000..1c36420372 --- /dev/null +++ b/shared/src/com/vaadin/shared/ui/browserframe/BrowserFrameState.java @@ -0,0 +1,7 @@ +package com.vaadin.shared.ui.browserframe; + +import com.vaadin.shared.ui.AbstractEmbeddedState; + +public class BrowserFrameState extends AbstractEmbeddedState { + +} diff --git a/shared/src/com/vaadin/shared/ui/embeddedbrowser/EmbeddedBrowserState.java b/shared/src/com/vaadin/shared/ui/embeddedbrowser/EmbeddedBrowserState.java deleted file mode 100644 index cca47176a3..0000000000 --- a/shared/src/com/vaadin/shared/ui/embeddedbrowser/EmbeddedBrowserState.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.vaadin.shared.ui.embeddedbrowser; - -import com.vaadin.shared.ui.AbstractEmbeddedState; - -public class EmbeddedBrowserState extends AbstractEmbeddedState { - -} diff --git a/uitest/src/com/vaadin/tests/components/browserframe/BrowserFrameIsVisible.html b/uitest/src/com/vaadin/tests/components/browserframe/BrowserFrameIsVisible.html new file mode 100644 index 0000000000..93b855838c --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/browserframe/BrowserFrameIsVisible.html @@ -0,0 +1,67 @@ + + + + + + +BrowserFrameIsVisible + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BrowserFrameIsVisible
open/run/com.vaadin.tests.components.browserframe.BrowserFrameIsVisible?restartApplication
screenCaptureshow_initial
clickvaadin=runcomvaadintestscomponentsbrowserframeBrowserFrameIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[0]/domChild[0]/domChild[0]
screenCaptureshow_hello
clickvaadin=runcomvaadintestscomponentsbrowserframeBrowserFrameIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[1]/domChild[0]/domChild[0]
screenCaptureshow_lorem
clickvaadin=runcomvaadintestscomponentsbrowserframeBrowserFrameIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[2]/domChild[0]/domChild[0]
screenCaptureshow_alternative_text
clickvaadin=runcomvaadintestscomponentsbrowserframeBrowserFrameIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[1]/domChild[0]/domChild[0]
screenCaptureshow_lorem2
+ + diff --git a/uitest/src/com/vaadin/tests/components/browserframe/BrowserFrameIsVisible.java b/uitest/src/com/vaadin/tests/components/browserframe/BrowserFrameIsVisible.java new file mode 100644 index 0000000000..4e9c133bea --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/browserframe/BrowserFrameIsVisible.java @@ -0,0 +1,116 @@ +package com.vaadin.tests.components.browserframe; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; + +import com.vaadin.server.StreamResource; +import com.vaadin.tests.components.TestBase; +import com.vaadin.ui.BrowserFrame; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.HorizontalLayout; + +public class BrowserFrameIsVisible extends TestBase { + + @Override + protected void setup() { + + HorizontalLayout buttonLayout = new HorizontalLayout(); + addComponent(buttonLayout); + + Button page1 = new Button("Hello World"); + buttonLayout.addComponent(page1); + + Button page2 = new Button("Lorem ipsum"); + buttonLayout.addComponent(page2); + + Button page3 = new Button("null"); + buttonLayout.addComponent(page3); + + final BrowserFrame browser = new BrowserFrame(); + browser.setId("browser"); + browser.setWidth("600px"); + browser.setHeight("300px"); + browser.setAlternateText("Browser alternative text"); + final TextSource textSource = new TextSource("initial"); + final StreamResource textResource = new StreamResource(textSource, + "initial.txt"); + textResource.setMIMEType("text/plain"); + browser.setSource(textResource); + addComponent(browser); + + page1.addClickListener(new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + TextSource helloSource = new TextSource("Hello World"); + StreamResource helloResource = new StreamResource(helloSource, + "helloworld.txt"); + helloResource.setMIMEType("text/plain"); + browser.setSource(helloResource); + } + }); + + page2.addClickListener(new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + TextSource helloSource = new TextSource("Lorem Ipsum"); + StreamResource helloResource = new StreamResource(helloSource, + "loremipsum.txt"); + helloResource.setMIMEType("text/plain"); + browser.setSource(helloResource); + } + }); + + page3.addClickListener(new Button.ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + browser.setSource(null); + } + }); + } + + @Override + protected String getDescription() { + return "Embedded browser should be visible for all browsers"; + } + + @Override + protected Integer getTicketNumber() { + return null; + } + + public class TextSource implements StreamResource.StreamSource { + private String text; + + public TextSource(String text) { + this.text = text; + } + + @Override + public InputStream getStream() { + + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 200; ++i) { + sb.append(text); + sb.append("\n"); + } + + ByteArrayInputStream istream; + try { + istream = new ByteArrayInputStream(sb.toString().getBytes( + "UTF-8")); + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + return null; + } + return istream; // new DownloadStream (istream,null,null); + + } + } + +} diff --git a/uitest/src/com/vaadin/tests/components/embeddedbrowser/EmbeddedBrowserIsVisible.html b/uitest/src/com/vaadin/tests/components/embeddedbrowser/EmbeddedBrowserIsVisible.html deleted file mode 100644 index 2d76cd48b2..0000000000 --- a/uitest/src/com/vaadin/tests/components/embeddedbrowser/EmbeddedBrowserIsVisible.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - -EmbeddedBrowserIsVisible - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EmbeddedBrowserIsVisible
open/run/com.vaadin.tests.components.embeddedbrowser.EmbeddedBrowserIsVisible?restartApplication
screenCaptureshow_initial
clickvaadin=runcomvaadintestscomponentsembeddedbrowserEmbeddedBrowserIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[0]/domChild[0]/domChild[0]
screenCaptureshow_hello
clickvaadin=runcomvaadintestscomponentsembeddedbrowserEmbeddedBrowserIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[1]/domChild[0]/domChild[0]
screenCaptureshow_lorem
clickvaadin=runcomvaadintestscomponentsembeddedbrowserEmbeddedBrowserIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[2]/domChild[0]/domChild[0]
screenCaptureshow_alternative_text
clickvaadin=runcomvaadintestscomponentsembeddedbrowserEmbeddedBrowserIsVisible::/VVerticalLayout[0]/VVerticalLayout[0]/VHorizontalLayout[0]/VButton[1]/domChild[0]/domChild[0]
screenCaptureshow_lorem2
- - diff --git a/uitest/src/com/vaadin/tests/components/embeddedbrowser/EmbeddedBrowserIsVisible.java b/uitest/src/com/vaadin/tests/components/embeddedbrowser/EmbeddedBrowserIsVisible.java deleted file mode 100644 index 2eaf712676..0000000000 --- a/uitest/src/com/vaadin/tests/components/embeddedbrowser/EmbeddedBrowserIsVisible.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.vaadin.tests.components.embeddedbrowser; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.io.UnsupportedEncodingException; - -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.EmbeddedBrowser; -import com.vaadin.ui.HorizontalLayout; - -public class EmbeddedBrowserIsVisible extends TestBase { - - @Override - protected void setup() { - - HorizontalLayout buttonLayout = new HorizontalLayout(); - addComponent(buttonLayout); - - Button page1 = new Button("Hello World"); - buttonLayout.addComponent(page1); - - Button page2 = new Button("Lorem ipsum"); - buttonLayout.addComponent(page2); - - Button page3 = new Button("null"); - buttonLayout.addComponent(page3); - - final EmbeddedBrowser browser = new EmbeddedBrowser(); - browser.setDebugId("browser"); - browser.setWidth("600px"); - browser.setHeight("300px"); - browser.setAlternateText("Browser alternative text"); - final TextSource textSource = new TextSource("initial"); - final StreamResource textResource = new StreamResource(textSource, - "initial.txt"); - textResource.setMIMEType("text/plain"); - browser.setSource(textResource); - addComponent(browser); - - page1.addListener(new Button.ClickListener() { - - @Override - public void buttonClick(ClickEvent event) { - TextSource helloSource = new TextSource("Hello World"); - StreamResource helloResource = new StreamResource(helloSource, - "helloworld.txt"); - helloResource.setMIMEType("text/plain"); - browser.setSource(helloResource); - } - }); - - page2.addListener(new Button.ClickListener() { - - @Override - public void buttonClick(ClickEvent event) { - TextSource helloSource = new TextSource("Lorem Ipsum"); - StreamResource helloResource = new StreamResource(helloSource, - "loremipsum.txt"); - helloResource.setMIMEType("text/plain"); - browser.setSource(helloResource); - } - }); - - page3.addListener(new Button.ClickListener() { - - @Override - public void buttonClick(ClickEvent event) { - browser.setSource(null); - } - }); - } - - @Override - protected String getDescription() { - return "Embedded browser should be visible for all browsers"; - } - - @Override - protected Integer getTicketNumber() { - return null; - } - - public class TextSource implements StreamResource.StreamSource { - private String text; - - public TextSource(String text) { - this.text = text; - } - - @Override - public InputStream getStream() { - - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 200; ++i) { - sb.append(text); - sb.append("\n"); - } - - ByteArrayInputStream istream; - try { - istream = new ByteArrayInputStream(sb.toString().getBytes( - "UTF-8")); - } catch (UnsupportedEncodingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - return null; - } - return istream; // new DownloadStream (istream,null,null); - - } - } - -} diff --git a/uitest/src/com/vaadin/tests/components/image/ImageClicks.java b/uitest/src/com/vaadin/tests/components/image/ImageClicks.java index e2d983b7ce..e50b8c3a4f 100644 --- a/uitest/src/com/vaadin/tests/components/image/ImageClicks.java +++ b/uitest/src/com/vaadin/tests/components/image/ImageClicks.java @@ -7,6 +7,7 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; +import java.util.Random; import javax.imageio.ImageIO; @@ -19,6 +20,8 @@ import com.vaadin.ui.Label; public class ImageClicks extends TestBase { + private final Random rng = new Random(0); + private int clickCounter = 0; @Override @@ -32,7 +35,7 @@ public class ImageClicks extends TestBase { final StreamResource imageResource = new StreamResource(imageSource, "testimage.png"); image.setSource(imageResource); - image.addListener(new ClickListener() { + image.addClickListener(new ClickListener() { @Override public void click(ClickEvent event) { @@ -107,7 +110,7 @@ public class ImageClicks extends TestBase { } // Cell - if (Math.random() < 0.5f) { + if (rng.nextFloat() < 0.5f) { drawable.setColor(Color.white); } else { drawable.setColor(Color.black);