sproutcore 1.5.0-java → 1.6.0.beta.2-java
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.
- data/.mailmap +32 -0
- data/CHANGELOG +15 -0
- data/Rakefile +18 -0
- data/VERSION.yml +2 -2
- data/bin/sc-build +0 -5
- data/bin/sc-build-number +0 -5
- data/bin/sc-docs +0 -5
- data/bin/sc-gen +0 -5
- data/bin/sc-init +0 -5
- data/bin/sc-manifest +0 -5
- data/bin/sc-server +0 -5
- data/bin/sproutcore +0 -5
- data/lib/frameworks/sproutcore/Buildfile +3 -3
- data/lib/frameworks/sproutcore/CHANGELOG.md +21 -0
- data/lib/frameworks/sproutcore/README.md +77 -7
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +1 -17
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +49 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +23 -21
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/checkbox_support.js +36 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +126 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/template.js +13 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +16 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +1 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +29 -23
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +8 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +20 -23
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controls/button.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/checkbox_support.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/template_helpers/text_field_support.js +115 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +55 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +49 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +19 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +38 -41
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/base.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +7 -82
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +12 -5
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/array_observers.js +82 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +17 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +33 -30
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +12 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +20 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +10 -10
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +24 -23
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +51 -54
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +29 -29
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/master_detail.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio_group.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +31 -31
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +35 -29
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +61 -50
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +9 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +6 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/coders/object.js +12 -12
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/designs.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_files.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +7 -9
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +37 -37
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/object.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/page.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/ext/view.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +7 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +49 -42
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/high_light.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/device_motion/device.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/english.lproj/default_styles.css +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/english.lproj/strings.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/mixins/edit_mode.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/mixins/emptiness.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/render_delegates/form.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/render_delegates/form_row.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_checkbox_field.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_field.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_label.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_radio_field.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_row.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/tests/views/form_text_field.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/views/form.js +13 -14
- data/lib/frameworks/sproutcore/frameworks/{forms → experimental/frameworks/forms}/views/form_row.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/models/record.js +4 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/system/image_queue.js +8 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +28 -34
- data/lib/frameworks/sproutcore/frameworks/{foundation → routing}/system/routes.js +31 -47
- data/lib/frameworks/sproutcore/frameworks/{foundation → routing}/tests/system/routes.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +15 -21
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array_observers.js +23 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/contains.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/intersects.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +66 -133
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +68 -139
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +23 -29
- data/lib/frameworks/sproutcore/lib/index.rhtml +5 -2
- data/lib/sproutcore.rb +2 -9
- data/lib/sproutcore/builders/minify.rb +5 -5
- data/lib/sproutcore/helpers/minifier.rb +6 -10
- data/lib/sproutcore/models/target.rb +2 -2
- data/lib/sproutcore/rack/proxy.rb +8 -7
- data/lib/sproutcore/tools.rb +16 -5
- data/spec/lib/builders/html_spec.rb +5 -5
- data/sproutcore.gemspec +11 -5
- data/vendor/chance/lib/chance.rb +4 -2
- data/{lib/sproutcore/vendor → vendor}/jsdoc/README.txt +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Chain.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Dumper.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Hash.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Link.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Namespace.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Opt.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Reflection.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/String.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/frame/Testrun.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/FOODOC.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC/DomReader.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC/XMLDoc.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/handlers/XMLDOC/XMLParse.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/DocComment.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/DocTag.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/JsDoc.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/JsPlate.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Lang.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Parser.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/PluginManager.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Symbol.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/SymbolSet.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/TextStream.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Token.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/TokenReader.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/TokenStream.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Util.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/lib/JSDOC/Walker.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/main.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/commentSrcJson.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/frameworkPrototype.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/functionCall.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/publishSrcHilite.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/sproutcoreTags.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/symbolLink.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/tagParamConfig.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/plugins/tagSynonyms.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/run.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/t/TestDoc.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/t/runner.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/addon.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/anon_inner.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/augments.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/augments2.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/borrows.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/borrows2.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/config.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/constructs.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/encoding.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/encoding_other.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/functions_anon.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/functions_nested.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/global.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/globals.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/ignore.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/inner.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/jsdoc_test.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/lend.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/memberof.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/memberof_constructor.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/name.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/namespace_nested.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/nocode.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/oblit_anon.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/overview.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/param_inline.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/params_optional.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype_nested.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype_oblit.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/prototype_oblit_constructor.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/public.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/shared.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/shared2.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/shortcuts.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/static_this.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/synonyms.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/tosource.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/app/test/variable_redefine.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/changes.txt +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/conf/sample.conf +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/java/build.xml +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/java/build_1.4.xml +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/java/classes/js.jar +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/java/src/JsDebugRun.java +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/java/src/JsRun.java +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/jsdebug.jar +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/jsrun.jar +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/t/TestDoc.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/t/runner.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/addon.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/anon_inner.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/augments.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/augments2.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/borrows.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/borrows2.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/config.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/constructs.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/encoding.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/encoding_other.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/functions_anon.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/functions_nested.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/global.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/globals.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/ignore.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/inner.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/jsdoc_test.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/lend.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/memberof.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/memberof_constructor.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/name.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/namespace_nested.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/nocode.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/oblit_anon.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/overview.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/param_inline.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/params_optional.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype_nested.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype_oblit.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/prototype_oblit_constructor.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/public.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/shared.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/shared2.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/shortcuts.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/static_this.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/synonyms.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/tosource.js +0 -0
- data/{lib/sproutcore/vendor → vendor}/jsdoc/test/variable_redefine.js +0 -0
- data/vendor/sproutcore/{src/SCCompiler/lib/yuicompressor-2.4.4.jar → lib/yuicompressor-2.4.6.jar} +0 -0
- metadata +169 -178
- data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +0 -148
- data/lib/sproutcore/vendor/github_gem_lint.rb +0 -22
- data/vendor/sproutcore/SCCompiler.jar +0 -0
- data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/lib/yuicompressor-2.4.2.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/build.xml +0 -74
- data/vendor/sproutcore/src/SCCompiler/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/lib/htmlcompressor-0.9.3.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/lib/yuicompressor-2.4.2.jar +0 -0
- data/vendor/sproutcore/src/SCCompiler/manifest.mf +0 -3
- data/vendor/sproutcore/src/SCCompiler/nbproject/build-impl.xml +0 -894
- data/vendor/sproutcore/src/SCCompiler/nbproject/genfiles.properties +0 -8
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/config.properties +0 -0
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.properties +0 -10
- data/vendor/sproutcore/src/SCCompiler/nbproject/private/private.xml +0 -4
- data/vendor/sproutcore/src/SCCompiler/nbproject/project.properties +0 -90
- data/vendor/sproutcore/src/SCCompiler/nbproject/project.xml +0 -15
- data/vendor/sproutcore/src/SCCompiler/src/com/sproutcore/Main.java +0 -348
|
@@ -18,15 +18,15 @@ sc_require('controllers/controller') ;
|
|
|
18
18
|
object controller one time for all of your views and then swap out the
|
|
19
19
|
content as needed.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
## Working with Arrays
|
|
22
22
|
|
|
23
23
|
An ObjectController can accept both arrays and single objects as content.
|
|
24
24
|
If the content is an array, the ObjectController will do its best to treat
|
|
25
25
|
the array as a single object. For example, if you set the content of an
|
|
26
26
|
ObjectController to an array of Contact records and then call:
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
contactController.get('name');
|
|
29
|
+
|
|
30
30
|
The controller will check the name property of each Contact in the array.
|
|
31
31
|
If the value of the property for each Contact is the same, that value will
|
|
32
32
|
be returned. If the any values are different, then an array will be
|
|
@@ -41,7 +41,7 @@ sc_require('controllers/controller') ;
|
|
|
41
41
|
setup your bindings so that they will convert the content to a single object
|
|
42
42
|
like so:
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
contentBinding: SC.Binding.single('MyApp.listController.selection') ;
|
|
45
45
|
|
|
46
46
|
This will ensure that your content property is always a single object
|
|
47
47
|
instead of an array.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
sc_require('views/template');
|
|
2
|
+
|
|
3
|
+
SC.Button = SC.TemplateView.extend({
|
|
4
|
+
classNames: ['sc-button'],
|
|
5
|
+
|
|
6
|
+
// Setting isActive to true will trigger the classBinding and add
|
|
7
|
+
// 'is-active' to our layer's class names.
|
|
8
|
+
mouseDown: function() {
|
|
9
|
+
this.set('isActive', true);
|
|
10
|
+
this._isMouseDown = YES;
|
|
11
|
+
},
|
|
12
|
+
|
|
13
|
+
mouseExited: function() {
|
|
14
|
+
this.set('isActive', false);
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
mouseEntered: function() {
|
|
18
|
+
if (this._isMouseDown) {
|
|
19
|
+
this.set('isActive', true);
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
// Setting isActive to false will remove 'is-active' from our
|
|
24
|
+
// layer's class names.
|
|
25
|
+
mouseUp: function(event) {
|
|
26
|
+
if (this.get('isActive')) {
|
|
27
|
+
var action = this.get('action'),
|
|
28
|
+
target = this.get('target') || null,
|
|
29
|
+
rootResponder = this.getPath('pane.rootResponder');
|
|
30
|
+
|
|
31
|
+
if (action && rootResponder) {
|
|
32
|
+
rootResponder.sendAction(action, target, this, this.get('pane'), null, this);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
this.set('isActive', false);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
this._isMouseDown = NO;
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
touchStart: function(touch) {
|
|
42
|
+
this.mouseDown(touch);
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
touchEnd: function(touch) {
|
|
46
|
+
this.mouseUp(touch);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
/*globals Handlebars */
|
|
2
|
+
|
|
1
3
|
sc_require('ext/handlebars');
|
|
2
4
|
|
|
3
5
|
Handlebars.registerHelper('collection', function(path, options) {
|
|
4
6
|
var fn = options.fn;
|
|
5
7
|
var data = options.data;
|
|
6
8
|
var inverse = options.inverse;
|
|
9
|
+
var hash = options.hash;
|
|
7
10
|
var collectionClass, collectionObject;
|
|
8
11
|
|
|
9
12
|
collectionClass = path ? SC.objectForPropertyPath(path) : SC.TemplateCollectionView;
|
|
@@ -13,34 +16,33 @@ Handlebars.registerHelper('collection', function(path, options) {
|
|
|
13
16
|
}
|
|
14
17
|
//@ endif
|
|
15
18
|
|
|
16
|
-
var
|
|
19
|
+
var extensions = {};
|
|
20
|
+
|
|
21
|
+
if (hash) {
|
|
22
|
+
var itemHash = {}, match;
|
|
17
23
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
for (var prop in hash) {
|
|
25
|
+
if (hash.hasOwnProperty(prop)) {
|
|
26
|
+
match = prop.match(/^item(.)(.*)$/);
|
|
21
27
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
if(match) {
|
|
29
|
+
itemHash[match[1].toLowerCase() + match[2]] = hash[prop];
|
|
30
|
+
delete hash[prop];
|
|
31
|
+
}
|
|
25
32
|
}
|
|
26
33
|
}
|
|
27
|
-
}
|
|
28
34
|
|
|
29
|
-
|
|
30
|
-
|
|
35
|
+
extensions = SC.clone(hash);
|
|
36
|
+
extensions.itemViewOptions = itemHash;
|
|
37
|
+
}
|
|
31
38
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
inverseTemplate: inverse,
|
|
35
|
-
itemViewOptions: itemHash
|
|
36
|
-
});
|
|
39
|
+
if (fn) { extensions.itemViewTemplate = fn; }
|
|
40
|
+
if (inverse) { extensions.inverseTemplate = inverse; }
|
|
37
41
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
collectionObject = collectionClass;
|
|
43
|
-
}
|
|
42
|
+
if(collectionClass.isClass) {
|
|
43
|
+
collectionObject = collectionClass.extend(extensions);
|
|
44
|
+
} else {
|
|
45
|
+
collectionObject = SC.mixin(collectionClass, extensions);
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
options.fn = function() { return ""; };
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
The methods provided by this mixin make it easier to implement this pattern
|
|
19
19
|
but they are not required to support delegates.
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
## The Pattern
|
|
22
22
|
|
|
23
23
|
The delegate design pattern typically means that you provide a property,
|
|
24
24
|
usually ending in "delegate", that can be set to another object in the
|
|
@@ -4,9 +4,44 @@
|
|
|
4
4
|
// ©2008-2011 Apple Inc. All rights reserved.
|
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
|
6
6
|
// ==========================================================================
|
|
7
|
+
|
|
8
|
+
sc_require('views/template');
|
|
9
|
+
|
|
7
10
|
/** @class */
|
|
8
11
|
|
|
9
|
-
SC.
|
|
12
|
+
SC.Checkbox = SC.TemplateView.extend(
|
|
13
|
+
/** @scope SC.Checkbox.prototype */ {
|
|
14
|
+
|
|
15
|
+
title: null,
|
|
16
|
+
value: null,
|
|
17
|
+
|
|
18
|
+
classNames: ['sc-checkbox'],
|
|
19
|
+
template: SC.Handlebars.compile('<label><input type="checkbox">{{title}}</label>'),
|
|
20
|
+
|
|
21
|
+
didCreateLayer: function() {
|
|
22
|
+
var self = this;
|
|
23
|
+
|
|
24
|
+
this.$('input').bind('change', function() {
|
|
25
|
+
self.domValueDidChange(this);
|
|
26
|
+
});
|
|
27
|
+
},
|
|
28
|
+
|
|
29
|
+
domValueDidChange: function(node) {
|
|
30
|
+
this.set('value', !!$(node).attr('checked'));
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
value: function(key, value) {
|
|
34
|
+
if (value !== undefined) {
|
|
35
|
+
this.$('input').attr('checked', value);
|
|
36
|
+
} else {
|
|
37
|
+
value = this.$('input').attr('checked');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return value;
|
|
41
|
+
}.property()
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
SC.CheckboxSupport = /** @scope SC.CheckboxSupport */{
|
|
10
45
|
didCreateLayer: function() {
|
|
11
46
|
this.$('input').change(jQuery.proxy(function() {
|
|
12
47
|
SC.RunLoop.begin();
|
|
@@ -4,23 +4,142 @@
|
|
|
4
4
|
// ©2008-2011 Apple Inc. All rights reserved.
|
|
5
5
|
// License: Licensed under MIT license (see license.js)
|
|
6
6
|
// ==========================================================================
|
|
7
|
-
/** @class
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
sc_require('views/template');
|
|
9
|
+
|
|
10
|
+
/** @class */
|
|
11
|
+
|
|
12
|
+
SC.TextField = SC.TemplateView.extend(
|
|
13
|
+
/** @scope SC.TextField.prototype */ {
|
|
14
|
+
|
|
15
|
+
classNames: ['sc-text-field'],
|
|
16
|
+
|
|
17
|
+
// we can't use bindAttr because of a race condition:
|
|
18
|
+
//
|
|
19
|
+
// when `value` is set, the bindAttr observer immediately calls
|
|
20
|
+
// `get` in order to persist it to the DOM, but because we made
|
|
21
|
+
// the `value` property idempotent, when it gets called by
|
|
22
|
+
// bindAttr, it fetches the not-yet-updated value from the DOM
|
|
23
|
+
// and returns it.
|
|
24
|
+
//
|
|
25
|
+
// In short, because we need to be able to catch changes to the
|
|
26
|
+
// DOM made directly, we cannot also rely on bindAttr to update
|
|
27
|
+
// the property: a chicken-and-egg problem.
|
|
28
|
+
template: SC.Handlebars.compile('<input type="text">'),
|
|
29
|
+
|
|
30
|
+
didCreateLayer: function() {
|
|
31
|
+
var self = this;
|
|
32
|
+
|
|
33
|
+
var input = this.$('input');
|
|
34
|
+
input.val(this._value);
|
|
35
|
+
|
|
36
|
+
SC.Event.add(input, 'focus', this, this.focusIn);
|
|
37
|
+
SC.Event.add(input, 'blur', this, this.focusOut);
|
|
38
|
+
|
|
39
|
+
this.$('input').bind('change', function() {
|
|
40
|
+
self.domValueDidChange(SC.$(this));
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
The problem this property is trying to solve is twofold:
|
|
46
|
+
|
|
47
|
+
1. Make it possible to set the value of a text field that has
|
|
48
|
+
not yet been inserted into the DOM
|
|
49
|
+
2. Make sure that `value` properly reflects changes made directly
|
|
50
|
+
to the element's `value` property.
|
|
51
|
+
|
|
52
|
+
In order to achieve (2), we need to make the property volatile,
|
|
53
|
+
so that SproutCore will call the getter no matter what if get()
|
|
54
|
+
is called.
|
|
55
|
+
|
|
56
|
+
In order to achieve (1), we need to store a local cache of the
|
|
57
|
+
value, so that SproutCore can set the proper value as soon as
|
|
58
|
+
the underlying DOM element is created.
|
|
59
|
+
*/
|
|
60
|
+
value: function(key, value) {
|
|
61
|
+
var input = this.$('input');
|
|
62
|
+
|
|
63
|
+
if (value !== undefined) {
|
|
64
|
+
this._value = value;
|
|
65
|
+
input.val(value);
|
|
66
|
+
} else if (input.length) {
|
|
67
|
+
if(window.billy) { debugger; }
|
|
68
|
+
this._value = value = input.val();
|
|
69
|
+
} else {
|
|
70
|
+
if(window.billy) { debugger; }
|
|
71
|
+
value = this._value;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return value;
|
|
75
|
+
}.property().idempotent(),
|
|
76
|
+
|
|
77
|
+
domValueDidChange: function(jquery) {
|
|
78
|
+
this.set('value', jquery.val());
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
focusIn: function(event) {
|
|
82
|
+
this.becomeFirstResponder();
|
|
83
|
+
this.tryToPerform('focus', event);
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
focusOut: function(event) {
|
|
87
|
+
this.resignFirstResponder();
|
|
88
|
+
this.tryToPerform('blur', event);
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
willLoseFirstResponder: function() {
|
|
92
|
+
this.notifyPropertyChange('value');
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
keyUp: function(evt) {
|
|
96
|
+
this.domValueDidChange(this.$('input'));
|
|
97
|
+
|
|
98
|
+
if (evt.keyCode === 13) {
|
|
99
|
+
return this.insertNewline(evt);
|
|
100
|
+
} else if (evt.keyCode === 27) {
|
|
101
|
+
return this.cancel(evt);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
SC.TextFieldSupport = /** @scope SC.TextFieldSupport */{
|
|
109
|
+
|
|
110
|
+
/** @private
|
|
111
|
+
Used internally to store value because the layer may not exist
|
|
112
|
+
*/
|
|
113
|
+
_value: null,
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
@type String
|
|
117
|
+
@default null
|
|
118
|
+
*/
|
|
11
119
|
value: function(key, value) {
|
|
120
|
+
var input = this.$('input');
|
|
121
|
+
|
|
12
122
|
if (value !== undefined) {
|
|
13
|
-
this
|
|
123
|
+
this._value = value;
|
|
124
|
+
input.val(value);
|
|
14
125
|
} else {
|
|
15
|
-
|
|
126
|
+
if (input.length > 0) {
|
|
127
|
+
value = this._value = input.val();
|
|
128
|
+
} else {
|
|
129
|
+
value = this._value;
|
|
130
|
+
}
|
|
16
131
|
}
|
|
17
132
|
|
|
18
133
|
return value;
|
|
19
134
|
}.property().idempotent(),
|
|
20
135
|
|
|
21
136
|
didCreateLayer: function() {
|
|
22
|
-
|
|
23
|
-
|
|
137
|
+
var input = this.$('input');
|
|
138
|
+
|
|
139
|
+
input.val(this._value);
|
|
140
|
+
|
|
141
|
+
SC.Event.add(input, 'focus', this, this.focusIn);
|
|
142
|
+
SC.Event.add(input, 'blur', this, this.focusOut);
|
|
24
143
|
},
|
|
25
144
|
|
|
26
145
|
focusIn: function(event) {
|
|
@@ -24,7 +24,7 @@ SC.MIXED_STATE = '__MIXED__' ;
|
|
|
24
24
|
Usually you will not work directly with the SC.Pane class, but with one of
|
|
25
25
|
its subclasses such as SC.MainPane, SC.Panel, or SC.PopupPane.
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
## Showing a Pane
|
|
28
28
|
|
|
29
29
|
To make a pane visible, you need to add it to your HTML document. The
|
|
30
30
|
simplest way to do this is to call the append() method:
|
|
@@ -47,7 +47,7 @@ SC.MIXED_STATE = '__MIXED__' ;
|
|
|
47
47
|
resize with the window if needed, relaying resize notifications to children
|
|
48
48
|
as well.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
## Hiding a Pane
|
|
51
51
|
|
|
52
52
|
When you are finished with a pane, you can hide the pane by calling the
|
|
53
53
|
remove() method. This method will actually remove the Pane from the
|
|
@@ -61,7 +61,7 @@ SC.MIXED_STATE = '__MIXED__' ;
|
|
|
61
61
|
You can readd a pane to the document again any time in the future by using
|
|
62
62
|
any of the insertion methods defined in the previous section.
|
|
63
63
|
|
|
64
|
-
|
|
64
|
+
## Receiving Events
|
|
65
65
|
|
|
66
66
|
Your pane and its child views will automatically receive any mouse or touch
|
|
67
67
|
events as long as it is on the screen. To receive keyboard events, however,
|
|
@@ -16,7 +16,19 @@
|
|
|
16
16
|
})
|
|
17
17
|
}
|
|
18
18
|
*/
|
|
19
|
-
SC.TemplatePane = SC.Object.extend({
|
|
19
|
+
SC.TemplatePane = SC.Object.extend({
|
|
20
|
+
touchStart: function(touch) {
|
|
21
|
+
touch.allowDefault();
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
touchesDragged: function(evt, touches) {
|
|
25
|
+
evt.allowDefault();
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
touchEnd: function(touch) {
|
|
29
|
+
touch.allowDefault();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
20
32
|
|
|
21
33
|
SC.mixin(SC.TemplatePane, {
|
|
22
34
|
append: function(attrs) {
|
|
@@ -19,11 +19,11 @@ SC.NO_ORIENTATION = 'desktop'; // value 'desktop' for backwards compatibility
|
|
|
19
19
|
orientation and if the device is offline, as well as observe when they change
|
|
20
20
|
state.
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
## Orientation
|
|
23
23
|
When a touch device changes orientation, the orientation property will be
|
|
24
24
|
set accordingly which you can observe
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
## Offline support
|
|
27
27
|
In order to build a good offline-capable web application, you need to know
|
|
28
28
|
when your app has gone offline so you can for instance queue your server
|
|
29
29
|
requests for a later time or provide a specific UI/message.
|
|
@@ -195,10 +195,10 @@ SC.mixin(SC.Event, /** @scope SC.Event */ {
|
|
|
195
195
|
relevant event occurs on the named element. This method supports a
|
|
196
196
|
variety of handler types, depending on the kind of support you need.
|
|
197
197
|
|
|
198
|
-
|
|
198
|
+
## Simple Function Handlers
|
|
199
|
+
|
|
200
|
+
SC.Event.add(anElement, "click", myClickHandler) ;
|
|
199
201
|
|
|
200
|
-
SC.Event.add(anElement, "click", myClickHandler) ;
|
|
201
|
-
|
|
202
202
|
The most basic type of handler you can pass is a function. This function
|
|
203
203
|
will be executed everytime an event of the type you specify occurs on the
|
|
204
204
|
named element. You can optionally pass an additional context object which
|
|
@@ -209,24 +209,24 @@ SC.mixin(SC.Event, /** @scope SC.Event */ {
|
|
|
209
209
|
|
|
210
210
|
The click handler for this method must have a method signature like:
|
|
211
211
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
h2. Method Invocations
|
|
212
|
+
function(event) { return YES|NO; }
|
|
215
213
|
|
|
216
|
-
|
|
217
|
-
|
|
214
|
+
## Method Invocations
|
|
215
|
+
|
|
216
|
+
SC.Event.add(anElement, "click", myObject, myObject.aMethod) ;
|
|
217
|
+
|
|
218
218
|
Optionally you can specify a target object and a method on the object to
|
|
219
219
|
be invoked when the event occurs. This will invoke the method function
|
|
220
220
|
with the target object you pass as "this". The method should have a
|
|
221
221
|
signature like:
|
|
222
222
|
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
function(event, targetElement) { return YES|NO; }
|
|
224
|
+
|
|
225
225
|
Like function handlers, you can pass an additional context data paramater
|
|
226
226
|
that will be included on the event in the event.data property.
|
|
227
|
-
|
|
228
|
-
h2. Handler Return Values
|
|
229
227
|
|
|
228
|
+
## Handler Return Values
|
|
229
|
+
|
|
230
230
|
Both handler functions should return YES if you want the event to
|
|
231
231
|
continue to propagate and NO if you want it to stop. Returning NO will
|
|
232
232
|
both stop bubbling of the event and will prevent any default action
|
|
@@ -234,7 +234,7 @@ SC.mixin(SC.Event, /** @scope SC.Event */ {
|
|
|
234
234
|
by calling the stopPropagation() or preventDefault() methods on the event
|
|
235
235
|
itself, returning YES from your method.
|
|
236
236
|
|
|
237
|
-
|
|
237
|
+
## Limitations
|
|
238
238
|
|
|
239
239
|
Although SproutCore's event implementation is based on jQuery, it is
|
|
240
240
|
much simpler in design. Notably, it does not support namespaced events
|
|
@@ -315,7 +315,7 @@ SC.mixin(SC.Event, /** @scope SC.Event */ {
|
|
|
315
315
|
and element, then all handlers for all events on that element will be
|
|
316
316
|
removed.
|
|
317
317
|
|
|
318
|
-
|
|
318
|
+
## Limitations
|
|
319
319
|
|
|
320
320
|
Although SproutCore's event implementation is based on jQuery, it is
|
|
321
321
|
much simpler in design. Notably, it does not support namespaced events
|
|
@@ -523,8 +523,8 @@ SC.mixin(SC.Event, /** @scope SC.Event */ {
|
|
|
523
523
|
be the element the event occurred on, so you should always call this
|
|
524
524
|
method like:
|
|
525
525
|
|
|
526
|
-
|
|
527
|
-
|
|
526
|
+
SC.Event.handle.call(element, event) ;
|
|
527
|
+
|
|
528
528
|
Note that like other parts of this library, the handle function does not
|
|
529
529
|
support namespaces.
|
|
530
530
|
|