diff options
Diffstat (limited to 'src/com/vaadin/demo/featurebrowser/EmbeddedBrowserExample.java')
-rw-r--r-- | src/com/vaadin/demo/featurebrowser/EmbeddedBrowserExample.java | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/src/com/vaadin/demo/featurebrowser/EmbeddedBrowserExample.java b/src/com/vaadin/demo/featurebrowser/EmbeddedBrowserExample.java new file mode 100644 index 0000000000..64800199c7 --- /dev/null +++ b/src/com/vaadin/demo/featurebrowser/EmbeddedBrowserExample.java @@ -0,0 +1,90 @@ +/* +@ITMillApache2LicenseForJavaFiles@ + */ + +package com.vaadin.demo.featurebrowser; + +import java.net.MalformedURLException; +import java.net.URL; + +import com.vaadin.data.Property.ValueChangeEvent; +import com.vaadin.terminal.ExternalResource; +import com.vaadin.ui.Embedded; +import com.vaadin.ui.Select; +import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.Window.Notification; + +/** + * Demonstrates the use of Embedded and "suggesting" Select by creating a simple + * web-browser. Note: does not check for recursion. + * + * @author IT Mill Ltd. + * @see com.vaadin.ui.Window + */ +public class EmbeddedBrowserExample extends VerticalLayout implements + Select.ValueChangeListener { + + // Default URL to open. + private static final String DEFAULT_URL = "http://www.itmill.com/index_itmill_toolkit.htm"; + + // The embedded page + Embedded emb = new Embedded(); + + public EmbeddedBrowserExample() { + this(new String[] { DEFAULT_URL, + "http://www.itmill.com/index_developers.htm", + "http://toolkit.itmill.com/demo/doc/api/", + "http://www.itmill.com/manual/index.html" }); + } + + public EmbeddedBrowserExample(String[] urls) { + setSizeFull(); + + // create the address combobox + final Select select = new Select(); + // allow input + select.setNewItemsAllowed(true); + // no empty selection + select.setNullSelectionAllowed(false); + // no 'go' -button clicking necessary + select.setImmediate(true); + // add some pre-configured URLs + for (int i = 0; i < urls.length; i++) { + select.addItem(urls[i]); + } + // add to layout + addComponent(select); + // add listener and select initial URL + select.addListener(this); + select.setValue(urls[0]); + + select.setWidth("100%"); + + // configure the embedded and add to layout + emb.setType(Embedded.TYPE_BROWSER); + emb.setSizeFull(); + addComponent(emb); + // make the embedded as large as possible + setExpandRatio(emb, 1); + + } + + public void valueChange(ValueChangeEvent event) { + final String url = (String) event.getProperty().getValue(); + if (url != null) { + try { + // the selected url has changed, let's go there + @SuppressWarnings("unused") + URL u = new URL(url); + emb.setSource(new ExternalResource(url)); + + } catch (MalformedURLException e) { + getWindow().showNotification("Invalid address", + e.getMessage() + " (example: http://www.itmill.com)", + Notification.TYPE_WARNING_MESSAGE); + } + + } + + } +} |