sproutit-sproutcore 1.0.0.20090407205609 → 1.0.0.20090408130025
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/frameworks/sproutcore/Buildfile +63 -0
- data/frameworks/sproutcore/HISTORY +682 -0
- data/frameworks/sproutcore/README +22 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/controllers/docs.js +149 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.js +99 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/main.js +27 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/models/doc.js +21 -0
- data/frameworks/sproutcore/apps/sc_qunit/controllers/runner.js +209 -0
- data/frameworks/sproutcore/apps/sc_qunit/core.js +16 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.css +17 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.js +107 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/sc_qunit/main.js +18 -0
- data/frameworks/sproutcore/apps/sc_qunit/models/test.js +24 -0
- data/frameworks/sproutcore/apps/sc_qunit/views/test_iframe.js +52 -0
- data/frameworks/sproutcore/apps/tests/controllers/targets.js +47 -0
- data/frameworks/sproutcore/apps/tests/controllers/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/controllers/tests.js +38 -0
- data/frameworks/sproutcore/apps/tests/core.js +35 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/loading.rhtml +9 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +19 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +86 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +17 -0
- data/frameworks/sproutcore/apps/tests/fixtures/target.js +43 -0
- data/frameworks/sproutcore/apps/tests/fixtures/test.js +43 -0
- data/frameworks/sproutcore/apps/tests/main.js +39 -0
- data/frameworks/sproutcore/apps/tests/models/target.js +49 -0
- data/frameworks/sproutcore/apps/tests/models/test.js +20 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/test.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/tests.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/target.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/models/test.js +15 -0
- data/frameworks/sproutcore/apps/welcome/core.js +23 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/loading.rhtml +8 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/main_page.js +43 -0
- data/frameworks/sproutcore/apps/welcome/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/apps/welcome/main.js +36 -0
- data/frameworks/sproutcore/design/Design Charts.graffle +15819 -0
- data/frameworks/sproutcore/design/Record State Table.numbers +0 -0
- data/frameworks/sproutcore/frameworks/datastore/core.js +14 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +113 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +256 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +196 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/json.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/debug/standard_setup.js +96 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/author_fixtures.js +2503 -0
- data/frameworks/sproutcore/frameworks/datastore/fixtures/sample.js +17 -0
- data/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +92 -0
- data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +38 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record.js +430 -0
- data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +361 -0
- data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +305 -0
- data/frameworks/sproutcore/frameworks/datastore/system/query.js +128 -0
- data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +149 -0
- data/frameworks/sproutcore/frameworks/datastore/system/store.js +1689 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +86 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/contact_model.js +114 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/mail_model.js +91 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/integration/test_runner_model.js +56 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +73 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/readAttribute.js +48 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +42 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/storeDidChangeProperties.js +138 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/unknownProperty.js +46 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/writeAttribute.js +71 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +115 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +40 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +116 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +135 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +110 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +99 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +180 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +163 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +166 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +175 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +54 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +127 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +57 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataHashDidChange.js +78 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +247 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +106 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/init.js +21 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +61 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/readEditableDataHash.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +74 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/removeDataHash.js +144 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +137 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js +130 -0
- data/frameworks/sproutcore/frameworks/debug/core.js +1 -0
- data/frameworks/sproutcore/frameworks/deprecated/core.js +61 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/button_views.rb +330 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/collection_view.rb +83 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/core_views.rb +326 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/form_views.rb +253 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/index.rhtml +75 -0
- data/frameworks/sproutcore/frameworks/deprecated/lib/menu_views.rb +93 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rails_server.js +80 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/rest_server.js +178 -0
- data/frameworks/sproutcore/frameworks/deprecated/server/server.js +674 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/animator.js +679 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/binding.js +36 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/browser.js +77 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/classic_responder.js +314 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/event.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/globals.js +20 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/misc.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/node_descriptor.js +72 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/object.js +124 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/path_module.js +433 -0
- data/frameworks/sproutcore/frameworks/deprecated/system/string.js +109 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/application/application.rhtml +125 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/clippingFrame.rhtml +401 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/frame.rhtml +357 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/classic_view/isVisibleInWindow.rhtml +147 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/base.rhtml +298 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/incremental_rendering.rhtml +260 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/collection/source_list_rendering.rhtml +143 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/popup_button.rhtml +128 -0
- data/frameworks/sproutcore/frameworks/deprecated/tests/views/text_field.rhtml +37 -0
- data/frameworks/sproutcore/frameworks/deprecated/views/collection.js +24 -0
- data/frameworks/sproutcore/frameworks/designer/coders/design.js +30 -0
- data/frameworks/sproutcore/frameworks/designer/coders/localization.js +28 -0
- data/frameworks/sproutcore/frameworks/designer/coders/object.js +347 -0
- data/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +102 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_rule.js +22 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style.js +29 -0
- data/frameworks/sproutcore/frameworks/designer/css/css_style_sheet.js +201 -0
- data/frameworks/sproutcore/frameworks/designer/ext/page.js +88 -0
- data/frameworks/sproutcore/frameworks/designer/ext/view.js +40 -0
- data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +18 -0
- data/frameworks/sproutcore/frameworks/designer/views/designer.js +553 -0
- data/frameworks/sproutcore/frameworks/designer/views/label.js +17 -0
- data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +13 -0
- data/frameworks/sproutcore/frameworks/designer/views/tab.js +17 -0
- data/frameworks/sproutcore/frameworks/desktop/core.js +6 -0
- data/frameworks/sproutcore/frameworks/desktop/debug/drag.js +41 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +56 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/a_sample_image.jpg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/apple-logo1.jpeg +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/debug/iframe.html +23 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/disclosure.css +71 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/icons.css +943 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_222222.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_454545.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_888888.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/mini_ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/indicator.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-x.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-y.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/000000.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/ffffff.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/sticky-note.png +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +156 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +83 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +99 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/palette.css +3 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +94 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/picker.css +39 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/progress.css +31 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/radio.css +10 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/scroller.css +26 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/separator.css +19 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +57 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split.css +70 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +8 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js +14 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/text_field.css +29 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/toolbar.css +6 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/border.js +53 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_item.js +22 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +226 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +247 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +377 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +504 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/modal.js +68 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/palette.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/panel.js +184 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +402 -0
- data/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +46 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +175 -0
- data/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +280 -0
- data/frameworks/sproutcore/frameworks/desktop/system/drag.js +721 -0
- data/frameworks/sproutcore/frameworks/desktop/system/key_bindings.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +641 -0
- data/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +187 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +43 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +152 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +57 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +36 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +40 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +80 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +38 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/methods.js +45 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +140 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +145 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +99 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +39 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +64 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/grid/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +255 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/methods.js +128 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +240 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +113 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +202 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +139 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +111 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +63 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/ui.js +70 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +94 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +206 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/methods.js +81 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +85 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/source_list/ui.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +50 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/split/ui.js +52 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +54 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js +88 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/methods.js +76 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/text_field/ui.js +198 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +110 -0
- data/frameworks/sproutcore/frameworks/desktop/views/button.js +320 -0
- data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +98 -0
- data/frameworks/sproutcore/frameworks/desktop/views/collection.js +2141 -0
- data/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +44 -0
- data/frameworks/sproutcore/frameworks/desktop/views/form.js +595 -0
- data/frameworks/sproutcore/frameworks/desktop/views/grid.js +199 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list.js +706 -0
- data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +523 -0
- data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +437 -0
- data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +62 -0
- data/frameworks/sproutcore/frameworks/desktop/views/progress.js +207 -0
- data/frameworks/sproutcore/frameworks/desktop/views/radio.js +332 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scene.js +56 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +648 -0
- data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +203 -0
- data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +509 -0
- data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +292 -0
- data/frameworks/sproutcore/frameworks/desktop/views/separator.js +37 -0
- data/frameworks/sproutcore/frameworks/desktop/views/slider.js +178 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +1117 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +169 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split.js +651 -0
- data/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +55 -0
- data/frameworks/sproutcore/frameworks/desktop/views/tab.js +190 -0
- data/frameworks/sproutcore/frameworks/desktop/views/text_field.js +233 -0
- data/frameworks/sproutcore/frameworks/desktop/views/thumb.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +49 -0
- data/frameworks/sproutcore/frameworks/desktop/views/web.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/TESTING +46 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +490 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +317 -0
- data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +421 -0
- data/frameworks/sproutcore/frameworks/foundation/core.js +111 -0
- data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +172 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +53 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/button_view.css +55 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +8 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/static_layout.css +5 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +40 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/object.js +81 -0
- data/frameworks/sproutcore/frameworks/foundation/ext/run_loop.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/fixtures/file_exists.json +1 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +291 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +88 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +352 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +146 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/responder.js +156 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +154 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +101 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +237 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +176 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/main.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +555 -0
- data/frameworks/sproutcore/frameworks/foundation/protocols/inline_editor_delegate.js +84 -0
- data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +244 -0
- data/frameworks/sproutcore/frameworks/foundation/system/browser.js +64 -0
- data/frameworks/sproutcore/frameworks/foundation/system/builder.js +210 -0
- data/frameworks/sproutcore/frameworks/foundation/system/core_query.js +2015 -0
- data/frameworks/sproutcore/frameworks/foundation/system/cursor.js +129 -0
- data/frameworks/sproutcore/frameworks/foundation/system/error.js +93 -0
- data/frameworks/sproutcore/frameworks/foundation/system/event.js +817 -0
- data/frameworks/sproutcore/frameworks/foundation/system/image_cache.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/system/json.js +440 -0
- data/frameworks/sproutcore/frameworks/foundation/system/locale.js +288 -0
- data/frameworks/sproutcore/frameworks/foundation/system/page.js +106 -0
- data/frameworks/sproutcore/frameworks/foundation/system/ready.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +865 -0
- data/frameworks/sproutcore/frameworks/foundation/system/request.js +255 -0
- data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +368 -0
- data/frameworks/sproutcore/frameworks/foundation/system/routes.js +446 -0
- data/frameworks/sproutcore/frameworks/foundation/system/time.js +478 -0
- data/frameworks/sproutcore/frameworks/foundation/system/timer.js +549 -0
- data/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/system/utils.js +330 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array.js +118 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/controller.js +268 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object.js +433 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/debug/control_test_pane/ui.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/integration/creating_views.js +113 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/content.js +195 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/content.js +168 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/control/displayProperties.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/builder.js +42 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +1323 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_dimensions.js +387 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +405 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/setClass.js +49 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/within.js +66 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/error.js +41 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/json.js +14 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/locale.js +128 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/begin.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/element.js +44 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/end.js +119 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +179 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +100 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/init.js +55 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/join.js +28 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/push_text.js +74 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +205 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeKeyPane.js +124 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/makeMainPane.js +68 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/targetForAction.js +238 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/routes.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invalidate.js +38 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/invokeLater.js +201 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/isPaused.js +71 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/performAction.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +170 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js +27 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js +18 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js +62 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +21 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/number.js +47 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/password.js +13 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/methods.js +10 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/container/ui.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +39 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/main_pane.js +31 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +89 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/firstResponder.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/keyPane.js +133 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/sendEvent.js +165 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +132 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +246 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +87 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createLayer.js +97 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/destroyLayer.js +85 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/init.js +50 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/insertBefore.js +200 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +102 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layer.js +150 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutChildViews.js +162 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutDidChange.js +127 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +248 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/parentViewDidChange.js +67 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +166 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/removeChild.js +189 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/render.js +83 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/replaceChild.js +29 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +142 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayerLocation.js +194 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/viewDidResize.js +185 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +125 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/date.js +52 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/email.js +45 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/not_empty.js +33 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/number.js +82 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/password.js +86 -0
- data/frameworks/sproutcore/frameworks/foundation/validators/validator.js +311 -0
- data/frameworks/sproutcore/frameworks/foundation/views/container.js +136 -0
- data/frameworks/sproutcore/frameworks/foundation/views/field.js +276 -0
- data/frameworks/sproutcore/frameworks/foundation/views/image.js +158 -0
- data/frameworks/sproutcore/frameworks/foundation/views/label.js +261 -0
- data/frameworks/sproutcore/frameworks/foundation/views/view.js +2160 -0
- data/frameworks/sproutcore/frameworks/mobile/english.lproj/core.css +12 -0
- data/frameworks/sproutcore/frameworks/mobile/lib/index.rhtml +126 -0
- data/frameworks/sproutcore/frameworks/mobile/system/root_responder.js +109 -0
- data/frameworks/sproutcore/frameworks/mobile/tests/views/button/ui.js +9 -0
- data/frameworks/sproutcore/frameworks/mobile/views/button.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/README +11 -0
- data/frameworks/sproutcore/frameworks/runtime/core.js +777 -0
- data/frameworks/sproutcore/frameworks/runtime/license.js +28 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +403 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +70 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +1193 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +1149 -0
- data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +108 -0
- data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +128 -0
- data/frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js +131 -0
- data/frameworks/sproutcore/frameworks/runtime/system/binding.js +891 -0
- data/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +107 -0
- data/frameworks/sproutcore/frameworks/runtime/system/object.js +783 -0
- data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +99 -0
- data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +214 -0
- data/frameworks/sproutcore/frameworks/runtime/system/set.js +246 -0
- data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +286 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/IsEqual.js +56 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/beget.js +23 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +66 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +147 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/inspect.js +27 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/isArray.js +25 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/itemType.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +20 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +30 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +19 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/tupleForPropertyPath.js +37 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +592 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +467 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +123 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +79 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +80 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/array.js +263 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +190 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +135 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +339 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +120 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +313 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +84 -0
- data/frameworks/sproutcore/frameworks/testing/core.js +13 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/additions.css +8 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/testsuite.css +131 -0
- data/frameworks/sproutcore/frameworks/testing/extras.js +43 -0
- data/frameworks/sproutcore/frameworks/testing/jquery.js +3559 -0
- data/frameworks/sproutcore/frameworks/testing/qunit.js +819 -0
- data/frameworks/sproutcore/frameworks/testing/tests/debug/qunit.js +25 -0
- data/frameworks/sproutcore/frameworks/testing/utils.js +55 -0
- data/frameworks/sproutcore/lib/index.rhtml +118 -0
- data/frameworks/sproutcore/license.js +28 -0
- data/frameworks/sproutcore/themes/empty_theme/tests/mini_icons.rhtml +69 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/button.css +41 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +8 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/backButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/blueButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/cancel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/grayButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/leftButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrow.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listArrowSel.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/listGroup.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/loading.gif +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/pinstripes.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/rightButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/selection.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/thumb.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggle.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toggleOn.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/toolbar.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/images/whiteButton.png +0 -0
- data/frameworks/sproutcore/themes/iphone_theme/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/Panel.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/ToolbarView Pattern.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-x.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/Data +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Preview.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/panel-sprite-y.drawit/QuickLook/Thumbnail.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/button.css +333 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +90 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +53 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +47 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/disclosure.css +55 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-sprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-ysprite.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-toolbar-view.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/label.css +37 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +8 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-fat.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/background-thin.jpg +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/bottom-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/left-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/overlay.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/right-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-edge.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-left-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/panels/top-right-corner.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +23 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +113 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +141 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +62 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/split_view.css +27 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +12 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +13 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +4 -0
- data/lib/thor/.autotest +7 -0
- data/lib/thor/CHANGELOG.rdoc +52 -0
- data/lib/thor/LICENSE +20 -0
- data/lib/thor/README.markdown +76 -0
- data/lib/thor/Rakefile +6 -0
- data/lib/thor/Thorfile +45 -0
- data/lib/thor/bin/rake2thor +83 -0
- data/lib/thor/bin/thor +7 -0
- data/lib/thor/lib/thor/error.rb +3 -0
- data/lib/thor/lib/thor/options.rb +267 -0
- data/lib/thor/lib/thor/ordered_hash.rb +64 -0
- data/lib/thor/lib/thor/runner.rb +305 -0
- data/lib/thor/lib/thor/task.rb +83 -0
- data/lib/thor/lib/thor/task_hash.rb +22 -0
- data/lib/thor/lib/thor/tasks/package.rb +18 -0
- data/lib/thor/lib/thor/tasks.rb +77 -0
- data/lib/thor/lib/thor/util.rb +75 -0
- data/lib/thor/lib/thor.rb +170 -0
- data/lib/thor/script/destroy +14 -0
- data/lib/thor/script/generate +14 -0
- data/lib/thor/spec/fixtures/task.thor +10 -0
- data/lib/thor/spec/options_spec.rb +271 -0
- data/lib/thor/spec/ordered_hash_spec.rb +84 -0
- data/lib/thor/spec/spec.opts +1 -0
- data/lib/thor/spec/spec_helper.rb +30 -0
- data/lib/thor/spec/task_spec.rb +11 -0
- data/lib/thor/spec/tasks_spec.rb +28 -0
- data/lib/thor/spec/thor_runner_spec.rb +194 -0
- data/lib/thor/spec/thor_spec.rb +206 -0
- data/lib/thor/spec/util_spec.rb +99 -0
- data/lib/thor/task.thor +15 -0
- data/lib/thor/thor.gemspec +29 -0
- metadata +3 -4
- data/sproutcore.gemspec +0 -47
@@ -0,0 +1,276 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2009 Apple, Inc. All rights reserved.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
sc_require('views/view') ;
|
9
|
+
sc_require('mixins/control') ;
|
10
|
+
sc_require('mixins/validatable') ;
|
11
|
+
|
12
|
+
/** @class
|
13
|
+
|
14
|
+
Base view for managing a view backed by an input element. Since the web
|
15
|
+
browser provides native support for editing input elements, this view
|
16
|
+
provides basic support for listening to changes on these input elements and
|
17
|
+
responding to them.
|
18
|
+
|
19
|
+
Generally you will not work with a FieldView directly. Instead, you should
|
20
|
+
use one of the subclasses implemented by your target platform such as
|
21
|
+
SC.CheckboxView, SC.RadioView, SC.TextFieldView, and so on.
|
22
|
+
|
23
|
+
@extends SC.View
|
24
|
+
@extends SC.Control
|
25
|
+
@extends SC.Validatable
|
26
|
+
@since SproutCore 1.0
|
27
|
+
*/
|
28
|
+
SC.FieldView = SC.View.extend(SC.Control, SC.Validatable,
|
29
|
+
/** @scope SC.FieldView.prototype */ {
|
30
|
+
|
31
|
+
/**
|
32
|
+
The raw value of the field itself. This is computed from the 'value'
|
33
|
+
propery by passing it through any validator you might have set. This is
|
34
|
+
the value that will be set on the field itself when the view is updated.
|
35
|
+
|
36
|
+
@property {String}
|
37
|
+
*/
|
38
|
+
fieldValue: function() {
|
39
|
+
var value = this.get('value');
|
40
|
+
if (SC.typeOf(value) === SC.T_ERROR) value = value.get('value');
|
41
|
+
return this.fieldValueForObject(value);
|
42
|
+
}.property('value', 'validator').cacheable(),
|
43
|
+
|
44
|
+
// ..........................................................
|
45
|
+
// PRIMITIVES
|
46
|
+
//
|
47
|
+
|
48
|
+
/**
|
49
|
+
Override to return an CoreQuery object that selects the input elements
|
50
|
+
for the view. If this method is defined, the field view will
|
51
|
+
automatically edit the attrbutes of the input element to reflect the
|
52
|
+
current isEnabled state among other things.
|
53
|
+
*/
|
54
|
+
$input: function() {
|
55
|
+
return this.$('input').andSelf().filter('input');
|
56
|
+
},
|
57
|
+
|
58
|
+
/**
|
59
|
+
Override to set the actual value of the field.
|
60
|
+
|
61
|
+
The default implementation will simple copy the newValue to the value
|
62
|
+
attribute of any input tags in the receiver view. You can override this
|
63
|
+
method to provide specific functionality needed by your view.
|
64
|
+
|
65
|
+
@param {Object} newValue the value to display.
|
66
|
+
@returns {SC.FieldView} receiver
|
67
|
+
*/
|
68
|
+
setFieldValue: function(newValue) {
|
69
|
+
if (SC.none(newValue)) newValue = '' ;
|
70
|
+
this.$input().val(newValue);
|
71
|
+
return this ;
|
72
|
+
},
|
73
|
+
|
74
|
+
/**
|
75
|
+
Override to retrieve the actual value of the field.
|
76
|
+
|
77
|
+
The default implementation will simply retrieve the value attribute from
|
78
|
+
the first input tag in the receiver view.
|
79
|
+
|
80
|
+
@returns {String} value
|
81
|
+
*/
|
82
|
+
getFieldValue: function() {
|
83
|
+
return this.$input().val();
|
84
|
+
},
|
85
|
+
|
86
|
+
_field_fieldValueDidChange: function(evt) {
|
87
|
+
SC.RunLoop.begin();
|
88
|
+
this.fieldValueDidChange(NO);
|
89
|
+
SC.RunLoop.end();
|
90
|
+
},
|
91
|
+
|
92
|
+
/**
|
93
|
+
Your class should call this method anytime you think the value of the
|
94
|
+
input element may have changed. This will retrieve the value and update
|
95
|
+
the value property of the view accordingly.
|
96
|
+
|
97
|
+
If this is a partial change (i.e. the user is still editing the field and
|
98
|
+
you expect the value to change further), then be sure to pass YES for the
|
99
|
+
partialChange parameter. This will change the kind of validation done on
|
100
|
+
the value. Otherwise, the validator may mark the field as having an error
|
101
|
+
when the user is still in mid-edit.
|
102
|
+
|
103
|
+
@param partialChange (optional) YES if this is a partial change.
|
104
|
+
@returns {Boolean|SC.Error} result of validation.
|
105
|
+
*/
|
106
|
+
fieldValueDidChange: function(partialChange) {
|
107
|
+
|
108
|
+
// collect the field value and convert it back to a value
|
109
|
+
var fieldValue = this.getFieldValue();
|
110
|
+
var value = this.objectForFieldValue(fieldValue, partialChange);
|
111
|
+
this.setIfChanged('value', value);
|
112
|
+
|
113
|
+
// validate value if needed...
|
114
|
+
|
115
|
+
// this.notifyPropertyChange('fieldValue');
|
116
|
+
//
|
117
|
+
// // get the field value and set it.
|
118
|
+
// // if ret is an error, use that instead of the field value.
|
119
|
+
// var ret = this.performValidate ? this.performValidate(partialChange) : YES;
|
120
|
+
// if (ret === SC.VALIDATE_NO_CHANGE) return ret ;
|
121
|
+
//
|
122
|
+
// this.propertyWillChange('fieldValue');
|
123
|
+
//
|
124
|
+
// // if the validator says everything is OK, then in addition to posting
|
125
|
+
// // out the value, go ahead and pass the value back through itself.
|
126
|
+
// // This way if you have a formatter applied, it will reformat.
|
127
|
+
// //
|
128
|
+
// // Do this BEFORE we set the value so that the valueObserver will not
|
129
|
+
// // overreact.
|
130
|
+
// //
|
131
|
+
// var ok = SC.$ok(ret);
|
132
|
+
// var value = ok ? this._field_getFieldValue() : ret ;
|
133
|
+
// if (!partialChange && ok) this._field_setFieldValue(value) ;
|
134
|
+
// this.set('value',value) ;
|
135
|
+
//
|
136
|
+
// this.propertyDidChange('fieldValue');
|
137
|
+
//
|
138
|
+
// return ret ;
|
139
|
+
},
|
140
|
+
|
141
|
+
// ..........................................................
|
142
|
+
// INTERNAL SUPPORT
|
143
|
+
//
|
144
|
+
|
145
|
+
/** @private
|
146
|
+
invoked when the value property changes. Sets the field value...
|
147
|
+
*/
|
148
|
+
_field_valueDidChange: function() {
|
149
|
+
this.setFieldValue(this.get('fieldValue'));
|
150
|
+
}.observes('value'),
|
151
|
+
|
152
|
+
/** @private
|
153
|
+
after the layer is created, set the field value and observe events
|
154
|
+
*/
|
155
|
+
didCreateLayer: function() {
|
156
|
+
this.setFieldValue(this.get('fieldValue'));
|
157
|
+
SC.Event.add(this.$input(), 'change', this, this._field_fieldValueDidChange) ;
|
158
|
+
},
|
159
|
+
|
160
|
+
willDestroyLayer: function() {
|
161
|
+
SC.Event.remove(this.$input(), 'change', this, this._field_fieldValueDidChange);
|
162
|
+
},
|
163
|
+
|
164
|
+
/** @private
|
165
|
+
when the layer is updated, go ahead and call render like normal. this
|
166
|
+
will allow normal CSS class + style updates. by then also update field
|
167
|
+
value manually.
|
168
|
+
|
169
|
+
Most subclasses should not regenerate their contents unless necessary.
|
170
|
+
*/
|
171
|
+
updateLayer: function() {
|
172
|
+
sc_super();
|
173
|
+
|
174
|
+
// only change field value if it has changed from the last time we
|
175
|
+
// set it. This allows the browser-native field value to change without
|
176
|
+
// this method interfering with it.
|
177
|
+
var fieldValue = this.get('fieldValue');
|
178
|
+
this.setFieldValue(fieldValue);
|
179
|
+
},
|
180
|
+
|
181
|
+
// ACTIONS
|
182
|
+
// You generally do not need to override these but they may be used.
|
183
|
+
|
184
|
+
/**
|
185
|
+
Called to perform validation on the field just before the form
|
186
|
+
is submitted. If you have a validator attached, this will get the
|
187
|
+
validators.
|
188
|
+
*/
|
189
|
+
// validateSubmit: function() {
|
190
|
+
// var ret = this.performValidateSubmit ? this.performValidateSubmit() : YES;
|
191
|
+
// // save the value if needed
|
192
|
+
// var value = SC.$ok(ret) ? this._field_getFieldValue() : ret ;
|
193
|
+
// if (value != this.get('value')) this.set('value', value) ;
|
194
|
+
// return ret ;
|
195
|
+
// },
|
196
|
+
|
197
|
+
// OVERRIDE IN YOUR SUBCLASS
|
198
|
+
// Override these primitives in your subclass as required.
|
199
|
+
|
200
|
+
/**
|
201
|
+
Allow the browser to do its normal event handling for the mouse down
|
202
|
+
event. But first, set isActive to YES.
|
203
|
+
*/
|
204
|
+
mouseDown: function(evt) {
|
205
|
+
if (this.get('isEnabled')) {
|
206
|
+
this.set('isActive', YES);
|
207
|
+
this._field_isMouseDown = YES;
|
208
|
+
}
|
209
|
+
evt.allowDefault();
|
210
|
+
return YES;
|
211
|
+
},
|
212
|
+
|
213
|
+
/** @private
|
214
|
+
Remove the active class on mouseOut if mouse is down.
|
215
|
+
*/
|
216
|
+
mouseOut: function(evt) {
|
217
|
+
if (this._field_isMouseDown) this.set('isActive', NO);
|
218
|
+
evt.allowDefault();
|
219
|
+
return YES;
|
220
|
+
},
|
221
|
+
|
222
|
+
/** @private
|
223
|
+
If mouse was down and we renter the button area, set the active state again.
|
224
|
+
*/
|
225
|
+
mouseOver: function(evt) {
|
226
|
+
this.set('isActive', this._field_isMouseDown);
|
227
|
+
evt.allowDefault();
|
228
|
+
return YES;
|
229
|
+
},
|
230
|
+
|
231
|
+
_field_isMouseDown: NO,
|
232
|
+
|
233
|
+
/** @private
|
234
|
+
on mouse up, remove the isActive class and then allow the browser to do
|
235
|
+
its normal thing.
|
236
|
+
*/
|
237
|
+
mouseUp: function(evt) {
|
238
|
+
// track independently in case isEnabled has changed
|
239
|
+
if (this._field_isMouseDown) this.set('isActive', NO);
|
240
|
+
this._field_isMouseDown = false;
|
241
|
+
evt.allowDefault();
|
242
|
+
return YES ;
|
243
|
+
},
|
244
|
+
|
245
|
+
// called whenever the value is set on the object. Will set the value
|
246
|
+
// on the field if the value is changed.
|
247
|
+
// valueDidChange: function() {
|
248
|
+
// var value = this.get('value') ;
|
249
|
+
// var isError = SC.typeOf(value) === SC.T_ERROR ;
|
250
|
+
// if (!isError && (value !== this._field_getFieldValue())) {
|
251
|
+
// this._field_setFieldValue(value) ;
|
252
|
+
// }
|
253
|
+
// }.observes('value'),
|
254
|
+
|
255
|
+
// these methods use the validator to convert the raw field value returned
|
256
|
+
// by your subclass into an object and visa versa.
|
257
|
+
_field_setFieldValue: function(newValue) {
|
258
|
+
|
259
|
+
this.propertyWillChange('fieldValue');
|
260
|
+
if (this.fieldValueForObject) {
|
261
|
+
newValue = this.fieldValueForObject(newValue) ;
|
262
|
+
}
|
263
|
+
var ret = this.setFieldValue(newValue) ;
|
264
|
+
this.propertyDidChange('fieldValue');
|
265
|
+
return ret ;
|
266
|
+
},
|
267
|
+
|
268
|
+
_field_getFieldValue: function() {
|
269
|
+
var ret = this.getFieldValue() ;
|
270
|
+
if (this.objectForFieldValue) ret=this.objectForFieldValue(ret);
|
271
|
+
return ret ;
|
272
|
+
}
|
273
|
+
|
274
|
+
}) ;
|
275
|
+
|
276
|
+
|
@@ -0,0 +1,158 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2009 Apple, Inc. All rights reserved.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
sc_require('views/view') ;
|
9
|
+
sc_require('mixins/control') ;
|
10
|
+
|
11
|
+
SC.IMAGE_STATE_NONE = 'none';
|
12
|
+
SC.IMAGE_STATE_LOADING = 'loading';
|
13
|
+
SC.IMAGE_STATE_LOADED = 'loaded';
|
14
|
+
SC.IMAGE_STATE_FAILED = 'failed';
|
15
|
+
SC.IMAGE_STATE_SPRITE = 'sprite';
|
16
|
+
|
17
|
+
/**
|
18
|
+
URL to a transparent GIF. Used for spriting.
|
19
|
+
*/
|
20
|
+
SC.BLANK_IMAGE_URL = sc_static('blank.gif');
|
21
|
+
|
22
|
+
/**
|
23
|
+
@class
|
24
|
+
|
25
|
+
Displays an image in the browser.
|
26
|
+
|
27
|
+
The ImageView can be used to efficiently display images in the browser.
|
28
|
+
It includes a built in support for a number of features that can improve
|
29
|
+
your page load time if you use a lot of images including a image loading
|
30
|
+
queue and automatic support for CSS spriting.
|
31
|
+
|
32
|
+
Note that there are actually many controls that will natively include
|
33
|
+
images using an icon property name.
|
34
|
+
|
35
|
+
@extends SC.View
|
36
|
+
@extends SC.Control
|
37
|
+
@since SproutCore 1.0
|
38
|
+
*/
|
39
|
+
SC.ImageView = SC.View.extend(SC.Control,
|
40
|
+
/** @scope SC.ImageView.prototype */ {
|
41
|
+
|
42
|
+
/** Image views contain an img tag. */
|
43
|
+
classNames: 'sc-image-view',
|
44
|
+
tagName: 'img',
|
45
|
+
|
46
|
+
/**
|
47
|
+
Current load status of the image.
|
48
|
+
|
49
|
+
This status changes as an image is loaded from the server. If spriting
|
50
|
+
is used, this will always be loaded. Must be one of the following
|
51
|
+
constants: SC.IMAGE_STATE_NONE, SC.IMAGE_STATE_LOADING,
|
52
|
+
SC.IMAGE_STATE_LOADED, SC.IMAGE_STATE_FAILED, SC.IMAGE_STATE_SPRITE
|
53
|
+
|
54
|
+
@property {String}
|
55
|
+
*/
|
56
|
+
status: SC.IMAGE_STATE_NONE,
|
57
|
+
|
58
|
+
/**
|
59
|
+
A url or CSS class name.
|
60
|
+
|
61
|
+
This is the image you want the view to display. It should be either a
|
62
|
+
url or css class name. You can also set the content and
|
63
|
+
contentValueKey properties to have this value extracted
|
64
|
+
automatically.
|
65
|
+
|
66
|
+
If you want to use CSS spriting, set this value to a CSS class name. If
|
67
|
+
you need to use multiple class names to set your icon, separate them by
|
68
|
+
spaces.
|
69
|
+
|
70
|
+
Note that if you provide a URL, it must contain at least one '/' as this
|
71
|
+
is how we autodetect URLs.
|
72
|
+
|
73
|
+
@property {String}
|
74
|
+
*/
|
75
|
+
value: null,
|
76
|
+
|
77
|
+
/**
|
78
|
+
If YES, image view will use the imageCache to control loading. This
|
79
|
+
setting is generally preferred.
|
80
|
+
|
81
|
+
@property {String}
|
82
|
+
*/
|
83
|
+
useImageCache: YES,
|
84
|
+
|
85
|
+
/**
|
86
|
+
If YES, this image can load in the background. Otherwise, it is treated
|
87
|
+
as a foreground image. If the image is not visible on screen, it will
|
88
|
+
always be treated as a background image.
|
89
|
+
*/
|
90
|
+
canLoadInBackground: NO,
|
91
|
+
|
92
|
+
displayProperties: 'status'.w(),
|
93
|
+
|
94
|
+
render: function(context, firstTime) {
|
95
|
+
// the image source is the value if the status is LOADED or blank
|
96
|
+
var status = this.get('status'), value = this.get('value');
|
97
|
+
|
98
|
+
if (status === SC.IMAGE_STATE_NONE && value) this._image_valueDidChange() ; // setup initial state
|
99
|
+
|
100
|
+
var src = (status === SC.IMAGE_STATE_LOADED) ? value : SC.BLANK_IMAGE_URL;
|
101
|
+
if (status === SC.IMAGE_STATE_SPRITE) context.addClass(value);
|
102
|
+
context.attr('src', src);
|
103
|
+
},
|
104
|
+
|
105
|
+
/** @private -
|
106
|
+
Whenever the value changes, update the image state and possibly schedule
|
107
|
+
an image to load.
|
108
|
+
*/
|
109
|
+
_image_valueDidChange: function() {
|
110
|
+
var value = this.get('value'), isUrl = SC.ImageView.valueIsUrl(value);
|
111
|
+
|
112
|
+
// if the old image is still loading, cancel it
|
113
|
+
// if (this._loadingUrl) SC.imageCache.abortImage(this._loadingUrl);
|
114
|
+
|
115
|
+
// now update local state as needed....
|
116
|
+
if (isUrl && this.get('useImageCache')) {
|
117
|
+
var isBackground = this.get('isVisibleInWindow') || this.get('canLoadInBackground');
|
118
|
+
|
119
|
+
this._loadingUrl = value ; // note that we're loading...
|
120
|
+
SC.imageCache.loadImage(value, this, this.imageDidLoad, isBackground);
|
121
|
+
|
122
|
+
// only mark us as loading if we are still loading...
|
123
|
+
if (this._loadingUrl) this.set('status', SC.IMAGE_STATE_LOADING);
|
124
|
+
|
125
|
+
// otherwise, just set state immediately
|
126
|
+
} else {
|
127
|
+
this._loadingUrl = null ; // not loading...
|
128
|
+
this.set('status', (isUrl) ? SC.IMAGE_STATE_LOADED : SC.IMAGE_STATE_SPRITE);
|
129
|
+
this.displayDidChange(); // call manually in case status did not change
|
130
|
+
// (e.g value changes from one sprite to another)
|
131
|
+
}
|
132
|
+
}.observes('value'),
|
133
|
+
|
134
|
+
/**
|
135
|
+
Called when the imageCache indicates that the image has loaded.
|
136
|
+
Changing the image state will update the display.
|
137
|
+
*/
|
138
|
+
imageDidLoad: function(url, imageOrError) {
|
139
|
+
if (url === this._loadingUrl) this._loadingUrl = null;
|
140
|
+
|
141
|
+
// do nothing if we get this notification by the value of the image has
|
142
|
+
// since changed.
|
143
|
+
if (this.get('value') === url) {
|
144
|
+
this.set('status', SC.$ok(imageOrError) ? SC.IMAGE_STATE_LOADED : SC.IMAGE_STATE_FAILED);
|
145
|
+
this.displayDidChange();
|
146
|
+
}
|
147
|
+
}
|
148
|
+
|
149
|
+
}) ;
|
150
|
+
|
151
|
+
/**
|
152
|
+
Returns YES if the passed value looks like an URL and not a CSS class
|
153
|
+
name.
|
154
|
+
*/
|
155
|
+
SC.ImageView.valueIsUrl = function(value) {
|
156
|
+
return value ? value.indexOf('/') >= 0 : NO ;
|
157
|
+
} ;
|
158
|
+
|
@@ -0,0 +1,261 @@
|
|
1
|
+
// ==========================================================================
|
2
|
+
// Project: SproutCore - JavaScript Application Framework
|
3
|
+
// Copyright: ©2006-2009 Sprout Systems, Inc. and contributors.
|
4
|
+
// Portions ©2008-2009 Apple, Inc. All rights reserved.
|
5
|
+
// License: Licened under MIT license (see license.js)
|
6
|
+
// ==========================================================================
|
7
|
+
|
8
|
+
sc_require('views/view') ;
|
9
|
+
sc_require('mixins/control') ;
|
10
|
+
|
11
|
+
SC.ALIGN_LEFT = 'left';
|
12
|
+
SC.ALIGN_RIGHT = 'right';
|
13
|
+
SC.ALIGN_CENTER = 'center';
|
14
|
+
|
15
|
+
SC.REGULAR_WEIGHT = 'normal';
|
16
|
+
SC.BOLD_WEIGHT = 'bold';
|
17
|
+
|
18
|
+
/**
|
19
|
+
@class
|
20
|
+
|
21
|
+
Displays a static string of text.
|
22
|
+
|
23
|
+
You use a label view anytime you need to display a static string of text
|
24
|
+
or to display text that may need to be edited using only an inline control.
|
25
|
+
|
26
|
+
@extends SC.View
|
27
|
+
@extends SC.Control
|
28
|
+
@extends SC.InlineEditorDelegate
|
29
|
+
@since SproutCore 1.0
|
30
|
+
*/
|
31
|
+
SC.LabelView = SC.View.extend(SC.Control,
|
32
|
+
/** @scope SC.LabelView.prototype */ {
|
33
|
+
|
34
|
+
classNames: ['sc-label-view'],
|
35
|
+
|
36
|
+
/**
|
37
|
+
Specify the font weight for this. You may pass SC.REGULAR_WEIGHT, or SC.BOLD_WEIGHT.
|
38
|
+
*/
|
39
|
+
fontWeight: SC.REGULAR_WEIGHT,
|
40
|
+
|
41
|
+
/**
|
42
|
+
If true, value will be escaped to avoid scripting attacks.
|
43
|
+
|
44
|
+
This is a default value that can be overridden by the
|
45
|
+
settings on the owner view.
|
46
|
+
*/
|
47
|
+
escapeHTML: true,
|
48
|
+
escapeHTMLBindingDefault: SC.Binding.oneWay().bool(),
|
49
|
+
|
50
|
+
/**
|
51
|
+
If true, then the value will be localized.
|
52
|
+
|
53
|
+
This is a default default that can be overidden by the
|
54
|
+
settings in the owner view.
|
55
|
+
*/
|
56
|
+
localize: false,
|
57
|
+
localizeBindingDefault: SC.Binding.oneWay().bool(),
|
58
|
+
|
59
|
+
/**
|
60
|
+
Set this to a validator or to a function and the value
|
61
|
+
will be passed through it before being set.
|
62
|
+
|
63
|
+
This is a default default that can be overidden by the
|
64
|
+
settings in the owner view.
|
65
|
+
*/
|
66
|
+
formatter: null,
|
67
|
+
|
68
|
+
/**
|
69
|
+
The value of the label.
|
70
|
+
|
71
|
+
You may also set the value using a content object and a contentValueKey.
|
72
|
+
|
73
|
+
@field {String}
|
74
|
+
*/
|
75
|
+
value: '',
|
76
|
+
|
77
|
+
/**
|
78
|
+
An optional icon to display to the left of the label. Set this value
|
79
|
+
to either a CSS class name (for spriting) or an image URL.
|
80
|
+
*/
|
81
|
+
icon: null,
|
82
|
+
|
83
|
+
/**
|
84
|
+
Set the alignment of the label view.
|
85
|
+
*/
|
86
|
+
textAlign: SC.ALIGN_LEFT,
|
87
|
+
|
88
|
+
/**
|
89
|
+
[RO] The value that will actually be displayed.
|
90
|
+
|
91
|
+
This property is dynamically computed by applying localization,
|
92
|
+
string conversion and other normalization utilities.
|
93
|
+
|
94
|
+
@field
|
95
|
+
*/
|
96
|
+
displayValue: function() {
|
97
|
+
var value = this.get('value') ;
|
98
|
+
|
99
|
+
// 1. apply the formatter
|
100
|
+
var formatter = this.getDelegateProperty(this.displayDelegate, 'formatter') ;
|
101
|
+
if (formatter) {
|
102
|
+
var formattedValue = (SC.typeOf(formatter) === SC.T_FUNCTION) ? formatter(value, this) : formatter.fieldValueForObject(value, this) ;
|
103
|
+
if (!SC.none(formattedValue)) value = formattedValue ;
|
104
|
+
}
|
105
|
+
|
106
|
+
// 2. If the returned value is an array, convert items to strings and
|
107
|
+
// join with commas.
|
108
|
+
if (SC.typeOf(value) === SC.T_ARRAY) {
|
109
|
+
var ary = [];
|
110
|
+
for(var idx=0;idx<value.get('length');idx++) {
|
111
|
+
var x = value.objectAt(idx) ;
|
112
|
+
if (!SC.none(x) && x.toString) x = x.toString() ;
|
113
|
+
ary.push(x) ;
|
114
|
+
}
|
115
|
+
value = ary.join(',') ;
|
116
|
+
}
|
117
|
+
|
118
|
+
// 3. If value is not a string, convert to string. (handles 0)
|
119
|
+
if (!SC.none(value) && value.toString) value = value.toString() ;
|
120
|
+
|
121
|
+
// 4. Localize
|
122
|
+
if (value && this.getDelegateProperty(this.displayDelegate, 'localize')) value = value.loc() ;
|
123
|
+
|
124
|
+
// 5. escapeHTML if needed
|
125
|
+
if (this.get('escapeHTML')) value = SC.RenderContext.escapeHTML(value);
|
126
|
+
|
127
|
+
return value ;
|
128
|
+
}.property('value', 'localize', 'formatter', 'escapeHTML').cacheable(),
|
129
|
+
|
130
|
+
/**
|
131
|
+
Enables editing using the inline editor.
|
132
|
+
*/
|
133
|
+
isEditable: NO,
|
134
|
+
isEditableBindingDefault: SC.Binding.bool(),
|
135
|
+
|
136
|
+
/**
|
137
|
+
YES if currently editing label view.
|
138
|
+
*/
|
139
|
+
isEditing: NO,
|
140
|
+
|
141
|
+
/**
|
142
|
+
Validator to use during inline editing.
|
143
|
+
|
144
|
+
If you have set isEditing to YES, then any validator you set on this
|
145
|
+
property will be used when the label view is put into edit mode.
|
146
|
+
|
147
|
+
@type {SC.Validator}
|
148
|
+
*/
|
149
|
+
validator: null,
|
150
|
+
|
151
|
+
/**
|
152
|
+
Event dispatcher callback.
|
153
|
+
If isEditable is set to true, opens the inline text editor view.
|
154
|
+
|
155
|
+
@param {DOMMouseEvent} evt DOM event
|
156
|
+
|
157
|
+
*/
|
158
|
+
doubleClick: function( evt ) { return this.beginEditing(); },
|
159
|
+
|
160
|
+
|
161
|
+
/**
|
162
|
+
Opens the inline text editor (closing it if it was already open for
|
163
|
+
another view).
|
164
|
+
|
165
|
+
@return {Boolean} YES if did begin editing
|
166
|
+
*/
|
167
|
+
beginEditing: function() {
|
168
|
+
if (this.get('isEditing')) return YES ;
|
169
|
+
if (!this.get('isEditable')) return NO ;
|
170
|
+
|
171
|
+
var value = this.get('value') || '' ;
|
172
|
+
var f = this.convertFrameToView(this.get('frame'), null) ;
|
173
|
+
var el = this.rootElement;
|
174
|
+
SC.InlineTextFieldView.beginEditing({
|
175
|
+
frame: f,
|
176
|
+
delegate: this,
|
177
|
+
exampleElement: el,
|
178
|
+
value: value,
|
179
|
+
multiline: NO,
|
180
|
+
validator: this.get('validator')
|
181
|
+
});
|
182
|
+
},
|
183
|
+
|
184
|
+
/**
|
185
|
+
Cancels the current inline editor and then exits editor.
|
186
|
+
|
187
|
+
@return {Boolean} NO if the editor could not exit.
|
188
|
+
*/
|
189
|
+
discardEditing: function() {
|
190
|
+
if (!this.get('isEditing')) return YES ;
|
191
|
+
return SC.InlineTextFieldView.discardEditing() ;
|
192
|
+
},
|
193
|
+
|
194
|
+
/**
|
195
|
+
Commits current inline editor and then exits editor.
|
196
|
+
|
197
|
+
@return {Boolean} NO if the editor could not exit
|
198
|
+
*/
|
199
|
+
commitEditing: function() {
|
200
|
+
if (!this.get('isEditing')) return YES ;
|
201
|
+
return SC.InlineTextFieldView.commitEditing() ;
|
202
|
+
},
|
203
|
+
|
204
|
+
/** @private
|
205
|
+
Set editing to true so edits will no longer be allowed.
|
206
|
+
*/
|
207
|
+
inlineEditorWillBeginEditing: function(inlineEditor) {
|
208
|
+
this.set('isEditing', YES);
|
209
|
+
},
|
210
|
+
|
211
|
+
/** @private
|
212
|
+
Hide the label view while the inline editor covers it.
|
213
|
+
*/
|
214
|
+
inlineEditorDidBeginEditing: function(inlineEditor) {
|
215
|
+
this._oldOpacity = this.$().css('opacity') ;
|
216
|
+
this.$().css('opacity', 0.0);
|
217
|
+
},
|
218
|
+
|
219
|
+
/** @private
|
220
|
+
Could check with a validator someday...
|
221
|
+
*/
|
222
|
+
inlineEditorShouldEndEditing: function(inlineEditor, finalValue) {
|
223
|
+
return YES ;
|
224
|
+
},
|
225
|
+
|
226
|
+
/** @private
|
227
|
+
Update the field value and make it visible again.
|
228
|
+
*/
|
229
|
+
inlineEditorDidEndEditing: function(inlineEditor, finalValue) {
|
230
|
+
this.setIfChanged('value', finalValue) ;
|
231
|
+
this.$().css('opacity', this._oldOpacity);
|
232
|
+
this._oldOpacity = null ;
|
233
|
+
this.set('isEditing', NO) ;
|
234
|
+
},
|
235
|
+
|
236
|
+
displayProperties: ['displayValue', 'textAlign', 'fontWeight', 'icon'],
|
237
|
+
|
238
|
+
render: function(context, firstTime) {
|
239
|
+
var value = this.get('displayValue');
|
240
|
+
var icon = this.get('icon') ;
|
241
|
+
|
242
|
+
// add icon if needed
|
243
|
+
if (icon) {
|
244
|
+
var url = (icon.indexOf('/')>=0) ? icon : static_url('blank');
|
245
|
+
var className = (url === icon) ? '' : icon ;
|
246
|
+
icon = '<img src="%@" alt="" class="icon %@" />'.fmt(url, className) ;
|
247
|
+
context.push(icon);
|
248
|
+
}
|
249
|
+
|
250
|
+
// add display value
|
251
|
+
context.push(value);
|
252
|
+
|
253
|
+
// and setup alignment and font-weight on styles
|
254
|
+
context.addStyle('text-align', this.get('textAlign'))
|
255
|
+
.addStyle('font-weight', this.get('fontWeight'));
|
256
|
+
|
257
|
+
// if we are editing, set the opacity to 0
|
258
|
+
if (this.get('isEditing')) context.addStyle('opacity', 0.0);
|
259
|
+
}
|
260
|
+
|
261
|
+
});
|