diff options
author | Denis Anisimov <denis@vaadin.com> | 2014-08-31 16:46:28 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2014-10-07 12:44:18 +0000 |
commit | 3eede8ca8ac1db34400288f534a1088d301a7cee (patch) | |
tree | e94289c1e84f8e47fb716ed4198d895bdf8c1595 /server/src/com | |
parent | 0cd9540483262d0cded56fcc8c286c64a0b75631 (diff) | |
download | vaadin-framework-3eede8ca8ac1db34400288f534a1088d301a7cee.tar.gz vaadin-framework-3eede8ca8ac1db34400288f534a1088d301a7cee.zip |
Provide API to change resource/url for BrowserWindowOpener (#12733).
Change-Id: I48d3bc36ea5283225524a75bcbc941534e4a419a
Diffstat (limited to 'server/src/com')
-rw-r--r-- | server/src/com/vaadin/server/BrowserWindowOpener.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/server/src/com/vaadin/server/BrowserWindowOpener.java b/server/src/com/vaadin/server/BrowserWindowOpener.java index 44679fbfbb..8cc1faa728 100644 --- a/server/src/com/vaadin/server/BrowserWindowOpener.java +++ b/server/src/com/vaadin/server/BrowserWindowOpener.java @@ -126,6 +126,55 @@ public class BrowserWindowOpener extends AbstractExtension { } /** + * Sets the provided URL {@code url} for this instance. The {@code url} will + * be opened in a new browser window/tab when the extended component is + * clicked. + * + * @param url + * URL to open + */ + public void setUrl(String url) { + setResource(new ExternalResource(url)); + } + + /** + * Sets the provided {@code resource} for this instance. The + * {@code resource} will be opened in a new browser window/tab when the + * extended component is clicked. + * + * @param resource + * resource to open + */ + public void setResource(Resource resource) { + setResource(BrowserWindowOpenerState.locationResource, resource); + } + + /** + * Returns the resource for this instance. + * + * @return resource to open browser window + */ + public Resource getResource() { + return getResource(BrowserWindowOpenerState.locationResource); + } + + /** + * Returns the URL for this BrowserWindowOpener instance. Returns + * {@code null} if this instance is not URL resource based (a non URL based + * resource has been set for it). + * + * @return URL to open in the new browser window/tab when the extended + * component is clicked + */ + public String getUrl() { + Resource resource = getResource(); + if (resource instanceof ExternalResource) { + return ((ExternalResource) resource).getURL(); + } + return null; + } + + /** * Sets the target window name that will be used. If a window has already * been opened with the same name, the contents of that window will be * replaced instead of opening a new window. If the name is |