This repository was archived by the owner on Apr 24, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdevelopment_node_Namespace.html
More file actions
150 lines (116 loc) · 3.65 KB
/
development_node_Namespace.html
File metadata and controls
150 lines (116 loc) · 3.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Mobile Widgets</title>
<link rel="stylesheet" href="style/style.css" />
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
<script type="text/javascript" src="js/StructureElts.js"></script>
<script type="text/javascript" src="js/Structure.js"></script>
<script type="text/javascript" src="js/DocElements.js"></script>
</head>
<body>
<script type="text/javascript">
<!--
idCurrentPage = "development_node_Namespace";
beginPage();
//-->
</script>
<h1 class="title">Namespace node</h1>
<script type="text/javascript">
<!--
addIndex();
//-->
</script>
<script type="text/javascript">addTitle("Interface", 1);</script>
<textarea wrap="off" readonly="readonly" rows="5" cols="80">
Namespace {
MFNode children NULL
MFString name []
MFString exception []
}
</textarea>
<br/>
<script type="text/javascript">addTitle("Description", 1);</script>
<p>
Special node to sandbox VRML scenes and Javascript code for widgets.
</p>
<p>Features:</p>
<ul>
<li>Limits access to some Javascript classes or methods (eg deleting other
RecordStores, exit MeMo).</li>
<li>Isolates RMS access (each namespace uses it own RecordStore) to prevent
collisions for caching and persistence.</li>
<li>Prevents runtime errors of the protected nodes to impact the current scene.</li>
<li>Multiple namespaces can be used at the same time or imbricated.</li>
</ul>
<br/>
<script type="text/javascript">addTitle("Fields", 1);</script>
<p>
<b>MFNode children NULL</b>:<br/>
Children nodes to protect in the namespace.
</p>
<p>
<b>MFString name []</b>:<br/>
Name of the namespace (must be unique for each namespace).
</p>
<p>
<b>MFString exception []</b>:<br/>
If an exception during runtime occurs in the children nodes, an exception
message will be emitted by this field.
</p>
<br/>
<script type="text/javascript">addTitle("Example", 1);</script>
<textarea wrap="off" readonly="readonly" rows="15" cols="80">
#VRML V2.0 utf8
# the scene that is inlined and that uses this scene as a softkey/alert provider
DEF NAMESPACE Namespace {
children [
DEF INLINE Inline { url "" }
]
}
DEF SCRIPT Script {
eventIn MFString onException
field SFNode inline USE INLINE
field SFNode namespace USE NAMESPACE
url "javascript:
function quitApp() {
if (namespace.name[0] == '') {
inline.url[0] = 'jar://quit.m4m';
}
}
function loadWidget (widgetId) {
if (namespace.name[0] == '') { // only client namespace can load another client scene !
namespace.name[0] = widgetId; // set namespace for inline
}
}
function onException () {
Browser.print ('Manager: Exception in scene: '+inline.url[0]+': '+onException[0]);
if (String.endsWith (inline.url[0], 'main.m4m') == false) {
namespace.name[0] = '';
loadWidget ('main', false);
}
}
function quitWidget (widgetId) {
namespace.name[0] = '';
loadWidget ('main', false);
}
"
}
ROUTE NAMESPACE.exception TO SCRIPT.onException
</textarea>
<br/>
<script type="text/javascript">
<!--
addBackPageNavigator('widgets_development_nodes_ref', '');
//-->
</script>
<script type="text/javascript">
<!--
endPage();
//-->
</script>
</body>
</html>