01: /*
02: ItsNat Java Web Application Framework
03: Copyright (C) 2007 Innowhere Software Services S.L., Spanish Company
04: Author: Jose Maria Arranz Santamaria
05:
06: This program is free software: you can redistribute it and/or modify
07: it under the terms of the GNU Affero General Public License as published by
08: the Free Software Foundation, either version 3 of the License, or
09: (at your option) any later version. See the GNU Affero General Public
10: License for more details. See the copy of the GNU Affero General Public License
11: included in this program. If not, see <http://www.gnu.org/licenses/>.
12: */
13:
14: package org.itsnat.impl.core.js.listener;
15:
16: import org.itsnat.core.ItsNatException;
17: import org.itsnat.impl.core.client.ClientDocumentInvitedRemoteCtrlImpl;
18: import org.itsnat.impl.core.client.ClientDocumentInvitedRemoteCtrlTimerImpl;
19: import org.itsnat.impl.core.listener.EventListenerWrapperImpl;
20: import org.itsnat.impl.core.listener.RemoteControlTimerEventListenerWrapperImpl;
21:
22: /**
23: *
24: * @author jmarranz
25: */
26: public class RemoteControlTimerEventListenerJSRenderImpl extends
27: RemoteControlEventListenerJSRenderImpl {
28: public static final RemoteControlTimerEventListenerJSRenderImpl SINGLETON = new RemoteControlTimerEventListenerJSRenderImpl();
29:
30: /**
31: * Creates a new instance of RemoteControlTimerEventListenerJSRenderImpl
32: */
33: public RemoteControlTimerEventListenerJSRenderImpl() {
34: }
35:
36: private static void addRemoteControlTimerEventListenerCode(
37: RemoteControlTimerEventListenerWrapperImpl listener) {
38: ClientDocumentInvitedRemoteCtrlTimerImpl clientDoc = listener
39: .getClientDocumentInvitedRemoteCtrlTimer();
40: String observerId = clientDoc.getId();
41: StringBuffer code = new StringBuffer();
42:
43: int syncMode = clientDoc.getSyncMode();
44: int interval = clientDoc.getRefreshInterval();
45:
46: code.append("\n");
47: code.append("function ItsNatRemCtrlRefresh() \n");
48: code.append("{ \n");
49: code.append(" if (document.getItsNatDoc) \n"); // Si no está definido es que se está destruyendo el documento (FireFox)
50: code
51: .append(" document.getItsNatDoc().sendRemCtrlTimerRefresh(window.ItsNatRemCtrlRefresh,"
52: + interval
53: + ",\""
54: + observerId
55: + "\","
56: + syncMode + "); \n");
57: code.append("} \n");
58: code
59: .append("itsNatDoc.remCtrlTimerHandle = setTimeout(ItsNatRemCtrlRefresh,"
60: + interval + "); \n");
61:
62: clientDoc.addCodeToSend(code.toString());
63: }
64:
65: protected void addEventListenerCodeInherit(
66: EventListenerWrapperImpl itsNatListener) {
67: addRemoteControlTimerEventListenerCode((RemoteControlTimerEventListenerWrapperImpl) itsNatListener);
68: }
69:
70: protected void removeEventListenerCodeInherit(
71: EventListenerWrapperImpl itsNatListener) {
72: throw new ItsNatException("INTERNAL ERROR");
73: }
74: }
|