You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2016/04/22 22:50:54 UTC
wicket git commit: WICKET-6152 Allow to add more than one
WebSocketBehavior in the component tree
Repository: wicket
Updated Branches:
refs/heads/master bc99c7e09 -> b9a1ae901
WICKET-6152 Allow to add more than one WebSocketBehavior in the component tree
Contribute the WebSocketBehavior's JavaScript only once per non-Ajax request
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b9a1ae90
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b9a1ae90
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b9a1ae90
Branch: refs/heads/master
Commit: b9a1ae901b8add3285d29a29d4a18ac2c23c8f86
Parents: bc99c7e
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Apr 22 22:48:49 2016 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Apr 22 22:48:49 2016 +0200
----------------------------------------------------------------------
.../protocol/ws/api/WebSocketBehavior.java | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b9a1ae90/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketBehavior.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketBehavior.java
index 30a65e0..ca5189e 100644
--- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketBehavior.java
+++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketBehavior.java
@@ -17,7 +17,10 @@
package org.apache.wicket.protocol.ws.api;
import org.apache.wicket.Component;
+import org.apache.wicket.MetaDataKey;
+import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
import org.apache.wicket.event.IEvent;
+import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.protocol.ws.api.event.WebSocketAbortedPayload;
import org.apache.wicket.protocol.ws.api.event.WebSocketBinaryPayload;
import org.apache.wicket.protocol.ws.api.event.WebSocketClosedPayload;
@@ -33,6 +36,7 @@ import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
import org.apache.wicket.protocol.ws.api.message.ErrorMessage;
import org.apache.wicket.protocol.ws.api.message.IWebSocketPushMessage;
import org.apache.wicket.protocol.ws.api.message.TextMessage;
+import org.apache.wicket.request.cycle.RequestCycle;
/**
* A behavior that provides optional callbacks for the WebSocket
@@ -42,8 +46,22 @@ import org.apache.wicket.protocol.ws.api.message.TextMessage;
*/
public abstract class WebSocketBehavior extends BaseWebSocketBehavior
{
- public WebSocketBehavior()
+ private final static MetaDataKey<Object> IS_JAVA_SCRIPT_CONTRIBUTED = new MetaDataKey<Object>()
+ {};
+
+ @Override
+ public void renderHead(Component component, IHeaderResponse response)
{
+ RequestCycle cycle = component.getRequestCycle();
+ if (cycle.find(IPartialPageRequestHandler.class) == null)
+ {
+ Object contributed = cycle.getMetaData(IS_JAVA_SCRIPT_CONTRIBUTED);
+ if (contributed == null)
+ {
+ cycle.setMetaData(IS_JAVA_SCRIPT_CONTRIBUTED, new Object());
+ super.renderHead(component, response);
+ }
+ }
}
@Override