diff options
author | Leif Åstrand <leif@vaadin.com> | 2012-06-10 15:10:10 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2012-06-11 19:56:12 +0300 |
commit | 24e3409e6ff117ff954f36a9c9378690c76634f8 (patch) | |
tree | 951ce0be5f7e68fb262732e748a21b6bbf645552 /tests | |
parent | 67a92f8d9823f8771ba4d47684b5f7735fb3c13b (diff) | |
download | vaadin-framework-24e3409e6ff117ff954f36a9c9378690c76634f8.tar.gz vaadin-framework-24e3409e6ff117ff954f36a9c9378690c76634f8.zip |
Initial support for javascript components (#8888)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java | 73 | ||||
-rw-r--r-- | tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java | 95 |
2 files changed, 168 insertions, 0 deletions
diff --git a/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java new file mode 100644 index 0000000000..2240fc246b --- /dev/null +++ b/tests/testbench/com/vaadin/tests/components/javascriptcomponent/BasicJavascriptComponent.java @@ -0,0 +1,73 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ +package com.vaadin.tests.components.javascriptcomponent; + +import java.util.Arrays; +import java.util.List; + +import com.vaadin.annotations.LoadScripts; +import com.vaadin.terminal.WrappedRequest; +import com.vaadin.terminal.gwt.client.ComponentState; +import com.vaadin.terminal.gwt.client.communication.ServerRpc; +import com.vaadin.tests.components.AbstractTestRoot; +import com.vaadin.ui.AbstractJavascriptComponent; +import com.vaadin.ui.Root; + +@LoadScripts({ "/statictestfiles/jsconnector.js" }) +public class BasicJavascriptComponent extends AbstractTestRoot { + + public interface ExampleClickRpc extends ServerRpc { + public void onClick(String message); + } + + public static class SpecialState extends ComponentState { + private List<String> data; + + public List<String> getData() { + return data; + } + + public void setData(List<String> data) { + this.data = data; + } + } + + public static class ExampleWidget extends AbstractJavascriptComponent { + public ExampleWidget() { + registerRpc(new ExampleClickRpc() { + public void onClick(String message) { + Root.getCurrentRoot().showNotification( + "Got a click: " + message); + } + }); + getState().setData(Arrays.asList("a", "b", "c")); + } + + @Override + public SpecialState getState() { + return (SpecialState) super.getState(); + } + } + + @Override + protected void setup(WrappedRequest request) { + ExampleWidget c = new ExampleWidget(); + c.setCaption("test caption"); + c.setDescription("Some description"); + addComponent(c); + } + + @Override + protected String getTestDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + protected Integer getTicketNumber() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java b/tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java new file mode 100644 index 0000000000..591689b4b0 --- /dev/null +++ b/tests/testbench/com/vaadin/tests/features/SimpleJavascriptExtensionTest.java @@ -0,0 +1,95 @@ +/* +@VaadinApache2LicenseForJavaFiles@ + */ + +package com.vaadin.tests.features; + +import com.vaadin.annotations.LoadScripts; +import com.vaadin.terminal.AbstractJavascriptExtension; +import com.vaadin.terminal.WrappedRequest; +import com.vaadin.terminal.gwt.client.communication.ClientRpc; +import com.vaadin.terminal.gwt.client.communication.ServerRpc; +import com.vaadin.terminal.gwt.client.communication.SharedState; +import com.vaadin.tests.components.AbstractTestRoot; +import com.vaadin.ui.Button; +import com.vaadin.ui.Button.ClickEvent; +import com.vaadin.ui.Root; + +@LoadScripts({ "/statictestfiles/jsextension.js" }) +public class SimpleJavascriptExtensionTest extends AbstractTestRoot { + + public static class SimpleJavascriptExtensionState extends SharedState { + private String prefix; + + public void setPrefix(String prefix) { + this.prefix = prefix; + } + + public String getPrefix() { + return prefix; + } + } + + public static interface SimpleJavascriptExtensionClientRpc extends + ClientRpc { + public void greet(String message); + } + + public static interface SimpleJavascriptExtensionServerRpc extends + ServerRpc { + public void greet(String message); + } + + public static class SimpleJavascriptExtension extends + AbstractJavascriptExtension { + + public SimpleJavascriptExtension() { + registerRpc(new SimpleJavascriptExtensionServerRpc() { + public void greet(String message) { + Root.getCurrentRoot().showNotification( + getState().getPrefix() + message); + } + }); + } + + @Override + public SimpleJavascriptExtensionState getState() { + return (SimpleJavascriptExtensionState) super.getState(); + } + + public void setPrefix(String prefix) { + getState().setPrefix(prefix); + requestRepaint(); + } + + public void greet(String message) { + getRpcProxy(SimpleJavascriptExtensionClientRpc.class) + .greet(message); + } + } + + @Override + protected void setup(WrappedRequest request) { + final SimpleJavascriptExtension simpleJavascriptExtension = new SimpleJavascriptExtension(); + simpleJavascriptExtension.setPrefix("Prefix: "); + addExtension(simpleJavascriptExtension); + addComponent(new Button("Send greeting", new Button.ClickListener() { + public void buttonClick(ClickEvent event) { + simpleJavascriptExtension.greet("Greeted by button"); + } + })); + } + + @Override + protected String getTestDescription() { + // TODO Auto-generated method stub + return null; + } + + @Override + protected Integer getTicketNumber() { + // TODO Auto-generated method stub + return null; + } + +} |