sproutcore 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>