sproutit-sproutcore 1.0.0.20090416161445 → 1.0.0.20090720093355
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/Buildfile +4 -2
- data/frameworks/sproutcore/Buildfile +3 -2
- data/frameworks/sproutcore/README +2 -1
- data/frameworks/sproutcore/apps/docs/core.js +27 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Preview.pdf +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/data.plist +14378 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image10.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image11.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image13.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image14.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image8.png +0 -0
- data/frameworks/sproutcore/apps/docs/design/Doc Viewer.graffle/image9.tiff +0 -0
- data/frameworks/sproutcore/apps/docs/english.lproj/loading.rhtml +9 -0
- data/frameworks/sproutcore/apps/docs/english.lproj/main_page.js +22 -0
- data/frameworks/sproutcore/apps/{sc_jsdoc → docs}/english.lproj/strings.js +7 -7
- data/frameworks/sproutcore/apps/docs/main.js +30 -0
- data/frameworks/sproutcore/apps/tests/controllers/detail.js +16 -0
- data/frameworks/sproutcore/apps/tests/controllers/source.js +29 -0
- data/frameworks/sproutcore/apps/tests/controllers/target.js +26 -0
- data/frameworks/sproutcore/apps/tests/controllers/targets.js +65 -26
- data/frameworks/sproutcore/apps/tests/controllers/tests.js +14 -19
- data/frameworks/sproutcore/apps/tests/core.js +114 -16
- data/frameworks/sproutcore/apps/tests/data_source.js +96 -0
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.css +22 -2
- data/frameworks/sproutcore/apps/tests/english.lproj/main_page.js +168 -22
- data/frameworks/sproutcore/apps/tests/english.lproj/strings.js +14 -5
- data/frameworks/sproutcore/apps/tests/fixtures/target.js +81 -37
- data/frameworks/sproutcore/apps/tests/fixtures/test.js +38 -37
- data/frameworks/sproutcore/apps/tests/main.js +9 -20
- data/frameworks/sproutcore/apps/tests/models/target.js +74 -31
- data/frameworks/sproutcore/apps/tests/models/test.js +30 -2
- data/frameworks/sproutcore/{frameworks/desktop/mixins/collection_item.js → apps/tests/states/no_targets.js} +16 -12
- data/frameworks/sproutcore/apps/tests/states/ready.js +56 -0
- data/frameworks/sproutcore/apps/tests/states/ready_detail.js +41 -0
- data/frameworks/sproutcore/apps/tests/states/ready_empty.js +48 -0
- data/frameworks/sproutcore/apps/tests/states/ready_list.js +41 -0
- data/frameworks/sproutcore/apps/tests/states/ready_loading.js +44 -0
- data/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +31 -0
- data/frameworks/sproutcore/apps/tests/states/start.js +39 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/{test.js → detail.js} +3 -3
- data/frameworks/sproutcore/apps/tests/tests/controllers/source.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/target.js +15 -0
- data/frameworks/sproutcore/apps/tests/tests/controllers/targets.js +3 -3
- data/frameworks/sproutcore/apps/tests/tests/views/offset_checkbox.js +15 -0
- data/frameworks/sproutcore/apps/tests/views/offset_checkbox.js +26 -0
- data/frameworks/sproutcore/design/CollectionView State Charts.graffle +4848 -0
- data/frameworks/sproutcore/design/Design Charts.graffle +8788 -6375
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/QuickLook/Preview.pdf +0 -0
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/data.plist +1452 -0
- data/frameworks/sproutcore/design/SproutCore Design Template.graffle/image8.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/QuickLook/Preview.pdf +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/QuickLook/Thumbnail.tiff +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/data.plist +24187 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image10.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image11.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image13.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image15.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image16.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image17.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image18.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image19.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image22.tiff +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image23.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image24.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image25.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image30.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image31.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image8.png +0 -0
- data/frameworks/sproutcore/design/TestRunner Design.graffle/image9.png +0 -0
- data/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +2 -2
- data/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +66 -49
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +146 -31
- data/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures_with_queries.js +238 -0
- data/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +27 -11
- data/frameworks/sproutcore/frameworks/datastore/models/record.js +163 -32
- data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +67 -5
- data/frameworks/sproutcore/frameworks/datastore/system/many_array.js +157 -0
- data/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +202 -19
- data/frameworks/sproutcore/frameworks/datastore/system/query.js +929 -78
- data/frameworks/sproutcore/frameworks/datastore/system/record_array.js +143 -5
- data/frameworks/sproutcore/frameworks/datastore/system/store.js +443 -125
- data/frameworks/sproutcore/frameworks/datastore/tests/data_sources/fixtures.js +38 -3
- data/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +94 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/core_methods.js +30 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record/normalize.js +238 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +105 -16
- data/frameworks/sproutcore/frameworks/datastore/tests/system/many_array/core_methods.js +178 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/chain.js +1 -1
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChanges.js +9 -8
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +6 -6
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/dataHashDidChange.js +6 -6
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/discardChanges.js +3 -3
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +7 -7
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readEditableDataHash.js +4 -4
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/removeDataHash.js +7 -7
- data/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/writeDataHash.js +7 -7
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare_records.js +126 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +165 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation_of_records.js +82 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/find_all.js +362 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/parsing.js +170 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/record_type_is.js +43 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_comparisons.js +60 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/query/registered_query_extensions.js +67 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +2 -13
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +3 -4
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/core_methods.js +73 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/createRecord.js +15 -0
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/dataSourceCallbacks.js +4 -2
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/destroyRecord.js +1 -1
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +2 -2
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/recordDidChange.js +1 -1
- data/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js +2 -2
- data/frameworks/sproutcore/frameworks/debug/core.js +60 -0
- data/frameworks/sproutcore/frameworks/deprecated/core.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/server/server.js +0 -1
- data/frameworks/sproutcore/frameworks/deprecated/system/browser.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/classic_responder.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/event.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/misc.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/object.js +0 -2
- data/frameworks/sproutcore/frameworks/deprecated/system/path_module.js +0 -1
- data/frameworks/sproutcore/frameworks/deprecated/system/string.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/coders/design.js +1 -2
- data/frameworks/sproutcore/frameworks/designer/coders/localization.js +1 -2
- data/frameworks/sproutcore/frameworks/designer/coders/object.js +1 -1
- data/frameworks/sproutcore/frameworks/designer/controllers/page_design.js +1 -1
- data/frameworks/sproutcore/frameworks/designer/ext/page.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/ext/view.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/views/controls/button.js +2 -3
- data/frameworks/sproutcore/frameworks/designer/views/designer.js +24 -8
- data/frameworks/sproutcore/frameworks/designer/views/label.js +1 -2
- data/frameworks/sproutcore/frameworks/designer/views/mixins/button.js +0 -2
- data/frameworks/sproutcore/frameworks/designer/views/tab.js +1 -2
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +2 -2
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/drag.css +6 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css +63 -10
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +5 -4
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/modal.css +5 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +1 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/slider.css +5 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/split_divider.css +1 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css +1 -1
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +61 -0
- data/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +136 -79
- data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +55 -24
- data/frameworks/sproutcore/frameworks/desktop/panes/menu.js +295 -147
- data/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/panes/panel.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +18 -20
- data/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +2 -2
- data/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +4 -4
- data/frameworks/sproutcore/frameworks/desktop/system/drag.js +337 -231
- data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +3 -3
- data/frameworks/sproutcore/frameworks/desktop/tests/integration/dialog.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +2 -2
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/methods.js +46 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +4 -2
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/palette/ui.js +5 -6
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +11 -11
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/picker/ui.js +11 -7
- data/frameworks/sproutcore/frameworks/desktop/tests/panes/sheet/ui.js +9 -9
- data/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +19 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +0 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/content.js +249 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deleteSelection.js +82 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/deselect.js +199 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/itemViewForContentIndex.js +288 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/layerIdFor.js +65 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/length.js +88 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/mouse.js +165 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/nowShowing.js +121 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +177 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/select.js +240 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectNextItem.js +191 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selectPreviousItem.js +197 -39
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/selection.js +141 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/ui_diagram.js +182 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +183 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js +133 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js +132 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js +56 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +167 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js +127 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +30 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/menu_item/ui.js +8 -8
- data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +9 -9
- data/frameworks/sproutcore/frameworks/desktop/tests/views/scroller/methods.js +45 -6
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +2 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +17 -1
- data/frameworks/sproutcore/frameworks/desktop/tests/views/select_field/ui.js +44 -29
- data/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +231 -0
- data/frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js +1 -1
- data/frameworks/sproutcore/frameworks/desktop/views/button.js +15 -4
- data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +8 -1
- data/frameworks/sproutcore/frameworks/desktop/views/collection.js +1739 -1123
- data/frameworks/sproutcore/frameworks/desktop/views/form.js +0 -1
- data/frameworks/sproutcore/frameworks/desktop/views/grid.js +13 -11
- data/frameworks/sproutcore/frameworks/desktop/views/list.js +405 -571
- data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +211 -74
- data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +319 -169
- data/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +57 -51
- data/frameworks/sproutcore/frameworks/desktop/views/progress.js +2 -2
- data/frameworks/sproutcore/frameworks/desktop/views/scene.js +150 -2
- data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +92 -50
- data/frameworks/sproutcore/frameworks/desktop/views/scroller.js +86 -63
- data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +38 -22
- data/frameworks/sproutcore/frameworks/desktop/views/select_field.js +51 -12
- data/frameworks/sproutcore/frameworks/desktop/views/slider.js +2 -0
- data/frameworks/sproutcore/frameworks/desktop/views/source_list.js +17 -1087
- data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +3 -3
- data/frameworks/sproutcore/frameworks/desktop/views/split.js +35 -9
- data/frameworks/sproutcore/frameworks/desktop/views/stacked.js +101 -0
- data/frameworks/sproutcore/frameworks/desktop/views/tab.js +23 -22
- data/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/controllers/array.js +382 -363
- data/frameworks/sproutcore/frameworks/foundation/controllers/controller.js +7 -279
- data/frameworks/sproutcore/frameworks/foundation/controllers/object.js +212 -310
- data/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +109 -0
- data/frameworks/sproutcore/frameworks/foundation/core.js +25 -0
- data/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +30 -8
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +19 -4
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/core.css +219 -3
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/debug/control-test-pane.css +1 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/label.css +30 -0
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/strings.js +15 -0
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/english.lproj/text_field.css +19 -3
- data/frameworks/sproutcore/frameworks/foundation/english.lproj/view.css +6 -1
- data/frameworks/sproutcore/frameworks/foundation/license.js +19 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +15 -7
- data/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +171 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/control.js +5 -5
- data/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +462 -0
- data/frameworks/sproutcore/frameworks/foundation/mixins/selection_support.js +162 -84
- data/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +33 -2
- data/frameworks/sproutcore/frameworks/foundation/mixins/string.js +17 -3
- data/frameworks/sproutcore/frameworks/foundation/mixins/tree_item_content.js +159 -0
- data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +49 -20
- data/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +887 -0
- data/frameworks/sproutcore/frameworks/foundation/system/application.js +36 -0
- data/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +310 -62
- data/frameworks/sproutcore/frameworks/foundation/system/datetime.js +729 -0
- data/frameworks/sproutcore/frameworks/foundation/system/event.js +57 -21
- data/frameworks/sproutcore/frameworks/foundation/system/ready.js +11 -5
- data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +55 -16
- data/frameworks/sproutcore/frameworks/foundation/system/request.js +152 -27
- data/frameworks/sproutcore/frameworks/foundation/system/responder.js +120 -0
- data/frameworks/sproutcore/frameworks/foundation/system/responder_context.js +243 -0
- data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +29 -6
- data/frameworks/sproutcore/frameworks/foundation/system/routes.js +143 -102
- data/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +9 -2
- data/frameworks/sproutcore/frameworks/foundation/system/utils.js +104 -9
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/array_case.js +182 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/enum_case.js +193 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/null_case.js +64 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array/single_case.js +136 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/empty_case.js +82 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/multiple_case.js +111 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_case.js +193 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object/single_enumerable_case.js +179 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/tree/outline_case.js +108 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/button/keyEquivalents.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/staticLayout.js +128 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/mixins/string.js +17 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/flat_case.js +325 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/group_case.js +718 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/private/tree_item_observer/outline_case.js +484 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +28 -28
- data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_selector.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/datetime.js +151 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/get.js +2 -2
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_attr.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_basic.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_className.js +12 -12
- data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/helpers_style.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +52 -14
- data/frameworks/sproutcore/frameworks/foundation/tests/system/root_responder/root_responder.js +27 -23
- data/frameworks/sproutcore/frameworks/foundation/tests/system/timer/schedule.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/validators/date.js +12 -10
- data/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +148 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/pane/append_remove.js +1 -1
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/tests/views/text_field/methods.js +0 -0
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/tests/views/text_field/ui.js +53 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/clippingFrame.js +1 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/convertFrames.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/createChildViews.js +35 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/findLayerInParentLayer.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisible.js +51 -0
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/isVisibleInWindow.js +12 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/layoutStyle.js +83 -3
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/prepareContext.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +4 -0
- data/frameworks/sproutcore/frameworks/foundation/views/container.js +1 -1
- data/frameworks/sproutcore/frameworks/foundation/views/field.js +27 -16
- data/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -1
- data/frameworks/sproutcore/frameworks/foundation/views/label.js +16 -6
- data/frameworks/sproutcore/frameworks/{desktop → foundation}/views/text_field.js +39 -15
- data/frameworks/sproutcore/frameworks/foundation/views/view.js +328 -83
- data/frameworks/sproutcore/frameworks/runtime/README +1 -0
- data/frameworks/sproutcore/frameworks/runtime/core.js +110 -31
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +238 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/indexOf.js +33 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/insertAt.js +121 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/objectAt.js +34 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/popObject.js +50 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/pushObject.js +46 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/rangeObserver.js +371 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeAt.js +100 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/removeObject.js +49 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +94 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/shiftObject.js +50 -0
- data/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/unshiftObject.js +47 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/array.js +320 -110
- data/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +64 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/delegate_support.js +44 -6
- data/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +142 -77
- data/frameworks/sproutcore/frameworks/runtime/mixins/freezable.js +104 -0
- data/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +298 -142
- data/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +17 -11
- data/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +55 -15
- data/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +29 -5
- data/frameworks/sproutcore/frameworks/runtime/protocols/observable_protocol.js +40 -0
- data/frameworks/sproutcore/frameworks/runtime/system/binding.js +39 -15
- data/frameworks/sproutcore/frameworks/runtime/system/index_set.js +1166 -0
- data/frameworks/sproutcore/frameworks/runtime/system/object.js +33 -15
- data/frameworks/sproutcore/frameworks/runtime/system/range_observer.js +201 -35
- data/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +42 -15
- data/frameworks/sproutcore/frameworks/runtime/system/selection_set.js +649 -0
- data/frameworks/sproutcore/frameworks/runtime/system/set.js +183 -54
- data/frameworks/sproutcore/frameworks/runtime/system/sparse_array.js +20 -11
- data/frameworks/sproutcore/frameworks/runtime/tests/core/clone.js +2 -2
- data/frameworks/sproutcore/frameworks/runtime/tests/core/compare.js +44 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/console.js +16 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/core/keys.js +1 -1
- data/frameworks/sproutcore/frameworks/runtime/tests/core/makeArray.js +1 -1
- data/frameworks/sproutcore/frameworks/runtime/tests/core/objectForPropertyPath.js +5 -5
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +57 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable.js +21 -2
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +249 -129
- data/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +11 -2
- data/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js +55 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +81 -6
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js +195 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/clone.js +43 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/contains.js +74 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/create.js +42 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexAfter.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/indexBefore.js +38 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/intersects.js +74 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/max.js +40 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/min.js +40 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +36 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +189 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/without.js +89 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/object/base.js +1 -1
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/create.js +59 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/destroy.js +75 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/objectPropertyDidChange.js +117 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/rangeDidChange.js +110 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/range_observer/update.js +65 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +3 -3
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/add.js +92 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/copy.js +17 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/indexSetForSource.js +85 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/isEqual.js +60 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/selection_set/remove.js +87 -0
- data/frameworks/sproutcore/frameworks/runtime/tests/system/set.js +4 -25
- data/frameworks/sproutcore/frameworks/runtime/tests/system/sparse_array.js +39 -1
- data/frameworks/sproutcore/frameworks/testing/core.js +183 -0
- data/frameworks/sproutcore/frameworks/testing/english.lproj/runner.css +126 -0
- data/frameworks/sproutcore/frameworks/testing/extras.js +0 -26
- data/frameworks/sproutcore/frameworks/testing/qunit.js +33 -25
- data/frameworks/sproutcore/frameworks/testing/system/dump.js +205 -0
- data/frameworks/sproutcore/frameworks/testing/system/equiv.js +201 -0
- data/frameworks/sproutcore/frameworks/testing/system/plan.js +691 -0
- data/frameworks/sproutcore/frameworks/testing/system/runner.js +209 -0
- data/frameworks/sproutcore/frameworks/testing/system/suite.js +228 -0
- data/frameworks/sproutcore/frameworks/testing/utils.js +8 -1
- data/frameworks/sproutcore/lib/index.rhtml +4 -1
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/100.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/102.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/110.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/120.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/127.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/24.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/26.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/27.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/28.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/29.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/30.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/31.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/33.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/37.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/41.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/16/99.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/100.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/102.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/110.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/120.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/127.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/24.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/26.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/27.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/28.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/29.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/30.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/31.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/33.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/37.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/41.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/24/99.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/100.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/102.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/110.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/120.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/127.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/24.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/26.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/27.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/28.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/29.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/30.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/31.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/33.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/37.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/41.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/32/99.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/10.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/18.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/19.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/icons/48/2.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-repeat-x-2.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-repeat-x.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-sprite.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sc-theme-ysprite.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/shared-icons.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sproutcore-logo.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/Source/sticky-note.psd +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/button.css +191 -193
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/checkbox.css +11 -10
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/collection.css +85 -4
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/core.css +15 -2
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/images/sc-theme-repeat-x.png +0 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/label.css +0 -26
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/list_item.css +30 -0
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/progress.css +9 -6
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/radio.css +20 -11
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/segmented.css +192 -54
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/slider.css +56 -24
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/tab.css +13 -7
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/text_field.css +1 -4
- data/frameworks/sproutcore/themes/standard_theme/english.lproj/toolbar.css +4 -1
- data/lib/sproutcore/builders/minify.rb +2 -2
- data/lib/sproutcore/builders/test.rb +1 -1
- data/lib/sproutcore/buildfile.rb +1 -0
- data/lib/sproutcore/rack/dev.rb +1 -1
- data/lib/sproutcore/rack/filesystem.rb +265 -0
- data/lib/sproutcore/rack/proxy.rb +11 -3
- data/lib/sproutcore/rack/service.rb +11 -1
- data/lib/sproutcore/tools.rb +11 -1
- data/lib/sproutcore/tools/server.rb +6 -4
- data/vendor/jsdoc/README.txt +151 -0
- data/vendor/jsdoc/changes.txt +47 -0
- metadata +263 -308
- data/frameworks/sproutcore/apps/sc_jsdoc/controllers/docs.js +0 -149
- data/frameworks/sproutcore/apps/sc_jsdoc/core.js +0 -16
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.css +0 -17
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/body.js +0 -99
- data/frameworks/sproutcore/apps/sc_jsdoc/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_jsdoc/main.js +0 -27
- data/frameworks/sproutcore/apps/sc_jsdoc/models/doc.js +0 -21
- data/frameworks/sproutcore/apps/sc_qunit/controllers/runner.js +0 -209
- data/frameworks/sproutcore/apps/sc_qunit/core.js +0 -16
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.css +0 -17
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/body.js +0 -107
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/images/sproutcore-logo.png +0 -0
- data/frameworks/sproutcore/apps/sc_qunit/english.lproj/strings.js +0 -15
- data/frameworks/sproutcore/apps/sc_qunit/main.js +0 -18
- data/frameworks/sproutcore/apps/sc_qunit/models/test.js +0 -24
- data/frameworks/sproutcore/apps/sc_qunit/views/test_iframe.js +0 -52
- data/frameworks/sproutcore/apps/tests/controllers/test.js +0 -20
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/blank.gif +0 -0
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css +0 -83
- data/frameworks/sproutcore/frameworks/desktop/english.lproj/palette.css +0 -3
- data/frameworks/sproutcore/frameworks/desktop/tests/views/collection/methods.js +0 -10
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/methods.js +0 -10
- data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui.js +0 -110
- data/frameworks/sproutcore/frameworks/foundation/mixins/responder.js +0 -156
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/array.js +0 -118
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/controller.js +0 -268
- data/frameworks/sproutcore/frameworks/foundation/tests/controllers/object.js +0 -433
- data/frameworks/sproutcore/frameworks/runtime/tests/system/array.js +0 -263
- data/frameworks/sproutcore/frameworks/testing/tests/debug/qunit.js +0 -25
- data/spec/buildtasks/manifest/spec_helper.rb +0 -35
- data/spec/buildtasks/target_spec.rb +0 -214
- data/spec/fixtures/builder_tests/Buildfile +0 -15
- data/spec/fixtures/builder_tests/apps/combine_test/a.js +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/b.js +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/c.js +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/a.css +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/b.css +0 -1
- data/spec/fixtures/builder_tests/apps/combine_test/english.lproj/c.css +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/bar1_sample.rhtml +0 -2
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/erb_sample.html.erb +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/icons/image.png +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/image.jpg +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/rhtml_sample.rhtml +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/strings.js +0 -4
- data/spec/fixtures/builder_tests/apps/html_test/english.lproj/style.css +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/french.lproj/french-icons/fr.png +0 -0
- data/spec/fixtures/builder_tests/apps/html_test/french.lproj/strings.js +0 -4
- data/spec/fixtures/builder_tests/apps/html_test/lib/layout_template.rhtml +0 -1
- data/spec/fixtures/builder_tests/apps/html_test/scripts.js +0 -0
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_static.js +0 -15
- data/spec/fixtures/builder_tests/apps/javascript_test/sc_super.js +0 -4
- data/spec/fixtures/builder_tests/apps/javascript_test/strings.js +0 -7
- data/spec/fixtures/builder_tests/apps/sass_test/sample.sass +0 -3
- data/spec/fixtures/builder_tests/apps/strings_test/lproj/strings.js +0 -8
- data/spec/fixtures/builder_tests/apps/stylesheet_test/build_directives.css +0 -9
- data/spec/fixtures/builder_tests/apps/stylesheet_test/sc_static.css +0 -12
- data/spec/fixtures/builder_tests/apps/test_test/lib/alt_layout.rhtml +0 -1
- data/spec/fixtures/builder_tests/apps/test_test/lib/test_layout.rhtml +0 -3
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test.js +0 -1
- data/spec/fixtures/builder_tests/apps/test_test/tests/qunit_test2.js +0 -1
- data/spec/fixtures/builder_tests/apps/test_test/tests/rhtml_test.rhtml +0 -4
- data/spec/fixtures/builder_tests/frameworks/debug/core.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/debug/english.lproj/dummy.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/qunit/core.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/qunit/english.lproj/dummy.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/strings.js +0 -4
- data/spec/fixtures/builder_tests/frameworks/req_target_1/english.lproj/test.rhtml +0 -1
- data/spec/fixtures/builder_tests/frameworks/req_target_1/req_js_1.js +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/req_style_2.css +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/english.lproj/test.rhtml +0 -1
- data/spec/fixtures/builder_tests/frameworks/req_target_2/javascript.js +0 -1
- data/spec/fixtures/builder_tests/frameworks/req_target_2/lib/alt_layout.rhtml +0 -0
- data/spec/fixtures/builder_tests/frameworks/req_target_2/req_js_2.js +0 -0
- data/spec/fixtures/builder_tests/themes/sample_theme/Buildfile +0 -1
- data/spec/fixtures/buildfiles/basic/Buildfile +0 -16
- data/spec/fixtures/buildfiles/basic/task_module.rake +0 -6
- data/spec/fixtures/buildfiles/installed/Buildfile +0 -7
- data/spec/fixtures/buildfiles/installed/Buildfile2 +0 -5
- data/spec/fixtures/buildfiles/project_test/Buildfile +0 -4
- data/spec/fixtures/buildfiles/project_test/not_project/Buildfile +0 -2
- data/spec/fixtures/buildfiles/project_test/not_project/child/PLACEHOLDER +0 -0
- data/spec/fixtures/entry_for_project/Buildfile +0 -1
- data/spec/fixtures/entry_for_project/apps/test_app/frameworks/nested/PLACEHOLDER +0 -0
- data/spec/fixtures/entry_for_project/frameworks/shared/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/Buildfile +0 -8
- data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/bars/bar2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/bars/bar1/foos/foo2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/Buildfile +0 -5
- data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/custom_foodir/foo2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/custom_foos/foos/not_foo1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/custom/foos/foo1/bars/bar2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/nested/Buildfile +0 -8
- data/spec/fixtures/find_targets/nested/apps/app1/Buildfile +0 -1
- data/spec/fixtures/find_targets/nested/apps/app1/apps/nested_app/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/Apps/app1/frameworks/framework2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/clients/client1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/frameworks/framework1/frameworks/framework1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/frameworks/framework2/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/themes/theme1/PLACEHOLDER +0 -0
- data/spec/fixtures/find_targets/standard/themes/theme2/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/English.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/FreNCH.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/caps_long_names/UnknOWN.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/english.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/french.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/german.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/italian.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/japanese.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/spanish.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/long_names/unknown.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/no_names/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/de.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-CA.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-GB.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en-US.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/en.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/es.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/foo.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/fr.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/it.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/languages/apps/short_names/ja.lproj/PLACEHOLDER +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/1.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/B.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/a.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/a/a.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/a/b.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/b/a.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/c.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/core.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/B.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/a/b.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/b/a.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/english.lproj/c.css +0 -0
- data/spec/fixtures/ordered_entries/apps/no_requires/lproj/strings.js +0 -1
- data/spec/fixtures/ordered_entries/apps/no_requires/utils.js +0 -1
- data/spec/fixtures/ordered_entries/apps/with_requires/a.js +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/b.js +0 -3
- data/spec/fixtures/ordered_entries/apps/with_requires/c.js +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/a.css +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/b.css +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/c.css +0 -2
- data/spec/fixtures/ordered_entries/apps/with_requires/english.lproj/d.js +0 -1
- data/spec/fixtures/real_world/Buildfile +0 -12
- data/spec/fixtures/real_world/apps/account/README +0 -1
- data/spec/fixtures/real_world/apps/calendar/README +0 -1
- data/spec/fixtures/real_world/apps/contacts/README_BEFORE_EDITING +0 -1
- data/spec/fixtures/real_world/apps/files/README +0 -1
- data/spec/fixtures/real_world/apps/mail/README +0 -1
- data/spec/fixtures/real_world/apps/mobile_photos/README +0 -1
- data/spec/fixtures/real_world/apps/photos/README +0 -1
- data/spec/fixtures/real_world/apps/uploader/README +0 -1
- data/spec/fixtures/real_world/frameworks/core_files/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/core_photos/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/shared/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/Buildfile +0 -26
- data/spec/fixtures/real_world/frameworks/sproutcore/README +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/apps/docs/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/apps/test_runner/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/core.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/debug/debug-resource.html +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/debug/sample_debug.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/demo2.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/debug/sample_debug-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.css +0 -4
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo.html +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/demo2.sass +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.haml +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.html.erb +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/file_extension_test.rhtml +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/fixtures/sample_fixtures-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/has_require.css +0 -4
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_require.css +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/no_sc_resource.rhtml +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/protocols/sample-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.css +0 -6
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/sc_resource.rhtml +0 -3
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/strings.js +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/english.lproj/tests/sample-loc.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample-json-fixture.json +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/fixtures/sample_fixtures.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/application/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/costello/core.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/data_store/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/debug/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/desktop/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/empty_theme/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/foundation/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/mobile/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/qunit/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/frameworks/uploader/PLACEHOLDER +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/french-resource.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/french.lproj/strings.js +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/german-resource.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/german.lproj/strings.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/has_require.js +0 -4
- data/spec/fixtures/real_world/frameworks/sproutcore/lib/index.html +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/no_require.js +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/protocols/sample.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/sc_resource.js +0 -6
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample1.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/nested/sample2.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.js +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/tests/sample.rhtml +0 -1
- data/spec/fixtures/real_world/frameworks/sproutcore/themes/standard_theme/README +0 -0
- data/spec/fixtures/real_world/frameworks/sproutcore/views/view.js +0 -1
- data/spec/fixtures/real_world/generators/sample_custom/Buildfile +0 -0
- data/spec/fixtures/real_world/generators/sample_custom/templates/{filename}.js +0 -1
- data/spec/fixtures/recursive_project/Buildfile +0 -8
- data/spec/fixtures/recursive_project/frameworks/sproutcore/frameworks/costello/PLACEHOLDER +0 -0
- data/spec/lib/builders/combine_spec.rb +0 -67
- data/spec/lib/builders/html_spec.rb +0 -577
- data/spec/lib/builders/javascript_spec.rb +0 -81
- data/spec/lib/builders/sass_spec.rb +0 -43
- data/spec/lib/builders/spec_helper.rb +0 -30
- data/spec/lib/builders/strings_spec.rb +0 -52
- data/spec/lib/builders/stylesheet_spec.rb +0 -63
- data/spec/lib/builders/test_index_spec.rb +0 -44
- data/spec/lib/builders/test_spec.rb +0 -135
- data/spec/lib/buildfile/config_for_spec.rb +0 -81
- data/spec/lib/buildfile/define_spec.rb +0 -59
- data/spec/lib/buildfile/dup_spec.rb +0 -65
- data/spec/lib/buildfile/invoke_spec.rb +0 -130
- data/spec/lib/buildfile/load_spec.rb +0 -49
- data/spec/lib/buildfile/task/dup_spec.rb +0 -55
- data/spec/lib/buildfile/task_defined_spec.rb +0 -17
- data/spec/lib/buildfile_commands/build_task_spec.rb +0 -19
- data/spec/lib/buildfile_commands/config_spec.rb +0 -97
- data/spec/lib/buildfile_commands/import_spec.rb +0 -17
- data/spec/lib/buildfile_commands/namespace_spec.rb +0 -18
- data/spec/lib/buildfile_commands/proxies_spec.rb +0 -38
- data/spec/lib/buildfile_commands/replace_task_spec.rb +0 -29
- data/spec/lib/buildfile_commands/task_spec.rb +0 -36
- data/spec/lib/helpers/packing_optimizer/optimize_spec.rb +0 -26
- data/spec/lib/models/hash_struct/deep_clone_spec.rb +0 -27
- data/spec/lib/models/hash_struct/has_options_spec.rb +0 -32
- data/spec/lib/models/hash_struct/hash_spec.rb +0 -64
- data/spec/lib/models/hash_struct/merge_spec.rb +0 -26
- data/spec/lib/models/hash_struct/method_missing.rb +0 -41
- data/spec/lib/models/manifest/add_entry_spec.rb +0 -36
- data/spec/lib/models/manifest/add_transform_spec.rb +0 -90
- data/spec/lib/models/manifest/build_spec.rb +0 -78
- data/spec/lib/models/manifest/entry_for_spec.rb +0 -94
- data/spec/lib/models/manifest/find_entry.rb +0 -84
- data/spec/lib/models/manifest/prepare_spec.rb +0 -62
- data/spec/lib/models/manifest_entry/cacheable_url_spec.rb +0 -31
- data/spec/lib/models/manifest_entry/prepare_spec.rb +0 -54
- data/spec/lib/models/project/add_target_spec.rb +0 -44
- data/spec/lib/models/project/buildfile_spec.rb +0 -35
- data/spec/lib/models/project/find_targets_for_spec.rb +0 -77
- data/spec/lib/models/project/load_nearest_project_spec.rb +0 -23
- data/spec/lib/models/project/target_for_spec.rb +0 -33
- data/spec/lib/models/project/targets_spec.rb +0 -62
- data/spec/lib/models/target/compute_build_number_spec.rb +0 -125
- data/spec/lib/models/target/config_spec.rb +0 -30
- data/spec/lib/models/target/expand_required_targets_spec.rb +0 -48
- data/spec/lib/models/target/installed_languages_spec.rb +0 -47
- data/spec/lib/models/target/lproj_for_spec.rb +0 -38
- data/spec/lib/models/target/manifest_for_spec.rb +0 -42
- data/spec/lib/models/target/parent_target_spec.rb +0 -21
- data/spec/lib/models/target/prepare_spec.rb +0 -53
- data/spec/lib/models/target/required_targets_spec.rb +0 -119
- data/spec/lib/models/target/target_for_spec.rb +0 -56
- data/spec/lib/tools/build_number_spec.rb +0 -28
- data/spec/lib/tools/gen_spec.rb +0 -207
- data/spec/lib/tools/tools_spec.rb +0 -78
- data/spec/spec_helper.rb +0 -138
- data/vendor/github_gem_lint.rb +0 -22
- data/vendor/yui-compressor/yuicompressor-2.4.2.jar +0 -0
@@ -47,7 +47,7 @@ SC.PalettePane = SC.PanelPane.extend({
|
|
47
47
|
|
48
48
|
/** @private - drag&drop palette to new position. */
|
49
49
|
mouseDown: function(evt) {
|
50
|
-
var f=this.get(
|
50
|
+
var f=this.get('frame');
|
51
51
|
this._mouseOffsetX = f ? (f.x - evt.pageX) : 0;
|
52
52
|
this._mouseOffsetY = f ? (f.y - evt.pageY) : 0;
|
53
53
|
},
|
@@ -35,8 +35,8 @@ SC.POINTER_LAYOUT = ["perfectRight", "perfectLeft", "perfectTop", "perfectBottom
|
|
35
35
|
|
36
36
|
{{{
|
37
37
|
SC.PickerPane.create({
|
38
|
+
layout: { width: 400, height: 200 },
|
38
39
|
contentView: SC.View.extend({
|
39
|
-
layout: { width: 400, height: 200 }
|
40
40
|
})
|
41
41
|
}).popup(anchor);
|
42
42
|
}}}
|
@@ -52,37 +52,37 @@ SC.POINTER_LAYOUT = ["perfectRight", "perfectLeft", "perfectTop", "perfectBottom
|
|
52
52
|
|
53
53
|
1. default:
|
54
54
|
{{{
|
55
|
-
SC.PickerPane.create({
|
55
|
+
SC.PickerPane.create({layout: { width: 400, height: 200 },contentView: SC.View.extend({})
|
56
56
|
}).popup(anchor);
|
57
57
|
}}}
|
58
58
|
|
59
59
|
2. menu below the anchor with default offset matrix [1,4,3]:
|
60
60
|
{{{
|
61
|
-
SC.PickerPane.create({
|
61
|
+
SC.PickerPane.create({layout: { width: 400, height: 200 },contentView: SC.View.extend({})
|
62
62
|
}).popup(anchor, SC.PICKER_MENU);
|
63
63
|
}}}
|
64
64
|
|
65
65
|
3. menu on the right side of anchor with custom offset matrix [2,6,0]:
|
66
66
|
{{{
|
67
|
-
SC.PickerPane.create({
|
67
|
+
SC.PickerPane.create({layout: { width: 400, height: 200 },contentView: SC.View.extend({})
|
68
68
|
}).popup(anchor, SC.PICKER_MENU, [2,6,0]);
|
69
69
|
}}}
|
70
70
|
|
71
71
|
4. fixed below the anchor with default offset matrix [1,4,3]:
|
72
72
|
{{{
|
73
|
-
SC.PickerPane.create({
|
73
|
+
SC.PickerPane.create({layout: { width: 400, height: 200 },contentView: SC.View.extend({})
|
74
74
|
}).popup(anchor, SC.PICKER_FIXED);
|
75
75
|
}}}
|
76
76
|
|
77
77
|
5. fixed on the right side of anchor with custom offset matrix [-22,-17,0]:
|
78
78
|
{{{
|
79
|
-
SC.PickerPane.create({
|
79
|
+
SC.PickerPane.create({layout: { width: 400, height: 200 },contentView: SC.View.extend({})
|
80
80
|
}).popup(anchor, SC.PICKER_FIXED, [-22,-17,0]);
|
81
81
|
}}}
|
82
82
|
|
83
83
|
6. pointer with default position pref matrix [0,1,2,3,2]:
|
84
84
|
{{{
|
85
|
-
SC.PickerPane.create({
|
85
|
+
SC.PickerPane.create({layout: { width: 400, height: 200 },contentView: SC.View.extend({})
|
86
86
|
}).popup(anchor, SC.PICKER_POINTER);
|
87
87
|
}}}
|
88
88
|
perfect right (0) > perfect left (1) > perfect top (2) > perfect bottom (3)
|
@@ -90,7 +90,7 @@ SC.POINTER_LAYOUT = ["perfectRight", "perfectLeft", "perfectTop", "perfectBottom
|
|
90
90
|
|
91
91
|
7. pointer with custom position pref matrix [3,0,1,2,2]:
|
92
92
|
{{{
|
93
|
-
SC.PickerPane.create({
|
93
|
+
SC.PickerPane.create({layout: { width: 400, height: 200 },contentView: SC.View.extend({})
|
94
94
|
}).popup(anchor, SC.PICKER_POINTER, [3,0,1,2,2]);
|
95
95
|
}}}
|
96
96
|
|
@@ -133,9 +133,9 @@ SC.PickerPane = SC.PalettePane.extend({
|
|
133
133
|
preferMatrix: null,
|
134
134
|
|
135
135
|
/**
|
136
|
-
Displays a new picker pane according to the passed parameters.
|
137
|
-
Every parameter except for the anchorViewOrElement is optional.
|
138
|
-
|
136
|
+
Displays a new picker pane according to the passed parameters.
|
137
|
+
Every parameter except for the anchorViewOrElement is optional.
|
138
|
+
|
139
139
|
@param {Object} anchorViewOrElement view or element to anchor to
|
140
140
|
@param {String} preferType optional apply picker position rule
|
141
141
|
@param {Array} preferMatrix optional apply custom offset or position pref matrix for specific preferType
|
@@ -143,15 +143,13 @@ SC.PickerPane = SC.PalettePane.extend({
|
|
143
143
|
*/
|
144
144
|
popup: function(anchorViewOrElement, preferType, preferMatrix) {
|
145
145
|
var anchor = anchorViewOrElement.isView ? anchorViewOrElement.get('layer') : anchorViewOrElement;
|
146
|
-
|
147
146
|
this.beginPropertyChanges();
|
148
147
|
this.set('anchorElement',anchor) ;
|
149
148
|
if (preferType) this.set('preferType',preferType) ;
|
150
149
|
if (preferMatrix) this.set('preferMatrix',preferMatrix) ;
|
151
|
-
this.positionPane();
|
152
150
|
this.endPropertyChanges();
|
153
|
-
|
154
151
|
this.append();
|
152
|
+
this.positionPane();
|
155
153
|
},
|
156
154
|
|
157
155
|
/** @private
|
@@ -223,7 +221,8 @@ SC.PickerPane = SC.PalettePane.extend({
|
|
223
221
|
*/
|
224
222
|
fitPositionToScreen: function(preferredPosition, picker, anchor) {
|
225
223
|
// get window rect.
|
226
|
-
var
|
224
|
+
var wsize = this.get('currentWindowSize') || SC.RootResponder.responder.computeWindowSize() ;
|
225
|
+
var wret = { x: 0, y: 0, width: wsize.width, height: wsize.height } ;
|
227
226
|
picker.x = preferredPosition.x ; picker.y = preferredPosition.y ;
|
228
227
|
|
229
228
|
if(this.preferType) {
|
@@ -297,7 +296,7 @@ SC.PickerPane = SC.PalettePane.extend({
|
|
297
296
|
*/
|
298
297
|
fitPositionToScreenMenu: function(w, f) {
|
299
298
|
// min left/right padding to the window
|
300
|
-
if( (f.x + f.width) > (w.width-
|
299
|
+
if( (f.x + f.width) > (w.width-20) ) f.x = w.width - f.width - 20;
|
301
300
|
if( f.x < 7 ) f.x = 7;
|
302
301
|
return f ;
|
303
302
|
},
|
@@ -359,12 +358,11 @@ SC.PickerPane = SC.PalettePane.extend({
|
|
359
358
|
var ret = sc_super();
|
360
359
|
if (context.needsContent) {
|
361
360
|
if (this.get('preferType') == SC.PICKER_POINTER) {
|
362
|
-
context.push('<div class="%@"></div>'.fmt(this.get('pointerPos')));
|
361
|
+
context.push('<div class="sc-pointer %@"></div>'.fmt(this.get('pointerPos')));
|
363
362
|
}
|
364
363
|
} else {
|
365
|
-
|
366
|
-
|
367
|
-
// el.attr('class', this.get('pointerPos'));
|
364
|
+
var el = this.$('.sc-pointer');
|
365
|
+
el.attr('class', "sc-pointer %@".fmt(this.get('pointerPos')));
|
368
366
|
}
|
369
367
|
return ret ;
|
370
368
|
},
|
@@ -14,8 +14,8 @@ sc_require('panes/panel');
|
|
14
14
|
|
15
15
|
{{{
|
16
16
|
SC.SheetPane.create({
|
17
|
+
layout: { width: 400, height: 200, centerX: 0 },
|
17
18
|
contentView: SC.View.extend({
|
18
|
-
layout: { width: 400, height: 200, centerX: 0 }
|
19
19
|
})
|
20
20
|
}).append();
|
21
21
|
}}}
|
@@ -34,7 +34,7 @@ SC.SheetPane = SC.PanelPane.extend({
|
|
34
34
|
init: function() {
|
35
35
|
sc_super() ;
|
36
36
|
|
37
|
-
/** TODO: Implement
|
37
|
+
/** TODO: Implement Animation
|
38
38
|
this.visibleAnimation = {
|
39
39
|
visible: 'top: 0px',
|
40
40
|
hidden: 'top: -500px',
|
@@ -91,7 +91,7 @@ SC.DropTarget = {
|
|
91
91
|
dragUpdated: function(drag, evt) {},
|
92
92
|
|
93
93
|
/**
|
94
|
-
Called when the user
|
94
|
+
Called when the user exits your droppable area or the drag ends
|
95
95
|
and you were the last targeted droppable area.
|
96
96
|
|
97
97
|
Override this method to perform any clean up on your UI such as hiding
|
@@ -107,9 +107,9 @@ SC.DropTarget = {
|
|
107
107
|
/**
|
108
108
|
Called on all drop targets when the drag ends.
|
109
109
|
|
110
|
-
For example, the user might have dragged the view off the screen and let
|
111
|
-
or they might have hit escape. Override this method to perform any
|
112
|
-
cleanup. This will be called instead of dragExited.
|
110
|
+
For example, the user might have dragged the view off the screen and let
|
111
|
+
go or they might have hit escape. Override this method to perform any
|
112
|
+
final cleanup. This will be called instead of dragExited.
|
113
113
|
|
114
114
|
The default implementation does nothing.
|
115
115
|
|
@@ -5,117 +5,146 @@
|
|
5
5
|
// ========================================================================
|
6
6
|
|
7
7
|
SC.DRAG_LINK = 0x0004; SC.DRAG_COPY = 0x0001; SC.DRAG_MOVE = 0x0002;
|
8
|
-
SC.DRAG_NONE = 0x0000; SC.DRAG_ANY = 0x0007
|
9
|
-
SC.DRAG_AUTOSCROLL_ZONE_THICKNESS = 20
|
8
|
+
SC.DRAG_NONE = 0x0000; SC.DRAG_ANY = 0x0007; // includes SC.DRAG_REORDER
|
9
|
+
SC.DRAG_AUTOSCROLL_ZONE_THICKNESS = 20;
|
10
10
|
|
11
11
|
/**
|
12
|
-
|
13
12
|
@class
|
14
13
|
|
15
14
|
An instance of this object is created whenever a drag occurs. The instance
|
16
15
|
manages the mouse events and coordinating with droppable targets until the
|
17
16
|
user releases the mouse button.
|
18
|
-
|
17
|
+
|
19
18
|
To initiate a drag, you should call SC.Drag.start() with the options below
|
20
19
|
specified in a hash. Pass the ones you need to get the drag you want:
|
21
|
-
|
22
|
-
- *event: (req)* The mouse event that triggered the drag. This will be used
|
20
|
+
|
21
|
+
- *event: (req)* The mouse event that triggered the drag. This will be used
|
23
22
|
to position the element.
|
24
23
|
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
- *source: (req)* The drag source object that should be consulted during
|
25
|
+
the drag operations. This is usually the container view that initiated
|
26
|
+
the drag.
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
28
|
+
- *dragView: (req)* This should point to a view that will be used as the
|
29
|
+
source image for the drag. The drag operation will clone the DOM elements
|
30
|
+
for this view and parent them under the drag pane, which has the class
|
31
|
+
name 'sc-ghost-view'.
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
- *ghost: YES | NO* If NO, the drag view image will show, but the source
|
34
|
+
dragView will not be hidden. Set to YES to make it appear that the
|
35
|
+
dragView itself is being dragged around.
|
37
36
|
|
38
|
-
|
39
|
-
|
40
|
-
origin.
|
37
|
+
- *slideBack: YES | NO* If YES and the drag operation is cancelled, the
|
38
|
+
dragView will slide back to its source origin.
|
41
39
|
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
- *origin:* If passed, this will be used as the origin point for the
|
41
|
+
ghostView when it slides back. You normally do not need to pass this
|
42
|
+
unless the ghost view does not appear in the main UI.
|
45
43
|
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
- *data:* Optional hash of data types and values. You can use this to pass
|
45
|
+
a static set of data instead of providing a dataSource. If you provide
|
46
|
+
a dataSource, it will be used instead.
|
49
47
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
48
|
+
- *dataSource:* Optional object that will provide the data for the drag to
|
49
|
+
be consumed by the drop target. If you do not pass this parameter or the
|
50
|
+
data hash, then the source object will be used if it implements the
|
51
|
+
SC.DragDataSource protocol.
|
52
|
+
|
53
|
+
- *anchorView:* if you pass this optional view, then the drag will only be
|
54
|
+
allowed to happen within this view. The ghostView will actually be added
|
55
|
+
as a child of this view during the drag. Normally the anchorView is the
|
56
|
+
window.
|
54
57
|
|
55
|
-
- *anchorView:* if you pass this optional view, then the drag will only be
|
56
|
-
allowed to happen within this view. The ghostView will actually be added
|
57
|
-
as a child of this view during the drag. Normally the anchorView is the
|
58
|
-
window.
|
59
|
-
|
60
58
|
@extends SC.Object
|
61
59
|
*/
|
62
60
|
SC.Drag = SC.Object.extend(
|
63
61
|
/** @scope SC.Drag.prototype */ {
|
64
62
|
|
65
|
-
/**
|
63
|
+
/**
|
64
|
+
The source object used to coordinate this drag.
|
65
|
+
|
66
|
+
@readOnly
|
67
|
+
@type SC.DragSource
|
68
|
+
*/
|
66
69
|
source: null,
|
67
|
-
|
68
|
-
/** The actual image being dragged around the screen.
|
69
70
|
|
70
|
-
|
71
|
+
/**
|
72
|
+
The view actually dragged around the screen. This is created automatically
|
73
|
+
from the dragView.
|
74
|
+
|
75
|
+
@readOnly
|
76
|
+
@type SC.View
|
71
77
|
*/
|
72
78
|
ghostView: null,
|
73
|
-
|
79
|
+
|
74
80
|
/**
|
75
81
|
The view that was used as the source of the ghostView.
|
76
82
|
|
77
83
|
The drag view is not moved from its original location during a drag.
|
78
84
|
Instead, the DOM content of the view is cloned and managed by the
|
79
85
|
ghostView. If you want to visually indicate that the view is being
|
80
|
-
|
86
|
+
moved, you may want to temporarily hide it during the drag.
|
87
|
+
|
88
|
+
@readOnly
|
89
|
+
@type SC.View
|
81
90
|
*/
|
82
91
|
dragView: null,
|
83
92
|
|
84
|
-
/**
|
85
|
-
If YES, the dragView is automatically hidden while dragging around the
|
93
|
+
/**
|
94
|
+
If YES, the dragView is automatically hidden while dragging around the
|
95
|
+
ghost.
|
96
|
+
|
97
|
+
@readOnly
|
98
|
+
@type Boolean
|
86
99
|
*/
|
87
100
|
ghost: YES,
|
88
101
|
|
89
102
|
/**
|
90
|
-
If YES, then the ghostView will slide back to its original location if
|
103
|
+
If YES, then the ghostView will slide back to its original location if
|
104
|
+
drag is cancelled.
|
105
|
+
|
106
|
+
@type Boolean
|
91
107
|
*/
|
92
108
|
slideBack: YES,
|
93
109
|
|
94
|
-
/**
|
110
|
+
/**
|
111
|
+
The original mouse down event.
|
112
|
+
|
113
|
+
@readOnly
|
114
|
+
@type SC.Event
|
115
|
+
*/
|
95
116
|
mouseDownEvent: null,
|
96
|
-
|
97
|
-
/**
|
98
|
-
The origin to slide back to in the coordinate of the dragView's
|
117
|
+
|
118
|
+
/**
|
119
|
+
The origin to slide back to in the coordinate of the dragView's
|
120
|
+
containerView.
|
121
|
+
|
122
|
+
@type Point
|
99
123
|
*/
|
100
124
|
ghostOffset: { x: 0, y: 0 },
|
101
125
|
|
102
126
|
/**
|
103
|
-
The current location of the mouse pointer in window coordinates.
|
104
|
-
|
105
|
-
|
127
|
+
The current location of the mouse pointer in window coordinates. This is
|
128
|
+
updated as long as the mouse button is pressed. Drop targets are
|
129
|
+
encouraged to update this property in their dragUpdated() method
|
130
|
+
implementations.
|
131
|
+
|
132
|
+
The ghostView will be positioned at this location.
|
133
|
+
|
134
|
+
@type Point
|
106
135
|
*/
|
107
136
|
location: {},
|
108
|
-
|
137
|
+
|
109
138
|
// ..........................................
|
110
139
|
// DRAG DATA
|
111
140
|
//
|
112
|
-
|
141
|
+
|
113
142
|
/**
|
114
143
|
Data types supported by this drag operation.
|
115
144
|
|
116
|
-
Returns an array of data types supported by the drag source. This may
|
117
|
-
|
118
|
-
|
145
|
+
Returns an array of data types supported by the drag source. This may be
|
146
|
+
generated dynamically depending on the data source.
|
147
|
+
|
119
148
|
If you are implementing a drag source, you will need to provide these data
|
120
149
|
types so that drop targets can detect if they can accept your drag data.
|
121
150
|
|
@@ -123,7 +152,7 @@ SC.Drag = SC.Object.extend(
|
|
123
152
|
on your dragEntered() and prepareForDragOperation() methods to determine
|
124
153
|
if you can handle any of the data types offered up by the drag source.
|
125
154
|
|
126
|
-
@
|
155
|
+
@property {Array} available data types
|
127
156
|
*/
|
128
157
|
dataTypes: function() {
|
129
158
|
// first try to use the data source.
|
@@ -154,18 +183,18 @@ SC.Drag = SC.Object.extend(
|
|
154
183
|
@returns {Boolean} YES if data type is present in dataTypes array.
|
155
184
|
*/
|
156
185
|
hasDataType: function(dataType) {
|
157
|
-
return (this.get('dataTypes').indexOf(dataType) >= 0) ;
|
186
|
+
return (this.get('dataTypes').indexOf(dataType) >= 0) ;
|
158
187
|
},
|
159
188
|
|
160
189
|
/**
|
161
190
|
Retrieve the data for the specified dataType from the drag source.
|
162
|
-
|
163
|
-
Drop targets can use this method during their performDragOperation() method
|
164
|
-
to retrieve the actual data provided by the drag data source. This data
|
165
|
-
may be generated dynamically depending on the data source.
|
166
191
|
|
167
|
-
|
192
|
+
Drop targets can use this method during their performDragOperation()
|
193
|
+
method to retrieve the actual data provided by the drag data source. This
|
194
|
+
data may be generated dynamically depending on the data source.
|
168
195
|
|
196
|
+
@param {Object} dataType data type you want to retrieve. Should be one of
|
197
|
+
the values returned in the dataTypes property
|
169
198
|
@returns {Object} The generated data.
|
170
199
|
*/
|
171
200
|
dataForType: function(dataType) {
|
@@ -190,69 +219,110 @@ SC.Drag = SC.Object.extend(
|
|
190
219
|
|
191
220
|
/**
|
192
221
|
Optional object used to provide the data for the drag.
|
193
|
-
|
222
|
+
|
194
223
|
Drag source can designate a dataSource object to generate the data for
|
195
224
|
a drag dynamically. The data source can and often is the drag source
|
196
225
|
object itself.
|
197
|
-
|
226
|
+
|
198
227
|
Data Source objects must comply with the SC.DragDataSource interface. If
|
199
228
|
you do not want to implement this interface, you can provide the data
|
200
229
|
directly with the data property.
|
201
|
-
|
230
|
+
|
202
231
|
If you are implementing a drop target, use the dataTypes property and
|
203
|
-
dataForTypes() method to access data instead of working directly with
|
204
|
-
properties.
|
232
|
+
dataForTypes() method to access data instead of working directly with
|
233
|
+
these properties.
|
205
234
|
|
206
|
-
@
|
235
|
+
@readOnly
|
236
|
+
@type SC.DragDataSource
|
207
237
|
*/
|
208
238
|
dataSource: null,
|
209
|
-
|
239
|
+
|
210
240
|
/**
|
211
241
|
Optional hash of data. Used if no dataSource was provided.
|
212
242
|
|
213
243
|
Drag sources can provide a hash of data when the drag begins instead of
|
214
244
|
specifying an actual dataSource. The data is stored in this property.
|
215
245
|
If you are implementing a drop target, use the dataTypes property and
|
216
|
-
dataForTypes() method to access data instead of working directly with
|
217
|
-
properties.
|
246
|
+
dataForTypes() method to access data instead of working directly with
|
247
|
+
these properties.
|
218
248
|
|
219
|
-
@
|
249
|
+
@readOnly
|
250
|
+
@type Hash
|
220
251
|
*/
|
221
252
|
data: null,
|
222
|
-
|
223
|
-
|
253
|
+
|
254
|
+
/**
|
255
|
+
Returns the currently allowed dragOperations for the drag. This will be
|
256
|
+
set just before any callbacks are invoked on a drop target. The drag
|
257
|
+
source is given an opportunity to set these operations.
|
258
|
+
|
259
|
+
@readOnly
|
260
|
+
@type Number
|
261
|
+
*/
|
262
|
+
allowedDragOperations: SC.DRAG_ANY,
|
263
|
+
|
264
|
+
/** @private required by autoscroll */
|
224
265
|
_dragInProgress: YES,
|
225
266
|
|
226
|
-
|
267
|
+
/** @private
|
268
|
+
This will actually start the drag process. Called by SC.Drag.start().
|
269
|
+
*/
|
227
270
|
startDrag: function() {
|
228
271
|
// create the ghost view
|
229
272
|
this._createGhostView() ;
|
230
273
|
|
274
|
+
var evt = this.event ;
|
275
|
+
|
231
276
|
// compute the ghost offset from the original mouse location
|
232
|
-
|
233
|
-
var
|
234
|
-
|
235
|
-
|
236
|
-
|
277
|
+
|
278
|
+
var loc = { x: evt.pageX, y: evt.pageY } ;
|
279
|
+
this.set('location', loc) ;
|
280
|
+
|
281
|
+
var dv = this.dragView ;
|
282
|
+
var pane = dv.get('pane') ;
|
283
|
+
var pv = dv.get('parentView') ;
|
284
|
+
var clippingFrame = dv.get('clippingFrame') ;
|
285
|
+
// convert to global cooridinates
|
286
|
+
//var f = pv ? pv.convertFrameToView(clippingFrame, null) : clippingFrame ;
|
287
|
+
var f = pv ? pv.convertFrameToView(dv.get('frame'), null) : dv.get('frame') ;
|
288
|
+
var pf = pane ? pane.get('frame') : {x:0, y: 0};
|
289
|
+
|
290
|
+
dv.adjust({
|
291
|
+
top: f.y + pf.y,
|
292
|
+
left: f.x + pf.x,
|
293
|
+
width: f.width,
|
294
|
+
height: f.height
|
295
|
+
});
|
296
|
+
//get frame in global cords after pane adjustment
|
297
|
+
var dvf = dv.get('frame');
|
298
|
+
|
299
|
+
var origin = f;//pv.convertFrameToView(dv.get('frame'), null) ;
|
300
|
+
|
301
|
+
this.ghostOffset = { x: (loc.x-origin.x), y: (loc.y-origin.y) } ;
|
302
|
+
|
303
|
+
this.mouseGhostOffset = {x: (loc.x - dvf.x), y: (loc.y - dvf.y)};
|
304
|
+
|
237
305
|
// position the ghost view
|
238
|
-
this._positionGhostView(
|
306
|
+
this._positionGhostView(evt) ;
|
239
307
|
|
240
308
|
// notify root responder that a drag is in process
|
241
|
-
this.
|
309
|
+
this.ghostView.rootResponder.dragDidStart(this) ;
|
242
310
|
|
243
311
|
var source = this.source ;
|
244
|
-
if (source && source.dragDidBegin) source.dragDidBegin(this,
|
312
|
+
if (source && source.dragDidBegin) source.dragDidBegin(this, loc) ;
|
245
313
|
|
246
314
|
// let all drop targets know that a drag has started
|
247
315
|
var ary = this._dropTargets() ;
|
248
316
|
for (var idx=0, len=ary.length; idx<len; idx++) {
|
249
|
-
ary[idx].tryToPerform('dragStarted', this
|
317
|
+
ary[idx].tryToPerform('dragStarted', this, evt) ;
|
250
318
|
}
|
251
319
|
},
|
252
320
|
|
253
|
-
|
254
|
-
|
255
|
-
|
321
|
+
// ..........................................
|
322
|
+
// PRIVATE PROPERTIES AND METHODS
|
323
|
+
//
|
324
|
+
|
325
|
+
/** @private
|
256
326
|
This method is called repeatedly during a mouse drag. It updates the
|
257
327
|
position of the ghost image, then it looks for a current drop target and
|
258
328
|
notifies it.
|
@@ -264,35 +334,32 @@ SC.Drag = SC.Object.extend(
|
|
264
334
|
return ; // quickly ignore duplicate calls
|
265
335
|
}
|
266
336
|
|
267
|
-
// cache the current location to avoid processing duplicate mouseDragged
|
337
|
+
// cache the current location to avoid processing duplicate mouseDragged
|
338
|
+
// calls
|
268
339
|
this.set('location', { x: evt.pageX, y: evt.pageY }) ;
|
269
340
|
|
270
|
-
// reposition the ghostView
|
271
|
-
this._positionGhostView(evt) ;
|
272
|
-
|
273
341
|
// STEP 1: Determine the deepest drop target that allows an operation.
|
274
|
-
// if the drop target selected the last time this method was called
|
275
|
-
// from the deepest target found, then go up the chain until we
|
276
|
-
// last one or find one that will allow a drag operation
|
342
|
+
// if the drop target selected the last time this method was called
|
343
|
+
// differs from the deepest target found, then go up the chain until we
|
344
|
+
// either hit the last one or find one that will allow a drag operation
|
277
345
|
var source = this.source ;
|
278
346
|
var last = this._lastTarget ;
|
279
347
|
var target = this._findDropTarget(evt) ; // deepest drop target
|
280
348
|
var op = SC.DRAG_NONE ;
|
281
349
|
|
282
350
|
while (target && (target != last) && (op == SC.DRAG_NONE)) {
|
283
|
-
// make sure the drag source will permit a drop operation on the named
|
351
|
+
// make sure the drag source will permit a drop operation on the named
|
352
|
+
// target
|
284
353
|
if (target && source && source.dragSourceOperationMaskFor) {
|
285
354
|
op = source.dragSourceOperationMaskFor(this, target) ;
|
286
355
|
} else op = SC.DRAG_ANY ; // assume drops are allowed
|
287
356
|
|
288
|
-
this.sourceDropOperations = op ;
|
289
|
-
|
290
357
|
// now, let's see if the target will accept the drag
|
291
358
|
if ((op != SC.DRAG_NONE) && target && target.computeDragOperations) {
|
292
|
-
op = op & target.computeDragOperations(this, evt) ;
|
359
|
+
op = op & target.computeDragOperations(this, evt, op) ;
|
293
360
|
} else op = SC.DRAG_NONE ; // assume drops AREN'T allowed
|
294
361
|
|
295
|
-
this.
|
362
|
+
this.allowedDragOperations = op ;
|
296
363
|
|
297
364
|
// if DRAG_NONE, then look for the next parent that is a drop zone
|
298
365
|
if (op == SC.DRAG_NONE) target = this._findNextDropTarget(target) ;
|
@@ -314,6 +381,9 @@ SC.Drag = SC.Object.extend(
|
|
314
381
|
|
315
382
|
// notify source that the drag moved
|
316
383
|
if (source && source.dragDidMove) source.dragDidMove(this, loc) ;
|
384
|
+
|
385
|
+
// reposition the ghostView
|
386
|
+
this._positionGhostView(evt) ;
|
317
387
|
},
|
318
388
|
|
319
389
|
/**
|
@@ -323,34 +393,37 @@ SC.Drag = SC.Object.extend(
|
|
323
393
|
executes the drop target protocol to try to complete the drag operation.
|
324
394
|
*/
|
325
395
|
mouseUp: function(evt) {
|
326
|
-
var loc
|
327
|
-
|
396
|
+
var loc = { x: evt.pageX, y: evt.pageY },
|
397
|
+
target = this._lastTarget,
|
398
|
+
op = this.allowedDragOperations;
|
399
|
+
|
400
|
+
this.set('location', loc);
|
328
401
|
|
329
402
|
// try to have the drop target perform the drop...
|
330
403
|
try {
|
331
404
|
if (target && target.acceptDragOperation && target.acceptDragOperation(this, op)) {
|
332
|
-
op =
|
405
|
+
op = target.performDragOperation ? target.performDragOperation(this, op) : SC.DRAG_NONE ;
|
333
406
|
} else {
|
334
407
|
op = SC.DRAG_NONE;
|
335
408
|
}
|
336
409
|
} catch (e) {
|
337
|
-
console.
|
410
|
+
console.error('Exception in SC.Drag.mouseUp(acceptDragOperation|performDragOperation): %@'.fmt(e)) ;
|
338
411
|
}
|
339
412
|
|
340
413
|
try {
|
341
414
|
// notify last drop target that the drag exited, to allow it to cleanup
|
342
415
|
if (target && target.dragExited) target.dragExited(this, evt) ;
|
343
|
-
} catch (
|
344
|
-
|
416
|
+
} catch (ex) {
|
417
|
+
console.error('Exception in SC.Drag.mouseUp(target.dragExited): %@'.fmt(ex)) ;
|
345
418
|
}
|
346
419
|
|
347
420
|
// notify all drop targets that the drag ended
|
348
421
|
var ary = this._dropTargets() ;
|
349
422
|
for (var idx=0, len=ary.length; idx<len; idx++) {
|
350
423
|
try {
|
351
|
-
ary[idx].tryToPerform('dragEnded', evt) ;
|
352
|
-
} catch (
|
353
|
-
console.
|
424
|
+
ary[idx].tryToPerform('dragEnded', this, evt) ;
|
425
|
+
} catch (ex2) {
|
426
|
+
console.error('Exception in SC.Drag.mouseUp(dragEnded on %@): %@'.fmt(ary[idx], ex2)) ;
|
354
427
|
}
|
355
428
|
}
|
356
429
|
|
@@ -362,49 +435,62 @@ SC.Drag = SC.Object.extend(
|
|
362
435
|
if (source && source.dragDidEnd) source.dragDidEnd(this, loc, op) ;
|
363
436
|
|
364
437
|
this._lastTarget = null ;
|
365
|
-
this._dragInProgress = NO ; // required by autoscroll
|
438
|
+
this._dragInProgress = NO ; // required by autoscroll (invoked by a timer)
|
366
439
|
},
|
367
440
|
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
_ghostView: null,
|
373
|
-
|
374
|
-
// this will create the ghostView and add it to the document.
|
441
|
+
/** @private
|
442
|
+
This will create the ghostView and add it to the document.
|
443
|
+
*/
|
375
444
|
_createGhostView: function() {
|
376
|
-
var
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
view
|
445
|
+
var that = this,
|
446
|
+
frame = this.dragView.get('frame'),
|
447
|
+
view;
|
448
|
+
|
449
|
+
view = this.ghostView = SC.Pane.create({
|
450
|
+
classNames:['sc-ghost-view'],
|
451
|
+
layout: { top: frame.y, left: frame.x, width: frame.width, height: frame.height },
|
452
|
+
owner: this,
|
453
|
+
didCreateLayer: function() {
|
454
|
+
if (that.dragView) {
|
455
|
+
var layer = that.dragView.get('layer') ;
|
456
|
+
if (layer) this.get('layer').appendChild(layer.cloneNode(true)) ;
|
457
|
+
}
|
458
|
+
}
|
459
|
+
});
|
460
|
+
|
381
461
|
view.append() ; // add to window
|
382
462
|
},
|
383
463
|
|
384
|
-
|
385
|
-
|
464
|
+
/** @private
|
465
|
+
Positions the ghost view underneath the mouse with the initial offset
|
466
|
+
recorded by when the drag started.
|
467
|
+
*/
|
386
468
|
_positionGhostView: function(evt) {
|
387
|
-
var loc =
|
469
|
+
var loc = this.get('location') ;
|
388
470
|
loc.x -= this.ghostOffset.x ;
|
389
471
|
loc.y -= this.ghostOffset.y ;
|
390
|
-
this.
|
472
|
+
this.ghostView.adjust({ top: loc.y, left: loc.x }) ;
|
473
|
+
this.ghostView.invokeOnce('updateLayout') ;
|
391
474
|
},
|
392
475
|
|
476
|
+
/** @private */
|
393
477
|
_destroyGhostView: function() {
|
394
|
-
if (this.
|
395
|
-
this.
|
396
|
-
this.
|
478
|
+
if (this.ghostView) {
|
479
|
+
this.ghostView.remove() ;
|
480
|
+
this.ghostView = null ; // this will allow the GC to collect it.
|
397
481
|
}
|
398
482
|
},
|
399
483
|
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
484
|
+
/** @private
|
485
|
+
Return an array of drop targets, sorted with any nested drop targets
|
486
|
+
at the top of the array. The first time this method is called during
|
487
|
+
a drag, it will reconstruct this array using the current set of
|
488
|
+
drop targets. Afterwards it uses the cached set until the drop
|
489
|
+
completes.
|
490
|
+
|
491
|
+
This means that if you change the view hierarchy of your drop targets
|
492
|
+
during a drag, it will probably be wrong.
|
493
|
+
*/
|
408
494
|
_dropTargets: function() {
|
409
495
|
if (this._cachedDropTargets) return this._cachedDropTargets ;
|
410
496
|
|
@@ -445,7 +531,10 @@ SC.Drag = SC.Object.extend(
|
|
445
531
|
return ret ;
|
446
532
|
},
|
447
533
|
|
448
|
-
|
534
|
+
/** @private
|
535
|
+
This will search through the drop targets, looking for one in the target
|
536
|
+
area.
|
537
|
+
*/
|
449
538
|
_findDropTarget: function(evt) {
|
450
539
|
var loc = { x: evt.pageX, y: evt.pageY } ;
|
451
540
|
|
@@ -459,15 +548,17 @@ SC.Drag = SC.Object.extend(
|
|
459
548
|
// get clippingFrame, converted to the pane.
|
460
549
|
frame = target.convertFrameToView(target.get('clippingFrame'), null) ;
|
461
550
|
|
462
|
-
// check to see if loc is inside. If so, then make this the drop target
|
463
|
-
// there is a drop target and the current one is not deeper.
|
551
|
+
// check to see if loc is inside. If so, then make this the drop target
|
552
|
+
// unless there is a drop target and the current one is not deeper.
|
464
553
|
if (SC.pointInRect(loc, frame)) return target;
|
465
554
|
}
|
466
555
|
return null ;
|
467
556
|
},
|
468
557
|
|
469
|
-
|
470
|
-
|
558
|
+
/** @private
|
559
|
+
Search the parent nodes of the target to find another view matching the
|
560
|
+
drop target. Returns null if no matching target is found.
|
561
|
+
*/
|
471
562
|
_findNextDropTarget: function(target) {
|
472
563
|
var dropTargets = SC.Drag._dropTargets ;
|
473
564
|
while (target = target.get('parentView')) {
|
@@ -480,13 +571,15 @@ SC.Drag = SC.Object.extend(
|
|
480
571
|
// AUTOSCROLLING
|
481
572
|
//
|
482
573
|
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
574
|
+
/** @private
|
575
|
+
Performs auto-scrolling for the drag. This will only do anything if
|
576
|
+
the user keeps the mouse within a few pixels of one location for a little
|
577
|
+
while.
|
578
|
+
|
579
|
+
Returns YES if a scroll was performed.
|
580
|
+
*/
|
488
581
|
_autoscroll: function(evt) {
|
489
|
-
|
582
|
+
if (!evt) evt = this._lastAutoscrollEvent ;
|
490
583
|
|
491
584
|
// If drag has ended, exit
|
492
585
|
if (!this._dragInProgress) return NO;
|
@@ -498,80 +591,73 @@ SC.Drag = SC.Object.extend(
|
|
498
591
|
// - there must be room left to scroll in that direction.
|
499
592
|
|
500
593
|
// NOTE: an event is passed only when called from mouseDragged
|
501
|
-
var loc
|
502
|
-
|
594
|
+
var loc = evt ? { x: evt.pageX, y: evt.pageY } : this.get('location'),
|
595
|
+
view = this._findScrollableView(loc),
|
596
|
+
scrollableView = null, // become final view when found
|
597
|
+
vscroll, hscroll, min, max, edge, container, f;
|
503
598
|
|
504
|
-
//
|
505
|
-
|
506
|
-
var min, max, edge ;
|
507
|
-
var scrollableView = null;
|
599
|
+
// hscroll and vscroll will become either 1 or -1 to indicate scroll
|
600
|
+
// direction or 0 for no scroll.
|
508
601
|
|
509
602
|
while (view && !scrollableView) {
|
510
603
|
|
511
604
|
// quick check...can we scroll this view right now?
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
// at least one direction might be scrollable. Collect
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
605
|
+
vscroll = view.get('canScrollVertical') ? 1 : 0;
|
606
|
+
hscroll = view.get('canScrollHorizontal') ? 1 : 0;
|
607
|
+
|
608
|
+
// at least one direction might be scrollable. Collect frame info
|
609
|
+
if (vscroll || hscroll) {
|
610
|
+
container = view.get('containerView');
|
611
|
+
if (container) {
|
612
|
+
f = view.convertFrameToView(container.get('frame'),null);
|
613
|
+
} else {
|
614
|
+
vscroll = hscroll = 0 ; // can't autoscroll this mother
|
615
|
+
}
|
521
616
|
}
|
522
|
-
|
523
|
-
|
617
|
+
|
618
|
+
// handle vertical direction
|
619
|
+
if (vscroll) {
|
524
620
|
|
525
621
|
// bottom hotzone?
|
526
|
-
max = SC.maxY(f);
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
edge = SC.minY(scrollFrame) ;
|
536
|
-
if ((edge <= innerSize.height) && (loc.y >= min) && (loc.y <= max)) {
|
537
|
-
verticalScroll = -1 ;
|
538
|
-
|
539
|
-
// no, ok don't scroll vertical
|
540
|
-
} else verticalScroll = 0 ;
|
622
|
+
max = SC.maxY(f);
|
623
|
+
min = max - SC.DRAG_AUTOSCROLL_ZONE_THICKNESS ;
|
624
|
+
if (loc.y >= min && loc.y <= max) vscroll = 1 ;
|
625
|
+
else {
|
626
|
+
// how about top
|
627
|
+
min = SC.minY(f);
|
628
|
+
max = min + SC.DRAG_AUTOSCROLL_ZONE_THICKNESS ;
|
629
|
+
if (loc.y >= min && loc.y <= max) vscroll = -1 ;
|
630
|
+
else vscroll = 0 ; // can't scroll vertical
|
541
631
|
}
|
542
632
|
}
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
min = SC.
|
554
|
-
|
555
|
-
if (
|
556
|
-
|
557
|
-
|
558
|
-
// no, ok don't scroll vertical
|
559
|
-
} else horizontalScroll = 0 ;
|
633
|
+
|
634
|
+
// handle horizontal direction
|
635
|
+
if (hscroll) {
|
636
|
+
|
637
|
+
// bottom hotzone?
|
638
|
+
max = SC.maxX(f);
|
639
|
+
min = max - SC.DRAG_AUTOSCROLL_ZONE_THICKNESS ;
|
640
|
+
if (loc.x >= min && loc.x <= max) hscroll = 1 ;
|
641
|
+
else {
|
642
|
+
// how about top
|
643
|
+
min = SC.minX(f);
|
644
|
+
max = min + SC.DRAG_AUTOSCROLL_ZONE_THICKNESS ;
|
645
|
+
if (loc.x >= min && loc.x <= max) hscroll = -1 ;
|
646
|
+
else hscroll = 0 ; // can't scroll vertical
|
560
647
|
}
|
561
648
|
}
|
562
649
|
|
563
650
|
// if we can scroll, then set this.
|
564
|
-
if (
|
565
|
-
|
566
|
-
} else view = this._findNextScrollableView(view) ;
|
651
|
+
if (vscroll || hscroll) scrollableView = view ;
|
652
|
+
else view = this._findNextScrollableView(view) ;
|
567
653
|
}
|
568
654
|
|
569
|
-
// STEP 2: Only scroll if the user remains within the hot-zone for a
|
570
|
-
// time
|
571
|
-
if (scrollableView && (this._lastScrollableView
|
655
|
+
// STEP 2: Only scroll if the user remains within the hot-zone for a
|
656
|
+
// period of time
|
657
|
+
if (scrollableView && (this._lastScrollableView === scrollableView)) {
|
572
658
|
if ((Date.now() - this._hotzoneStartTime) > 100) {
|
573
659
|
this._horizontalScrollAmount *= 1.05 ;
|
574
|
-
this._verticalScrollAmount *= 1.05 ;
|
660
|
+
this._verticalScrollAmount *= 1.05 ; // accelerate scroll
|
575
661
|
}
|
576
662
|
|
577
663
|
// otherwise, reset everything and disallow scroll
|
@@ -580,32 +666,37 @@ SC.Drag = SC.Object.extend(
|
|
580
666
|
this._horizontalScrollAmount = 15 ;
|
581
667
|
this._verticalScrollAmount = 15 ;
|
582
668
|
this._hotzoneStartTime = (scrollableView) ? Date.now() : null ;
|
583
|
-
|
584
|
-
horizontalScroll = verticalScroll = 0 ;
|
669
|
+
hscroll = vscroll = 0 ;
|
585
670
|
}
|
586
671
|
|
587
672
|
// STEP 3: Scroll!
|
588
|
-
if (scrollableView && (
|
673
|
+
if (scrollableView && (hscroll || vscroll)) {
|
589
674
|
var scroll = {
|
590
|
-
x:
|
591
|
-
y:
|
675
|
+
x: hscroll * this._horizontalScrollAmount,
|
676
|
+
y: vscroll * this._verticalScrollAmount
|
592
677
|
} ;
|
593
|
-
|
594
678
|
scrollableView.scrollBy(scroll) ;
|
595
679
|
}
|
596
680
|
|
597
|
-
// If a scrollable view was found, then
|
681
|
+
// If a scrollable view was found, then check later
|
598
682
|
if (scrollableView) {
|
599
|
-
|
683
|
+
if (evt) {
|
684
|
+
this._lastAutoscrollEvent = { pageX: evt.pageX, pageY: evt.pageY };
|
685
|
+
}
|
686
|
+
this.invokeLater(this._autoscroll, 100, null);
|
600
687
|
return YES ;
|
601
|
-
} else
|
688
|
+
} else {
|
689
|
+
this._lastAutoscrollEvent = null;
|
690
|
+
return NO ;
|
691
|
+
}
|
602
692
|
},
|
603
693
|
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
694
|
+
/** @private
|
695
|
+
Returns an array of scrollable views, sorted with nested scrollable views
|
696
|
+
at the top of the array. The first time this method is called during a
|
697
|
+
drag, it will reconstrut this array using the current state of scrollable
|
698
|
+
views. Afterwards it uses the cached set until the drop completes.
|
699
|
+
*/
|
609
700
|
_scrollableViews: function() {
|
610
701
|
if (this._cachedScrollableView) return this._cachedScrollableView ;
|
611
702
|
|
@@ -630,15 +721,19 @@ SC.Drag = SC.Object.extend(
|
|
630
721
|
return ret ;
|
631
722
|
},
|
632
723
|
|
633
|
-
|
634
|
-
|
724
|
+
/** @private
|
725
|
+
This will search through the scrollable views, looking for one in the
|
726
|
+
target area.
|
727
|
+
*/
|
635
728
|
_findScrollableView: function(loc) {
|
636
|
-
var
|
637
|
-
|
638
|
-
|
729
|
+
var ary = this._scrollableViews(),
|
730
|
+
len = ary ? ary.length : 0,
|
731
|
+
target, frame, idx;
|
732
|
+
|
733
|
+
for (idx=0; idx<len; idx++) {
|
639
734
|
target = ary[idx] ;
|
640
735
|
|
641
|
-
|
736
|
+
if (!target.get('isVisibleInWindow')) continue ;
|
642
737
|
|
643
738
|
// get clippingFrame, converted to the pane
|
644
739
|
frame = target.convertFrameToView(target.get('clippingFrame'), null) ;
|
@@ -649,8 +744,10 @@ SC.Drag = SC.Object.extend(
|
|
649
744
|
return null ;
|
650
745
|
},
|
651
746
|
|
652
|
-
|
653
|
-
|
747
|
+
/** @private
|
748
|
+
Search the parent nodes of the target to find another scrollable view.
|
749
|
+
return null if none is found.
|
750
|
+
*/
|
654
751
|
_findNextScrollableView: function(view) {
|
655
752
|
var scrollableViews = SC.Drag._scrollableViews ;
|
656
753
|
while (view = view.get('parentView')) {
|
@@ -665,7 +762,7 @@ SC.Drag.mixin(
|
|
665
762
|
/** @scope SC.Drag */ {
|
666
763
|
|
667
764
|
/**
|
668
|
-
This is the method you use to initiate a new drag. See class documentation
|
765
|
+
This is the method you use to initiate a new drag. See class documentation
|
669
766
|
for more info on the options taken by this method.
|
670
767
|
|
671
768
|
@params {Hash} ops a hash of options. See documentation above.
|
@@ -676,7 +773,10 @@ SC.Drag.mixin(
|
|
676
773
|
return ret ;
|
677
774
|
},
|
678
775
|
|
776
|
+
/** @private */
|
679
777
|
_dropTargets: {},
|
778
|
+
|
779
|
+
/** @private */
|
680
780
|
_scrollableViews: {},
|
681
781
|
|
682
782
|
/**
|
@@ -685,9 +785,10 @@ SC.Drag.mixin(
|
|
685
785
|
This method is called automatically whenever a view is created with the
|
686
786
|
isDropTarget property set to YES. You generally will not need to call it
|
687
787
|
yourself.
|
788
|
+
|
789
|
+
@param {SC.View} target a view implementing the SC.DropTarget protocol
|
688
790
|
*/
|
689
791
|
addDropTarget: function(target) {
|
690
|
-
// console.log('addDropTarget called on %@ with %@'.fmt(this, target));
|
691
792
|
this._dropTargets[SC.guidFor(target)] = target ;
|
692
793
|
},
|
693
794
|
|
@@ -696,15 +797,18 @@ SC.Drag.mixin(
|
|
696
797
|
|
697
798
|
This method is called automatically whenever a view is removed from the
|
698
799
|
hierarchy. You generally will not need to call it yourself.
|
800
|
+
|
801
|
+
@param {SC.View} target A previously registered drop target
|
699
802
|
*/
|
700
803
|
removeDropTarget: function(target) {
|
701
|
-
// console.log('removeDropTarget called on %@ with %@'.fmt(this, target));
|
702
804
|
delete this._dropTargets[SC.guidFor(target)] ;
|
703
805
|
},
|
704
806
|
|
705
807
|
/**
|
706
|
-
Register the view object as a scrollable view. These views will
|
707
|
-
during a drag.
|
808
|
+
Register the view object as a scrollable view. These views will
|
809
|
+
auto-scroll during a drag.
|
810
|
+
|
811
|
+
@param {SC.View} target The view that should be auto-scrolled
|
708
812
|
*/
|
709
813
|
addScrollableView: function(target) {
|
710
814
|
this._scrollableViews[SC.guidFor(target)] = target ;
|
@@ -713,9 +817,11 @@ SC.Drag.mixin(
|
|
713
817
|
/**
|
714
818
|
Remove the view object as a scrollable view. These views will auto-scroll
|
715
819
|
during a drag.
|
820
|
+
|
821
|
+
@param {SC.View} target A previously registered scrollable view
|
716
822
|
*/
|
717
823
|
removeScrollableView: function(target) {
|
718
824
|
delete this._scrollableViews[SC.guidFor(target)] ;
|
719
825
|
}
|
720
|
-
|
826
|
+
|
721
827
|
});
|