aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/itmill/toolkit/demo/featurebrowser/EmbeddedBrowserExample.java
blob: 7bebaf38c38a7ab605d314aeb7b91967fa66150d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.itmill.toolkit.demo.featurebrowser;

import com.itmill.toolkit.data.Property.ValueChangeEvent;
import com.itmill.toolkit.terminal.ExternalResource;
import com.itmill.toolkit.ui.Embedded;
import com.itmill.toolkit.ui.ExpandLayout;
import com.itmill.toolkit.ui.Select;

/**
 * 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.itmill.toolkit.ui.Window
 */
public class EmbeddedBrowserExample extends ExpandLayout 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
        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]);

        // configure the embedded and add to layout
        emb.setType(Embedded.TYPE_BROWSER);
        addComponent(emb);
        // make the embedded as large as possible
        expand(emb);

    }

    public void valueChange(ValueChangeEvent event) {
        String url = (String) event.getProperty().getValue();
        if (url != null) {
            // the selected url has changed, let's go there
            emb.setSource(new ExternalResource(url));
        }

    }

}