From: Leif Åstrand Date: Fri, 14 Sep 2012 11:53:33 +0000 (+0300) Subject: Mini tutorial code for #9498 X-Git-Tag: 7.0.0.beta2~85 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6c36222b3307d70d3b5f9ed12ffde04cc0437774;p=vaadin-framework.git Mini tutorial code for #9498 --- diff --git a/uitest/src/com/vaadin/tests/minitutorials/v7b1/CapsLockWarningWithRpc.java b/uitest/src/com/vaadin/tests/minitutorials/v7b1/CapsLockWarningWithRpc.java new file mode 100644 index 0000000000..422a200f62 --- /dev/null +++ b/uitest/src/com/vaadin/tests/minitutorials/v7b1/CapsLockWarningWithRpc.java @@ -0,0 +1,38 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.tests.minitutorials.v7b1; + +import com.vaadin.server.AbstractExtension; +import com.vaadin.tests.widgetset.client.minitutorials.v7b1.CapsLockWarningRpc; +import com.vaadin.ui.Notification; +import com.vaadin.ui.PasswordField; + +public class CapsLockWarningWithRpc extends AbstractExtension { + public CapsLockWarningWithRpc() { + registerRpc(new CapsLockWarningRpc() { + @Override + public void isCapsLockEnabled(boolean isCapsLockEnabled) { + Notification.show("Caps Lock was " + + (isCapsLockEnabled ? "enabled" : "disabled")); + } + }); + } + + public void extend(PasswordField field) { + super.extend(field); + } +} diff --git a/uitest/src/com/vaadin/tests/minitutorials/v7b1/ReducingRoundTrips.java b/uitest/src/com/vaadin/tests/minitutorials/v7b1/ReducingRoundTrips.java new file mode 100644 index 0000000000..4ab3bc1526 --- /dev/null +++ b/uitest/src/com/vaadin/tests/minitutorials/v7b1/ReducingRoundTrips.java @@ -0,0 +1,48 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.tests.minitutorials.v7b1; + +import com.vaadin.annotations.Widgetset; +import com.vaadin.server.WrappedRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.tests.widgetset.TestingWidgetSet; +import com.vaadin.ui.PasswordField; + +@Widgetset(TestingWidgetSet.NAME) +public class ReducingRoundTrips extends AbstractTestUI { + @Override + protected void setup(WrappedRequest request) { + PasswordField passwordField = new PasswordField("Enter password"); + passwordField.setImmediate(true); + CapsLockWarningWithRpc capsLockWarningWithRpc = new CapsLockWarningWithRpc(); + + capsLockWarningWithRpc.extend(passwordField); + + addComponent(passwordField); + } + + @Override + protected String getTestDescription() { + return "Mini tutorial code for https://vaadin.com/wiki/-/wiki/Main/Reducing%20server%20round%20trips%20for%20components"; + } + + @Override + protected Integer getTicketNumber() { + return null; + } + +} diff --git a/uitest/src/com/vaadin/tests/widgetset/client/minitutorials/v7b1/CapsLockWarningRpc.java b/uitest/src/com/vaadin/tests/widgetset/client/minitutorials/v7b1/CapsLockWarningRpc.java new file mode 100644 index 0000000000..3db8d712c4 --- /dev/null +++ b/uitest/src/com/vaadin/tests/widgetset/client/minitutorials/v7b1/CapsLockWarningRpc.java @@ -0,0 +1,25 @@ +/* + * Copyright 2011 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.vaadin.tests.widgetset.client.minitutorials.v7b1; + +import com.vaadin.shared.annotations.Delayed; +import com.vaadin.shared.communication.ServerRpc; + +public interface CapsLockWarningRpc extends ServerRpc { + @Delayed(lastonly = true) + public void isCapsLockEnabled(boolean isCapsLockEnabled); +} diff --git a/uitest/src/com/vaadin/tests/widgetset/client/minitutorials/v7b1/CapsLockWarningWithRpcConnector.java b/uitest/src/com/vaadin/tests/widgetset/client/minitutorials/v7b1/CapsLockWarningWithRpcConnector.java new file mode 100644 index 0000000000..fdd14d40d5 --- /dev/null +++ b/uitest/src/com/vaadin/tests/widgetset/client/minitutorials/v7b1/CapsLockWarningWithRpcConnector.java @@ -0,0 +1,47 @@ +package com.vaadin.tests.widgetset.client.minitutorials.v7b1; + +import com.google.gwt.event.dom.client.KeyPressEvent; +import com.google.gwt.event.dom.client.KeyPressHandler; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.Widget; +import com.vaadin.client.ComponentConnector; +import com.vaadin.client.ServerConnector; +import com.vaadin.client.communication.RpcProxy; +import com.vaadin.client.extensions.AbstractExtensionConnector; +import com.vaadin.client.ui.VOverlay; +import com.vaadin.shared.ui.Connect; +import com.vaadin.tests.minitutorials.v7b1.CapsLockWarningWithRpc; + +@Connect(CapsLockWarningWithRpc.class) +public class CapsLockWarningWithRpcConnector extends AbstractExtensionConnector { + + private CapsLockWarningRpc rpc = RpcProxy.create(CapsLockWarningRpc.class, + this); + + @Override + protected void extend(ServerConnector target) { + final Widget passwordWidget = ((ComponentConnector) target).getWidget(); + + final VOverlay warning = new VOverlay(); + warning.add(new HTML("Caps Lock is enabled!")); + + passwordWidget.addDomHandler(new KeyPressHandler() { + @Override + public void onKeyPress(KeyPressEvent event) { + if (isEnabled() && isCapsLockOn(event)) { + warning.showRelativeTo(passwordWidget); + rpc.isCapsLockEnabled(true); // Added to send message to the + // server + } else { + warning.hide(); + rpc.isCapsLockEnabled(false); // Added to send message to + // the server + } + } + }, KeyPressEvent.getType()); + } + + private boolean isCapsLockOn(KeyPressEvent e) { + return e.isShiftKeyDown() ^ Character.isUpperCase(e.getCharCode()); + } +} \ No newline at end of file