sproutcore 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (208) hide show
  1. data/History.txt +233 -0
  2. data/Manifest.txt +67 -34
  3. data/bin/sc-build +12 -1
  4. data/bin/sc-gen +1 -1
  5. data/bin/sproutcore +14 -0
  6. data/clients/sc_docs/controllers/docs.js +38 -8
  7. data/clients/sc_docs/english.lproj/body.css +80 -127
  8. data/clients/sc_docs/english.lproj/body.rhtml +43 -23
  9. data/clients/sc_docs/english.lproj/no_docs.rhtml +2 -1
  10. data/clients/sc_docs/english.lproj/tabs.rhtml +16 -0
  11. data/clients/sc_docs/main.js +14 -9
  12. data/clients/sc_docs/models/doc.js +1 -1
  13. data/clients/sc_docs/tests/controllers/docs.rhtml +1 -2
  14. data/clients/sc_docs/tests/models/doc.rhtml +1 -2
  15. data/clients/sc_docs/tests/views/doc_frame.rhtml +1 -2
  16. data/clients/sc_docs/tests/views/doc_label_view.rhtml +1 -2
  17. data/clients/sc_docs/views/doc_frame.js +1 -1
  18. data/clients/sc_test_runner/controllers/runner.js +31 -8
  19. data/clients/sc_test_runner/english.lproj/body.css +62 -122
  20. data/clients/sc_test_runner/english.lproj/body.rhtml +62 -26
  21. data/clients/sc_test_runner/main.js +1 -6
  22. data/clients/sc_test_runner/models/test.js +14 -1
  23. data/clients/sc_test_runner/views/runner_frame.js +4 -2
  24. data/clients/view_builder/builders/builder.js +339 -0
  25. data/clients/view_builder/builders/button.js +81 -0
  26. data/clients/view_builder/controllers/document.js +21 -0
  27. data/clients/view_builder/core.js +19 -0
  28. data/clients/view_builder/english.lproj/body.css +77 -0
  29. data/clients/view_builder/english.lproj/body.rhtml +41 -0
  30. data/clients/{sc_docs → view_builder}/english.lproj/controls.css +0 -0
  31. data/clients/view_builder/english.lproj/strings.js +14 -0
  32. data/clients/view_builder/main.js +38 -0
  33. data/clients/view_builder/tests/controllers/document.rhtml +20 -0
  34. data/clients/view_builder/tests/views/builder.rhtml +20 -0
  35. data/clients/view_builder/views/builder.js +23 -0
  36. data/frameworks/prototype/prototype.js +1 -1
  37. data/frameworks/sproutcore/Core.js +32 -7
  38. data/frameworks/sproutcore/README +1 -1
  39. data/frameworks/sproutcore/animation/animation.js +411 -0
  40. data/frameworks/sproutcore/controllers/array.js +17 -9
  41. data/frameworks/sproutcore/controllers/collection.js +9 -110
  42. data/frameworks/sproutcore/controllers/controller.js +1 -1
  43. data/frameworks/sproutcore/controllers/object.js +2 -1
  44. data/frameworks/sproutcore/drag/drag.js +267 -56
  45. data/frameworks/sproutcore/drag/drag_data_source.js +24 -16
  46. data/frameworks/sproutcore/drag/drag_source.js +53 -42
  47. data/frameworks/sproutcore/drag/drop_target.js +2 -2
  48. data/frameworks/sproutcore/english.lproj/buttons.css +337 -236
  49. data/frameworks/sproutcore/english.lproj/core.css +115 -0
  50. data/frameworks/sproutcore/english.lproj/icons.css +227 -0
  51. data/{clients/sc_docs → frameworks/sproutcore}/english.lproj/images/indicator.gif +0 -0
  52. data/frameworks/sproutcore/english.lproj/images/sc-theme-sprite.png +0 -0
  53. data/frameworks/sproutcore/english.lproj/images/sc-theme-ysprite.png +0 -0
  54. data/frameworks/sproutcore/english.lproj/images/shared-icons.png +0 -0
  55. data/frameworks/sproutcore/english.lproj/menu.css +1 -1
  56. data/frameworks/sproutcore/english.lproj/strings.js +1 -1
  57. data/frameworks/sproutcore/english.lproj/theme.css +405 -31
  58. data/frameworks/sproutcore/foundation/application.js +15 -11
  59. data/frameworks/sproutcore/foundation/benchmark.js +1 -1
  60. data/frameworks/sproutcore/foundation/binding.js +2 -2
  61. data/frameworks/sproutcore/foundation/date.js +1 -1
  62. data/frameworks/sproutcore/foundation/error.js +1 -1
  63. data/frameworks/sproutcore/foundation/input_manager.js +32 -21
  64. data/frameworks/sproutcore/foundation/mock.js +1 -1
  65. data/frameworks/sproutcore/foundation/node_descriptor.js +9 -6
  66. data/frameworks/sproutcore/foundation/object.js +249 -177
  67. data/frameworks/sproutcore/foundation/page.js +5 -2
  68. data/frameworks/sproutcore/foundation/path_module.js +11 -10
  69. data/frameworks/sproutcore/foundation/responder.js +5 -2
  70. data/frameworks/sproutcore/foundation/routes.js +17 -13
  71. data/frameworks/sproutcore/foundation/run_loop.js +249 -11
  72. data/frameworks/sproutcore/foundation/server.js +1 -1
  73. data/frameworks/sproutcore/foundation/set.js +3 -3
  74. data/frameworks/sproutcore/foundation/string.js +5 -3
  75. data/frameworks/sproutcore/foundation/timer.js +371 -0
  76. data/frameworks/sproutcore/foundation/undo_manager.js +1 -1
  77. data/frameworks/sproutcore/foundation/unittest.js +3 -3
  78. data/frameworks/sproutcore/foundation/utils.js +161 -2
  79. data/frameworks/sproutcore/globals/panels.js +1 -1
  80. data/frameworks/sproutcore/globals/popups.js +4 -3
  81. data/frameworks/sproutcore/globals/window.js +44 -4
  82. data/frameworks/sproutcore/lib/button_views.rb +328 -0
  83. data/frameworks/sproutcore/lib/collection_view.rb +80 -0
  84. data/frameworks/sproutcore/lib/core_views.rb +281 -0
  85. data/frameworks/sproutcore/lib/form_views.rb +253 -0
  86. data/frameworks/sproutcore/lib/index.rhtml +2 -0
  87. data/frameworks/sproutcore/lib/menu_views.rb +88 -0
  88. data/frameworks/sproutcore/{foundation → mixins}/array.js +60 -29
  89. data/frameworks/sproutcore/mixins/control.js +265 -0
  90. data/frameworks/sproutcore/mixins/delegate_support.js +66 -0
  91. data/frameworks/sproutcore/{foundation → mixins}/observable.js +176 -6
  92. data/frameworks/sproutcore/mixins/scrollable.js +245 -0
  93. data/frameworks/sproutcore/mixins/selection_support.js +148 -0
  94. data/frameworks/sproutcore/mixins/validatable.js +152 -0
  95. data/frameworks/sproutcore/models/collection.js +5 -5
  96. data/frameworks/sproutcore/models/record.js +1 -1
  97. data/frameworks/sproutcore/models/store.js +1 -1
  98. data/frameworks/sproutcore/panes/dialog.js +1 -1
  99. data/frameworks/sproutcore/panes/manager.js +1 -1
  100. data/frameworks/sproutcore/panes/menu.js +1 -1
  101. data/frameworks/sproutcore/panes/overlay.js +2 -2
  102. data/frameworks/sproutcore/panes/panel.js +1 -1
  103. data/frameworks/sproutcore/panes/picker.js +1 -1
  104. data/frameworks/sproutcore/tests/controllers/array.rhtml +44 -4
  105. data/frameworks/sproutcore/tests/foundation/timer/invalidate.rhtml +33 -0
  106. data/frameworks/sproutcore/tests/foundation/timer/invokeLater.rhtml +145 -0
  107. data/frameworks/sproutcore/tests/foundation/timer/isPaused.rhtml +70 -0
  108. data/frameworks/sproutcore/tests/foundation/timer/schedule.rhtml +145 -0
  109. data/frameworks/sproutcore/tests/views/{scroll.rhtml → checkbox.rhtml} +3 -3
  110. data/frameworks/sproutcore/tests/views/{collection.rhtml → collection/base.rhtml} +33 -32
  111. data/frameworks/sproutcore/tests/views/collection/incremental_rendering.rhtml +260 -0
  112. data/frameworks/sproutcore/tests/views/image_cell.rhtml +19 -0
  113. data/frameworks/sproutcore/tests/views/label_item.rhtml +2 -4
  114. data/frameworks/sproutcore/tests/views/list.rhtml +2 -3
  115. data/frameworks/sproutcore/tests/views/list_item.rhtml +20 -0
  116. data/frameworks/sproutcore/tests/views/slider.rhtml +20 -0
  117. data/frameworks/sproutcore/tests/views/text_cell.rhtml +19 -0
  118. data/frameworks/sproutcore/tests/views/view/clippingFrame.rhtml +395 -0
  119. data/frameworks/sproutcore/tests/views/view/frame.rhtml +353 -0
  120. data/frameworks/sproutcore/tests/views/view/innerFrame.rhtml +347 -0
  121. data/frameworks/sproutcore/tests/views/view/isVisibleInWindow.rhtml +148 -0
  122. data/frameworks/sproutcore/tests/views/view/scrollFrame.rhtml +468 -0
  123. data/frameworks/sproutcore/validators/credit_card.js +33 -13
  124. data/frameworks/sproutcore/validators/date.js +26 -6
  125. data/frameworks/sproutcore/validators/email.js +21 -3
  126. data/frameworks/sproutcore/validators/not_empty.js +11 -1
  127. data/frameworks/sproutcore/validators/number.js +18 -4
  128. data/frameworks/sproutcore/validators/password.js +12 -1
  129. data/frameworks/sproutcore/validators/validator.js +204 -194
  130. data/frameworks/sproutcore/views/{button.js → button/button.js} +96 -94
  131. data/frameworks/sproutcore/views/button/checkbox.js +29 -0
  132. data/frameworks/sproutcore/views/button/disclosure.js +42 -0
  133. data/frameworks/sproutcore/views/button/radio.js +29 -0
  134. data/frameworks/sproutcore/views/{collection.js → collection/collection.js} +1373 -1024
  135. data/frameworks/sproutcore/views/collection/grid.js +124 -46
  136. data/frameworks/sproutcore/views/collection/image_cell.js +17 -46
  137. data/frameworks/sproutcore/views/collection/list.js +45 -35
  138. data/frameworks/sproutcore/views/collection/source_list.js +386 -0
  139. data/frameworks/sproutcore/views/collection/table.js +118 -0
  140. data/frameworks/sproutcore/views/container.js +7 -2
  141. data/frameworks/sproutcore/views/error_explanation.js +23 -10
  142. data/frameworks/sproutcore/views/{checkbox_field.js → field/checkbox_field.js} +16 -6
  143. data/frameworks/sproutcore/views/field/field.js +219 -0
  144. data/frameworks/sproutcore/views/{radio_field.js → field/radio_field.js} +27 -12
  145. data/frameworks/sproutcore/views/{select_field.js → field/select_field.js} +116 -90
  146. data/frameworks/sproutcore/views/{text_field.js → field/text_field.js} +57 -8
  147. data/frameworks/sproutcore/views/{textarea_field.js → field/textarea_field.js} +13 -3
  148. data/frameworks/sproutcore/views/filter_button.js +2 -2
  149. data/frameworks/sproutcore/views/form.js +3 -3
  150. data/frameworks/sproutcore/views/image.js +128 -21
  151. data/frameworks/sproutcore/views/inline_text_editor.js +1 -1
  152. data/frameworks/sproutcore/views/label.js +149 -92
  153. data/frameworks/sproutcore/views/list_item.js +225 -0
  154. data/frameworks/sproutcore/views/menu_item.js +10 -4
  155. data/frameworks/sproutcore/views/pagination.js +11 -4
  156. data/frameworks/sproutcore/views/popup_button.js +25 -21
  157. data/frameworks/sproutcore/views/popup_menu.js +10 -4
  158. data/frameworks/sproutcore/views/progress.js +29 -16
  159. data/frameworks/sproutcore/views/radio_group.js +1 -1
  160. data/frameworks/sproutcore/views/scroll.js +60 -20
  161. data/frameworks/sproutcore/views/segmented.js +1 -1
  162. data/frameworks/sproutcore/views/slider.js +132 -0
  163. data/frameworks/sproutcore/views/source_list_group.js +130 -0
  164. data/frameworks/sproutcore/views/spinner.js +1 -1
  165. data/frameworks/sproutcore/views/split.js +292 -0
  166. data/frameworks/sproutcore/views/split_divider.js +109 -0
  167. data/frameworks/sproutcore/views/tab.js +1 -1
  168. data/frameworks/sproutcore/views/toolbar.js +1 -1
  169. data/frameworks/sproutcore/views/view.js +1272 -591
  170. data/generators/client/templates/english.lproj/body.css +1 -1
  171. data/generators/controller/controller_generator.rb +1 -1
  172. data/generators/controller/templates/test.rhtml +2 -1
  173. data/generators/model/templates/test.rhtml +1 -1
  174. data/generators/test/templates/test.rhtml +1 -1
  175. data/generators/view/templates/test.rhtml +1 -1
  176. data/jsdoc/templates/sproutcore/class.tmpl +241 -338
  177. data/jsdoc/templates/sproutcore/default.css +105 -155
  178. data/jsdoc/templates/sproutcore/index.tmpl +43 -8
  179. data/jsdoc/templates/sproutcore/publish.js +9 -4
  180. data/lib/sproutcore/build_tools/html_builder.rb +29 -13
  181. data/lib/sproutcore/build_tools/resource_builder.rb +1 -1
  182. data/lib/sproutcore/bundle.rb +86 -25
  183. data/lib/sproutcore/jsdoc.rb +2 -0
  184. data/lib/sproutcore/version.rb +1 -1
  185. data/lib/sproutcore/view_helpers.rb +36 -3
  186. data/tasks/deployment.rake +1 -1
  187. metadata +69 -36
  188. data/clients/sc_docs/english.lproj/icons/small/next.png +0 -0
  189. data/clients/sc_docs/english.lproj/icons/small/reset.png +0 -0
  190. data/clients/sc_docs/english.lproj/images/gradients.png +0 -0
  191. data/clients/sc_docs/english.lproj/images/toolbar.png +0 -0
  192. data/clients/sc_docs/english.lproj/warning.rhtml +0 -6
  193. data/clients/sc_test_runner/english.lproj/warning.rhtml +0 -6
  194. data/frameworks/sproutcore/english.lproj/buttons.png +0 -0
  195. data/frameworks/sproutcore/english.lproj/collections.css +0 -82
  196. data/frameworks/sproutcore/english.lproj/images/buttons-sprite.png +0 -0
  197. data/frameworks/sproutcore/views/collection/collection_item.js +0 -36
  198. data/frameworks/sproutcore/views/collection/text_cell.js +0 -128
  199. data/frameworks/sproutcore/views/field.js +0 -214
  200. data/frameworks/sproutcore/views/workspace.js +0 -170
  201. data/generators/client/templates/english.lproj/controls.css +0 -0
  202. data/generators/framework/templates/english.lproj/body.css +0 -0
  203. data/generators/framework/templates/english.lproj/body.rhtml +0 -3
  204. data/generators/framework/templates/english.lproj/controls.css +0 -0
  205. data/lib/sproutcore/view_helpers/button_views.rb +0 -302
  206. data/lib/sproutcore/view_helpers/core_views.rb +0 -292
  207. data/lib/sproutcore/view_helpers/form_views.rb +0 -258
  208. data/lib/sproutcore/view_helpers/menu_views.rb +0 -94
@@ -55,7 +55,7 @@
55
55
  height: 300px;
56
56
  padding: 60px;
57
57
  padding-right: 20px;
58
- background: url(/static/sproutcore/_src/english.lproj/images/sticky-note.png) no-repeat center center;
58
+ background: static_url('sticky-note') no-repeat center center;
59
59
  font: 1.3em "Comic Sans MS", "Comic Sans", Arial, Helvetica, Geneva, sans-serif;
60
60
  color: #5f4700;
61
61
  }
@@ -33,7 +33,7 @@ class ControllerGenerator < RubiGen::Base
33
33
  <<-EOS
34
34
  Creates a SproutCore controller objects
35
35
 
36
- USAGE: #{$0} #{spec.name} client_name/controller_name [ClassName]
36
+ USAGE: #{$0} #{spec.name} client_name controller_name [ClassName]
37
37
  EOS
38
38
  end
39
39
 
@@ -14,7 +14,8 @@ Test.context("<%= controller_class_name %>",{
14
14
 
15
15
  }) ;
16
16
 
17
- appMain = main; main = null ; // Cancel main() so app does not start
17
+ // Cancel main() so app does not start
18
+ if (window.main && (appMain = main)) main = null ;
18
19
 
19
20
  </script>
20
21
 
@@ -14,7 +14,7 @@ Test.context("<%= client_class_name %>",{
14
14
 
15
15
  }) ;
16
16
 
17
- appMain = main; main = null ; // Cancel main() so app does not start
17
+ if (window.main && (appMain = main)) main = null ;
18
18
 
19
19
  </script>
20
20
 
@@ -14,7 +14,7 @@ Test.context("<%= file_name.gsub('_', ' ').titleize %>",{
14
14
 
15
15
  }) ;
16
16
 
17
- appMain = main; main = null ; // Cancel main() so app does not start
17
+ if (window.main && (appMain = main)) main = null ;
18
18
 
19
19
  </script>
20
20
 
@@ -14,7 +14,7 @@ Test.context("<%= view_class_name %>",{
14
14
 
15
15
  }) ;
16
16
 
17
- appMain = main; main = null ; // Cancel main() so app does not start
17
+ if (window.main && (appMain = main)) main = null ;
18
18
 
19
19
  </script>
20
20
 
@@ -12,18 +12,76 @@ function byName(a, b) {
12
12
  function summarize(desc) {
13
13
  if (typeof desc != "undefined")
14
14
  return desc.match(/([\w\W]+?\.)[^a-z0-9]/i)? RegExp.$1 : desc;
15
- }
15
+ };
16
16
 
17
17
  thisClass = data[0];
18
18
  if (thisClass.methods) thisClass.methods.sort(byName);
19
19
  if (thisClass.properties) thisClass.properties.sort(byName);
20
20
  if (thisClass.events) thisClass.events.sort(byName);
21
21
 
22
- function htmlize(desc) {
22
+ function htmlize(desc, stripSummary) {
23
+ if (stripSummary === undefined) stripSummary = true ;
24
+ if (stripSummary) {
25
+ var summary = summarize(desc) ;
26
+ desc = (summary && summary.length > 0) ? desc.slice(summary.length, desc.length) : desc ;
27
+ }
28
+
23
29
  return superTextile(desc) ;
24
30
  } ;
25
31
 
32
+ rowClass = 'even';
33
+ function resetRowClass() { rowClass = 'even'; };
26
34
 
35
+ function nextRowClass() {
36
+ var ret = rowClass ;
37
+ rowClass = (rowClass == 'even') ? 'odd' : 'even' ;
38
+ return ret ;
39
+ } ;
40
+
41
+ function hasUsefulParams(params) {
42
+ if (!params || !params.length) return false ;
43
+ var idx = params.length;
44
+ while(--idx >= 0) {
45
+ var param = params[idx] ;
46
+ if (isUsefulParam(param)) return true ;
47
+ }
48
+ return false ;
49
+ };
50
+
51
+ function isUsefulParam(param) {
52
+ if (!param) return false ;
53
+ if (param.type && param.type.length > 0) return true ;
54
+ if (param.desc && param.desc.length > 0) return true ;
55
+ return false ;
56
+ } ;
57
+
58
+ var seen = [] ;
59
+ function convertToString(data) {
60
+ try {
61
+ if (seen.indexOf(data) >= 0) return 'SEEN' ;
62
+ seen.push(data) ;
63
+ var ret = data ;
64
+ if (data === null) return 'null' ;
65
+ if (data === undefined) return 'undefined';
66
+ if (data instanceof Array) {
67
+ ret = [] ;
68
+ for(var idx=0;idx<data.length;idx++) {
69
+ ret.push(convertToString(data[idx])) ;
70
+ }
71
+ ret = '[' + ret.join(', ') + ']';
72
+ } else if (data instanceof Object) {
73
+ ret = [] ;
74
+ for(var key in data) {
75
+ if (!data.hasOwnProperty(key)) continue ;
76
+ ret.push(key + ': ' + convertToString(data[key])) ;
77
+ }
78
+ ret = '{ ' + ret.join(",\n") + ' }' ;
79
+ } else if (data.toString) ret = data.toString() ;
80
+ }
81
+
82
+ catch(e) { ret = 'EXCEPTION'; }
83
+ return ret ;
84
+ };
27
85
 
28
86
  !}
29
87
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
@@ -35,401 +93,246 @@ function htmlize(desc) {
35
93
  <link rel=stylesheet href="default.css" type="text/css" media=screen>
36
94
  </head>
37
95
 
38
- <body class="sc-theme">
96
+ <body class="sc-theme sc-doc">
39
97
 
40
- <table style="width: 100%" class="nav">
41
- <tr>
42
- <td class="left" valign="top">
43
- <div class="summary">SUMMARY:&nbsp;<a href="#field_summary">FIELD</a>&nbsp;|&nbsp;<a href="#constructor_summary">CONSTRUCTOR</a>&nbsp;|&nbsp;<a href="#method_summary">METHOD</a></div>
44
- </td>
45
- <td class="right" valign="top">
46
- <div class="summary">DETAIL:&nbsp;<a href="#field_detail">FIELD</a>&nbsp;|&nbsp;<a href="#constructor_detail">CONSTRUCTOR</a>&nbsp;|&nbsp;<a href="#method_detail">METHOD</a></div>
98
+ <h1>
99
+ {+thisClass.alias+} <if test="thisClass.isStatic">Module</if><if test="!thisClass.isStatic">Class</if> Reference
100
+ </h1>
101
+
102
+ <table class="summary">
103
+ {! resetRowClass(); !}
104
+
105
+ <if test="thisClass.deprecated">
106
+ <tr class="{+ nextRowClass() +}">
107
+ <td class="label">Deprecated:</td>
108
+ <td class="value">
109
+ {+htmlize(thisClass.deprecated.desc)+}
47
110
  </td>
48
111
  </tr>
49
- </table>
50
-
51
- <div class="intro">
52
- <h1><if test="thisClass.isStatic">Static </if>Class {+thisClass.alias+}</h1>
112
+ </if>
53
113
 
54
114
  <if test="thisClass.augments && thisClass.augments.length">
55
- <p class="extends">
56
- Extends: <for each="augment" in="thisClass.augments"> <a href="{+augment+}.html">{+augment+}</a></for>.
57
- </p>
115
+ <tr class="{+ nextRowClass() +}">
116
+ <td class="label">Extends:</td>
117
+ <td class="value">
118
+ <for each="augment" in="thisClass.augments"><a href="{+augment+}.html">{+augment+}</a><if test="augment != thisClass.augments[thisClass.augments.length-1]"> : </if></for>
119
+ </td>
120
+ </tr>
58
121
  </if>
59
122
 
60
123
  <if test="thisClass.source">
61
- <p class="source">
62
- Defined in <a href="{+thisClass.source+}">{+thisClass.filename+}</a>
63
- </p>
64
- </if>
65
-
66
- <if test="thisClass.deprecated">
67
- <p class="deprecated-class">
68
- Deprecated {+htmlize(thisClass.deprecated.desc)+}
69
- </p>
124
+ <tr class="{+ nextRowClass() +}">
125
+ <td class="label">Defined in:</td>
126
+ <td class="value">{+thisClass.filename+}</td>
127
+ </tr>
70
128
  </if>
71
129
 
72
- <if test="thisClass.classDesc">
73
- <div class="description">
74
- {+htmlize(thisClass.classDesc)+}
75
- </div>
130
+ <if test="thisClass.since">
131
+ <tr class="{+ nextRowClass() +}">
132
+ <td class="label">Availability:</td>
133
+ <td class="value">
134
+ since {+thisClass.since+}
135
+ </td>
136
+ </tr>
76
137
  </if>
77
138
 
78
139
  <if test="thisClass.doc">
79
- <ul class="meta">
80
-
81
- <for each="author" in="thisClass.doc.getTag('author')">
82
- <li class="author"><strong>Author:</strong> {+author+}</li>
83
- </for>
84
-
85
140
  <for each="version" in="thisClass.doc.getTag('version')">
86
- <li class="version"><strong>Version:</strong> {+version+}</li>
141
+ <tr class="{+ nextRowClass() +}">
142
+ <td class="label">Version:</td>
143
+ <td class="value">{+version+}</td>
144
+ </tr>
87
145
  </for>
88
-
89
- </ul>
90
146
  </if>
91
147
 
148
+ </table>
149
+
150
+ <if test="thisClass.classDesc">
151
+ <div class="description">
152
+ {+htmlize(thisClass.classDesc, false)+}
92
153
  </div>
154
+ </if>
93
155
 
94
156
  <!-- =========== FIELD SUMMARY =========== -->
95
157
  <if test="thisClass.properties.length">
96
158
  <div class="field-summary summary">
97
- <a name="field_summary"> </a>
98
159
 
99
160
  <h2>Field Summary</h2>
100
- <table width="100%">
101
- <for each="property" in="thisClass.properties">
102
- <tr>
103
- <td class="meta">
104
- <code class="type"><if test="property.isPrivate">&lt;private&gt;&nbsp;</if><if test="property.isStatic||!property.memberof">&lt;static&gt;&nbsp;</if>{+(property.type||"object")+}</code>
105
- </td>
106
- <td class="detail">
107
- <code class="name"><a href="#{+property.name+}">{+property.name+}</a></code>
108
- <div class="description">{+summarize(property.desc)+}</div>
109
- </td>
110
- </tr>
111
- </for>
112
- </table>
113
- </div>
114
- </if>
115
- <!-- =========== END FIELD SUMMARY =========== -->
116
-
117
- <if test="!thisClass.isStatic">
118
- <!-- ======== CONSTRUCTOR SUMMARY ======== -->
119
- <div class="constructor-summary summary">
120
- <a name="constructor_summary"> </a>
121
- <h2>Constructor Summary</h2>
122
- <table>
123
- <for each="cn" in="data">
124
- <tr>
125
- <td class="detail">
126
- <code class="name"><a class="method" href="#{+cn.name+}">{+cn.alias+}</a>({+cn.signature()+})</code>
127
- <div class="description">{+summarize(cn.desc)+}</div>
128
- </td>
129
- </tr>
161
+ <ul>
162
+ <for each="property" in="thisClass.properties">
163
+ <li>
164
+ <a href="#{+property.name+}"><code class="type"><if test="property.isStatic||!property.memberof">+</if><if test="!(property.isStatic||!property.memberof)">-</if>&nbsp;(<if test="property.isPrivate">private&nbsp;</if>{+(property.type||"object")+}) {+property.name+}</code></a>
165
+ <div class="description">{+summarize(property.desc)+}</div>
166
+ </li>
130
167
  </for>
131
- </table>
168
+ </ul>
132
169
 
133
- <!-- ======== END CONSTRUCTOR SUMMARY ======== -->
170
+ </div>
134
171
  </if>
172
+ <!-- =========== END FIELD SUMMARY =========== -->
135
173
 
136
174
  <!-- ========== METHOD SUMMARY =========== -->
137
- <if test="thisClass.methods.length">
138
- <div class="method-summary summary">
139
- <a name="method_summary"> </a>
175
+ <if test="thisClass.methods.length || thisClass.inherited">
140
176
  <h2>Method Summary</h2>
141
- <table>
142
- <for each="method" in="thisClass.methods">
143
- <tr>
144
- <td class="meta">
145
- <code class="type"><if test="method.isPrivate">&lt;private&gt;&nbsp;</if><if test="method.isStatic||!method.memberof">&lt;static&gt; </if><if test="method.returns.length"><for each="ret" in="method.returns">&nbsp;{+ret.type+}</for></if></code>
146
- </td>
147
- <td class="detail">
148
- <code class="name">
149
- <a href="#{+method.name+}" class="method">{+method.name+}</a>({+method.signature()+})
150
- </code>
151
- <div class="description">{+summarize(method.desc)+}</div>
152
- </td>
153
- </tr>
154
- </for>
155
- </table>
156
- </div>
157
177
  </if>
158
178
 
159
- <!-- ========== EVENT SUMMARY =========== -->
160
- <if test="thisClass.events">
161
- <if test="thisClass.events.length">
162
- <div class="event-summary summary">
163
- <a name="event_summary"> </a>
164
- <h2>Event Summary</h2>
165
- <table>
166
- <for each="event" in="thisClass.events">
167
- <tr>
168
- <td class="meta">
169
- <code class="type"><if test="event.isPrivate">&lt;private&gt;&nbsp;</if><if test="event.returns.length"><for each="ret" in="event.returns">&nbsp;{+ret.type+}</for></if><if test="event.returns.length==0">void</if></code>
170
- </td>
171
- <td class="detail">
172
- <code class="name"><a class="method" href="#{+event.name+}">{+event.name+}</a></b>({+event.signature()+})</code>
173
- <div class="description">{+summarize(event.desc)+}</div>
174
- </td>
175
- </tr>
176
- </for>
177
- </table>
178
- </div>
179
- </if>
179
+ <if test="thisClass.methods.length">
180
+ <div class="method-summary summary">
181
+ <ul>
182
+ <for each="method" in="thisClass.methods">
183
+ <li>
184
+ <a href="#{+method.name+}"><code class="type"><if test="method.isStatic||!method.memberof">+</if><if test="!(method.isStatic||!method.memberof)">-</if>&nbsp;<if test="method.isPrivate">private&nbsp;</if><if test="method.returns.length"><for each="ret" in="method.returns">&nbsp;{+ret.type+}</for></if> {+method.name+}({+method.signature()+})</code></a>
185
+ <div class="description">{+summarize(method.desc)+}</div>
186
+ </li>
187
+ </for>
188
+ </ul>
189
+
190
+ </div>
180
191
  </if>
181
192
 
182
193
  <!-- ========== INHERITED METHODS SUMMARY =========== -->
183
194
  <if test="thisClass.inherited">
184
- <ul class="inherited">
185
- {! inheritedCnt =0; !}
186
- <for each="className" in="keys(thisClass.inherited)">
187
- {! inheritedCnt++; !}
188
- <li class="class-name">
189
- <h3>Methods inherited from class <a href="{+className+}.html">{+className+}</a>
190
- <span id='show-link-{+inheritedCnt+}'>
191
- (<a href="javascript:;" onclick="$$('li.inherited-{+inheritedCnt+}').invoke('show'); $('hide-link-{+inheritedCnt+}').show(); $('show-link-{+inheritedCnt+}').hide();">show</a>)
192
- </span>
193
- <span id="hide-link-{+inheritedCnt+}" style="display:none;">
194
- (<a href="javascript:;" onclick="$$('li.inherited-{+inheritedCnt+}').invoke('hide'); $('hide-link-{+inheritedCnt+}').hide(); $('show-link-{+inheritedCnt+}').show();">hide</a>)</span></h3>
195
- </li>
196
- <for each="method" in="thisClass.inherited[className]">
197
- <li class="detail inherited-{+inheritedCnt+}" style="display: none;">
198
- <code class="name"><a class="method" href="{+(method.memberof || method.name)+}.html#{+method.name+}">{+method.name+}</a>({+method.signature()+})</code>
199
- </li>
200
- </for>
201
- </for>
202
- </ul>
195
+ {! inheritedCnt = 0; !}
196
+ <div class="method-summary summary">
197
+ <for each="className" in="keys(thisClass.inherited)">
198
+
199
+ {! inheritedCnt++; !}
200
+ <h4>Inherited from <a href="{+className+}.html">{+className+}</a>
201
+ <span id='show-link-{+inheritedCnt+}'>(<a href="javascript:;" onclick="$$('ul.inherited-{+inheritedCnt+}').invoke('show'); $('hide-link-{+inheritedCnt+}').show(); $('show-link-{+inheritedCnt+}').hide();">show</a>)</span>
202
+ <span id="hide-link-{+inheritedCnt+}" style="display:none;">(<a href="javascript:;" onclick="$$('ul.inherited-{+inheritedCnt+}').invoke('hide'); $('hide-link-{+inheritedCnt+}').hide(); $('show-link-{+inheritedCnt+}').show();">hide</a>)</span></h4>
203
+ <ul class="inherited-{+inheritedCnt+}" style="display:none;">
204
+ <for each="method" in="thisClass.inherited[className]">
205
+ <li>
206
+ <a href="{+(method.memberof || method.name)+}.html#{+method.name+}"><code class="type"><if test="method.isStatic||!method.memberof">+</if><if test="!(method.isStatic||!method.memberof)">-</if>&nbsp;<if test="method.isPrivate">private&nbsp;</if><if test="method.returns.length"><for each="ret" in="method.returns">&nbsp;{+ret.type+}</for></if> {+method.name+}({+method.signature()+})</code></a>
207
+ <div class="description">{+summarize(method.desc)+}</div>
208
+ </li>
209
+ </for>
210
+ </ul>
211
+
212
+ </for>
213
+ </div>
203
214
  </if>
204
215
 
205
216
  <!-- ========== END INHERITED METHODS SUMMARY =========== -->
206
217
 
207
218
  <!-- ============ FIELD DETAIL START ========= -->
208
219
  <if test="thisClass.properties.length">
209
- <div class="field-detail detail">
210
- <a name="field_detail"> </a>
211
- <h2>Field Details</h2>
212
-
213
- <for each="property" in="thisClass.properties">
214
- <!-- One single method detail entry -->
215
- <div class="property">
216
- <a name="{+property.name+}"></a>
217
- <h3>{+property.name+}</h3>
218
-
219
- <code class="signature"><span class="type"><if test="property.isPrivate">&lt;private&gt;&nbsp;</if><if test="property.isStatic||!property.memberof">&lt;static&gt;&nbsp;</if>{+(property.type||"object")+}</span> <span class="name">{+property.name+}</span></code>
220
-
221
- <if test="property.deprecated">
222
- <p class="deprecated">Deprecated {+property.deprecated.desc+}</p>
223
- </if>
224
- <div class="description">
225
- {+htmlize(property.desc)+}
226
- <for each="since" in="property.doc.getTag('since')">
227
- <div class="since"><strong>Since:</strong> {+since+}</div>
228
- </for>
229
- </div>
230
- </div>
231
- </for>
220
+ <div class="field-detail detail">
221
+ <a name="field_detail"> </a>
222
+ <h2>Field Details</h2>
223
+
224
+ <for each="property" in="thisClass.properties">
225
+
226
+ <!-- One single method detail entry -->
227
+ <div class="field">
228
+ <a name="{+property.name+}"></a>
229
+ <h3>{+property.name+}</h3>
230
+ <p class="summary">{+summarize(property.desc)+}</p>
231
+
232
+ <if test="property.deprecated">
233
+ <p class="deprecated">Deprecated {+property.deprecated.desc+}</p>
232
234
  </if>
233
- <!-- ============ FIELD DETAIL END ========== -->
234
235
 
235
- <if test="!thisClass.isStatic">
236
- <!-- ========= CONSTRUCTOR DETAIL START ======== -->
237
- <div class="constructor-detail detail">
238
- <a name="constructor_detail"> </a>
239
- <h2>Constructor Details</h2>
240
-
241
- <a name="{+thisClass.name+}"> </a>
242
- <h3>{+thisClass.alias+}</h3>
243
- <for each="cn" in="data">
244
- <code class="signature"><span class="method">{+cn.alias+}</span>({+cn.signature()+})</code>
245
- <if test="cn.deprecated">
246
- <p class="deprecated">Deprecated {+cn.deprecated.desc+}</p>
247
- </if>
248
- <div class="description">
249
- {+htmlize(cn.desc)+}
250
- </div>
251
- </for>
252
-
253
- <!-- PARAMETERS START -->
254
- <if test="cn.params.length">
255
- <div class="parameters">
256
- <h4>Parameters:</h4>
257
- <ul>
258
- <for each="param" in="cn.params">
259
- <li>
260
- <code><if test="param.type"><span class="type">{+param.type+}</span>&nbsp;</if><span class="name">{+param.name+}</span></code>
261
- <if test="param.desc">
262
- - <span class="description">{+param.desc+}</span>
263
- </if>
264
- </li>
265
- </for>
266
- </ul>
267
- </div>
268
- </if>
269
- <!-- PARAMETERS END -->
270
-
271
- </div>
236
+ <p class="signature"><if test="property.isStatic||!property.memberof">+</if><if test="!(property.isStatic||!property.memberof)">-</if>&nbsp;<span class="type"><if test="property.isPrivate">private&nbsp;</if>{+(property.type||"object")+}</span> <span class="name">{+property.name+}</span></p>
237
+
238
+ <h5>Discussion</h5>
239
+ <div class="description">
240
+ {+htmlize(property.desc)+}
241
+ </div>
242
+
243
+ <if test="property.doc.getTag('since') && property.doc.getTag('since').length > 0">
244
+ <h5>Availability</h5>
245
+ <for each="since" in="property.doc.getTag('since')">
246
+ <div class="since">Since {+since+}</div>
247
+ </for>
272
248
  </if>
273
249
 
250
+ </div>
251
+ </for>
252
+
253
+ </div>
254
+ </if>
255
+ <!-- ============ FIELD DETAIL END ========== -->
256
+
274
257
  <!-- ============ METHOD DETAIL START ======= -->
258
+
275
259
  <if test="thisClass.methods.length">
276
260
  <div class="method-detail detail">
277
261
  <a name="method_detail"> </a>
278
262
  <h2>Method Details</h2>
279
263
 
280
264
  <for each="method" in="thisClass.methods">
281
- <div class="single-method">
282
- <a name="{+method.name+}"> </a>
283
- <h3>{+method.name+}</h3>
284
-
285
- <code class="signature"><span class="type"><if test="method.isPrivate">&lt;private&gt;&nbsp;</if><if test="method.isStatic||!method.memberof">&lt;static&gt;&nbsp;</if><if test="method.returns.length"><for each="ret" in="method.returns">{+ret.type+}&nbsp;</for></if></span><span class="method">{+method.name+}</span><span class="params">({+method.signature()+})</span></code>
286
-
287
- <if test="method.deprecated">
288
- <p class="deprecated">
289
- Deprecated {+method.deprecated.desc+}
290
- </p>
291
- </if>
292
-
293
- <div class="description">
294
- {+htmlize(method.desc)+}
295
- <for each="since" in="method.doc.getTag('since')">
296
- <div class="since"><strong>Since:</strong> {+since+}</div>
297
- </for>
298
- </div>
299
-
300
- <!-- METHOD PARAMETERS START -->
301
- <if test="method.params.length">
302
- <div class="parameters">
303
- <h4>Parameters:</h4>
304
- <ul>
305
- <for each="param" in="method.params">
306
- <li>
307
- <code><if test="param.type"><span class="type">{+param.type+}</span>&nbsp;</if><span class="name">{+param.name+} </span></code>
308
- <if test="param.desc">
309
- - <span class="description">{+param.desc+}</span>
310
- </if>
311
- </li>
312
- </for>
313
- </ul>
314
- </div>
315
- </if>
316
- <!-- METHOD PARAMETERS END -->
317
-
318
- <!-- ADDITIONAL ATTRIBUTES START -->
319
- <if test="method.returns.length">
320
- <div class="returns">
321
- <h4>Returns:</h4>
322
- <ul>
323
- <for each="ret" in="method.returns">
324
- <li>
325
- <code><if test="ret.type"><span class="type">{+ret.type+}</span>&nbsp;</if></code>
326
- <span class="description">{+ret.desc+}</span>
327
- </li>
328
- </for>
329
- </ul>
330
- </div>
331
- </if>
332
-
333
- <if test="method.exceptions.length">
334
- <div class="exceptions">
335
- <h4>Throws:</h4>
336
- <for each="ex" in="method.exceptions">
337
- <li>
338
- <code class="type">{+ex.type+}</code>
339
- <span class="description">{+ex.desc+}</span>
340
- </li>
341
- </for>
342
- </div>
343
- </if>
344
- <!-- ADDITIONAL ATTRIBUTES END -->
345
- </div>
346
- </for>
347
-
348
- </div>
349
- </if>
350
- <!-- ============ METHOD DETAIL END ========== -->
351
265
 
352
- <!-- ============ EVENT DETAIL START ======= -->
353
- <if test="thisClass.events">
354
- <if test="thisClass.events.length">
355
- <div class="method-detail event-detail detail">
356
- <a name="method_detail"> </a>
357
- <h2>Event Detail:</h2>
358
-
359
- <for each="event" in="thisClass.events">
360
- <div class="single-method">
361
- <a name="{+event.name+}"> </a>
362
- <h3>{+event.name+}</h3>
363
-
364
- <code class="signature"><span class="type"><if test="event.isPrivate">&lt;private&gt;&nbsp;</if><if test="event.isStatic||!event.memberof">&lt;static&gt;&nbsp;</if><if test="event.returns.length"><for each="ret" in="event.returns">{+ret.type+}&nbsp;</for></if></span><span class="name">{+event.name+}</span><span class="params">({+event.signature()+})</span></code>
365
-
366
- <if test="event.deprecated">
367
- <p class="deprecated">
368
- Deprecated {+event.deprecated.desc+}
369
- </p>
266
+ <!-- One single method detail entry -->
267
+ <div class="method">
268
+ <a name="{+method.name+}"></a>
269
+ <h3>{+method.name+}()</h3>
270
+ <p class="summary">{+summarize(method.desc)+}</p>
271
+
272
+ <if test="method.deprecated">
273
+ <p class="deprecated">Deprecated {+method.deprecated.desc+}</p>
274
+ </if>
275
+
276
+ <p class="signature"><if test="method.isStatic||!method.memberof">+</if><if test="!(method.isStatic||!method.memberof)">-</if>&nbsp;<span class="type"><if test="method.isPrivate">private&nbsp;</if><if test="method.returns.length"><for each="ret" in="method.returns">{+ret.type+}&nbsp;</for></if></span> <span class="name">{+method.name+}</span><span class="params">({+method.signature()+})</span></p>
277
+
278
+ <!-- METHOD PARAMETERS START -->
279
+ <if test="hasUsefulParams(method.params)">
280
+ <h5>Parameters</h5>
281
+ <for each="param" in="method.params">
282
+ <if test="isUsefulParam(param)">
283
+ <dt><if test="param.type"><span class="type">{+param.type+}</span>&nbsp;</if><span class="name">{+param.name+} </span></dt>
284
+ <if test="param.desc">
285
+ <dd>{+param.desc+}</dd>
370
286
  </if>
371
-
372
- <div class="description">
373
- {+htmlize(event.desc)+}
374
- <for each="since" in="event.doc.getTag('since')">
375
- <div class="since"><strong>Since:</strong> {+since+}</div>
376
- </for>
377
- </div>
378
-
379
- <!-- EVENT PARAMETERS START -->
380
- <if test="event.params.length">
381
- <div class="parameters">
382
- <h4>Parameters:</h4>
383
- <ul>
384
- <for each="param" in="event.params">
385
- <li>
386
- <code><if test="param.type"><span class="type">{+param.type+}</span>&nbsp;</if><span class="name">{+param.name+}</span></code>
387
- <if test="param.desc">
388
- - <span class="description">{+param.desc+}</span>
389
- </if>
390
- </li>
391
- </for>
392
- </ul>
393
- </div>
394
- </if>
395
- <!-- EVENT PARAMETERS END -->
396
-
397
- <!-- ADDITIONAL ATTRIBUTES START -->
398
- <if test="event.returns.length">
399
- <div class="returns">
400
- <h4>Returns:</h4>
401
- <ul>
402
- <for each="ret" in="event.returns">
403
- <li>
404
- <code><if test="ret.type"><span class="type">{+ret.type+}</span>&nbsp;</if></code>
405
- <span class="description">{+ret.desc+}</span>
406
- </li>
407
- </for>
408
- </ul>
409
- </div>
410
- </if>
411
-
412
- <if test="event.exceptions.length">
413
- <div class="exceptions">
414
- <h4>Throws:</h4>
415
- <ul>
416
- <for each="ex" in="event.exceptions">
417
- <li>
418
- <code class="type">{+ex.type+}</code>
419
- <span class="description">{+ex.desc+}</span>
420
- </li>
421
- </for>
422
- </ul>
423
- </div>
424
- </if>
425
- <!-- ADDITIONAL ATTRIBUTES END -->
426
- </div>
287
+ </if>
288
+ </for>
289
+ </if>
290
+ <!-- METHOD PARAMETERS END -->
291
+
292
+ <!-- ADDITIONAL ATTRIBUTES START -->
293
+ <if test="method.returns.length">
294
+ <h5>Return Value</h5>
295
+ <for each="ret" in="method.returns">
296
+ <p class="return-value">
297
+ <if test="ret.type"><span class="type">{+ret.type+}</span>&nbsp;-&nbsp;</if>
298
+ <span class="description">{+ret.desc+}</span>
299
+ </p>
300
+ </for>
301
+ </if>
302
+
303
+ <if test="method.exceptions.length">
304
+ <h5>Throws Exceptions</h5>
305
+ <for each="ex" in="method.exceptions">
306
+ <p class="exception">
307
+ <if test="ex.type"><span class="type">{+ex.type+}</span>&nbsp;-&nbsp;</if>
308
+ <span class="description">{+ex.desc+}</span>
309
+ </p>
310
+ </for>
311
+ </if>
312
+ <!-- ADDITIONAL ATTRIBUTES END -->
313
+
314
+ <h5>Discussion</h5>
315
+ <div class="description">
316
+ {+htmlize(method.desc)+}
317
+ </div>
318
+
319
+ <if test="method.doc.getTag('since') && method.doc.getTag('since').length > 0">
320
+ <h5>Availability</h5>
321
+ <for each="since" in="method.doc.getTag('since')">
322
+ <div class="since">Since {+since+}</div>
323
+ </for>
324
+ </if>
325
+
326
+ </div>
327
+
328
+
329
+
427
330
  </for>
331
+
428
332
  </div>
429
333
  </if>
430
- </if>
334
+ <!-- ============ METHOD DETAIL END ========== -->
431
335
 
432
- <!-- ============ EVENT DETAIL END ========== -->
433
336
  <div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoctoolkit.org/" target="_parent">JsDoc Toolkit</a> {+JsDoc.VERSION+} on {+new Date()+}</div>
434
337
 
435
338
  <script src="prototype.js"></script>