sproutcore 1.7.1.beta → 1.8.0
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/CHANGELOG +44 -0
- data/README.rdoc +20 -20
- data/VERSION.yml +3 -3
- data/lib/Buildfile +1 -1
- data/lib/buildtasks/build.rake +5 -0
- data/lib/buildtasks/manifest.rake +19 -1
- data/lib/frameworks/sproutcore/Buildfile +19 -17
- data/lib/frameworks/sproutcore/CHANGELOG.md +163 -29
- data/lib/frameworks/sproutcore/README.md +29 -8
- data/lib/frameworks/sproutcore/apps/statechart_routing/Buildfile +12 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/login_controller.js +11 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/main_controller.js +7 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/controllers/statechart_controller.js +17 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/core.js +25 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/main.js +15 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/_theme.css +18 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/bar_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/foo_page.js +14 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/loading.rhtml +9 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/login_page.js +61 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/resources/main_page.js +46 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/statechart.js +76 -0
- data/lib/frameworks/sproutcore/apps/statechart_routing/theme.js +27 -0
- data/lib/frameworks/sproutcore/apps/tests/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/no_targets.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_detail.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_empty.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_list.js +1 -1
- data/lib/frameworks/sproutcore/apps/tests/states/ready_no_tests.js +1 -1
- data/lib/frameworks/sproutcore/apps/welcome/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/request.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/ajax/system/response.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/ajax/tests/system/request.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/animation/core.js +8 -5
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +302 -70
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +19 -14
- data/lib/frameworks/sproutcore/frameworks/bootstrap/tests/system/browser.js +471 -149
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/string.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/responder_context.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/selection_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/body_overflow.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/keyboard.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/layout.js +37 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +10 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/protocols/sparse_array_delegate.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +66 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +58 -57
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js.orig +445 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +51 -31
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/ready.js +5 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/render_context.js +53 -69
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/responder.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +98 -72
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/string.js +37 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +7 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/content_destroyed.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/string.js +23 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/browser.js +66 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/event.js +22 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/locale.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/end.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/escape_html.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_className.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/helpers_style.js +8 -8
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/render_context/update.js +17 -16
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/selection_set/remove.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/build_children.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/createChildViews.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +50 -30
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/acceleration.js +46 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/animation.js +1 -43
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +8 -34
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +3 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +10 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/manipulation.js +6 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/theming.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/mixins/relationship_support.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +46 -19
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +23 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +294 -302
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js.orig +1531 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +14 -11
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/integration/many_array.js +63 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/many_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array.js +50 -10
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_array_complex.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/nested_records/nested_record_complex.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/destroy.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/refresh.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +114 -67
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/nested_store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/compare.js +54 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/evaluation.js +29 -9
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/parse.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/core_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/cancelRecord.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitChangesFromNestedStore.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/commitRecord.js +37 -45
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/find.js +127 -127
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushChanges.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/pushRelationships.js +42 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/readDataHash.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/debug/core.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +19 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +30 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +24 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +121 -28
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +15 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/protocols/responder.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +39 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/collection.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/image_button.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/panel.js +14 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/popup_button.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segment.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -51
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +11 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/images/icons/sc-icon-error-48.png +0 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/resources/slider.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +9 -9
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/content.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/collection/reload.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/date_field/ui.js +107 -81
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +68 -60
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/methods.js +57 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/integration.js +21 -19
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +5 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/select/ui.js +32 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/split/methods.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/stacked/ui_comments.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/tab/methods.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +77 -132
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +5 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +16 -15
- data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +52 -52
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +147 -147
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +11 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +22 -12
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +13 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +462 -441
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +48 -62
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +22 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +150 -32
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +104 -45
- data/lib/frameworks/sproutcore/frameworks/desktop/views/select_button.js +42 -20
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +24 -24
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +148 -154
- data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +8 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +2 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/files.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/library.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/targets.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/controllers/view_configs.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/mixins/drop_down.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/states/ready.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/plist_item.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/apps/greenhouse/views/web.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/controllers/page_design.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/css/css_style_sheet.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/object_designer.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/designers/view_designer.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/mixins/snap_lines.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/designer_drop_target.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/drawing.js +21 -21
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/designer/views/page_item_view.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/forms/views/form.js +59 -53
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/polymorphism/tests/models/polymorphism/simple.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu.js +14 -10
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/ext/menu_item.js +17 -6
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/popup_button.js +38 -14
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/select_view/views/select.js +5 -13
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_child.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/mixins/split_thumb.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/children.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/methods.js +20 -2
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/tests/split_thumb.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/split_view/views/split.js +35 -12
- data/lib/frameworks/sproutcore/frameworks/formatters/README +6 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/english.lproj/strings.js +174 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/formatters/date_formatter.js +351 -0
- data/lib/frameworks/sproutcore/frameworks/formatters/tests/date_formatter.js +517 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/core.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +345 -138
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/button.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +176 -42
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +137 -105
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/gestureable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editable.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_editor.js +16 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/static_layout.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/validatable.js +47 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/private/tree_item_observer.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/helpers/sizing.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +28 -6
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/render_delegate.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/benchmark.css +0 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/bootstrap.rhtml +34 -19
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/button_view.css +0 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/label.css +1 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +8 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/system/benchmark.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +179 -47
- data/lib/frameworks/sproutcore/frameworks/foundation/system/task_queue.js +34 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/text_selection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/user_defaults.js +26 -12
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_measurement.js +12 -4
- data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/string_metric_optimization.js +202 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/content_value_support/content.js +77 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/flowed_layout/tests.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/commitEditing.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editable/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/beginEditing.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/commitEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_editor/discardEditing.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/utils/pointInElement.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +163 -149
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/credit_card.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/password.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/validator.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +16 -43
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/views/inline_text_field.js +67 -54
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +49 -38
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +285 -242
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js +13 -13
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js +19 -22
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery-sc.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/jquery/jquery.js +231 -186
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +145 -143
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +156 -154
- data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js.orig +540 -0
- data/lib/frameworks/sproutcore/frameworks/routing/tests/system/routes.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +15 -8
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js +5 -5
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/ext/function.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/copyable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +98 -32
- data/lib/frameworks/sproutcore/frameworks/runtime/private/chain_observer.js +7 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_set.js +98 -13
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +8 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/enumerator.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/error.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +23 -6
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +69 -18
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +57 -31
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +189 -14
- data/lib/frameworks/sproutcore/frameworks/runtime/system/string.js +82 -22
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/chained.js +20 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +125 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/binding.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/rangeStartForIndex.js +37 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/index_set/remove.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/run_loop.js +75 -4
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/string.js +41 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/mixins/statechart_delegate.js +113 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/private/state_path_matcher.js +312 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/async.js +18 -22
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +508 -131
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state_route_handler_context.js +78 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +265 -44
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/basic/with_concurrent_states.js +16 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/event_handling/responder/responder_chain.js +11 -3
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/private/state_path_matcher.js +116 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/add_substate.js +108 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/with_concurrent.js +179 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/find_first_relative_current_state/without_concurrent.js +74 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_state.js +141 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/get_substate.js +340 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/route_triggered.js +161 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state/methods/try_to_handle_event.js +288 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/history_state/standard/without_concurrent_states/context.js +5 -33
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/with_concurrent_states/basic.js +213 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/routing/without_concurrent_states/basic.js +212 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/state_transitioning/standard/without_concurrent_states/core.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{state/namespacing.js → statechart/methods/get_state.js} +3 -41
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/statechart/{invoke_state_method.js → methods/invoke_state_method.js} +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/{event_handling/advanced → statechart}/respond_to_event.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/statechart/tests/system/state_route_handler_context/methods/retry.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/table/core.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/controls/button.js +0 -1
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars.js +29 -5
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/bind.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/collection.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/localization.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/ext/handlebars/view.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{handlebars → template_view}/handlebars.js +493 -357
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/mixins/template_helpers/text_field_support.js +13 -2
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/controls/button.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/checkbox_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/mixins/template_helpers/text_field_support.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/panes/template.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/collection.js +39 -14
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/tests/views/template/handlebars.js +57 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/bindable_span.js +21 -6
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template.js +9 -3
- data/lib/frameworks/sproutcore/frameworks/{core_foundation → template_view}/views/template_collection.js +55 -26
- data/lib/frameworks/sproutcore/frameworks/testing/system/equiv.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +122 -122
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/testing/system/suite.js +4 -4
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/base.css +1 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/reset.css +0 -1
- data/lib/frameworks/sproutcore/frameworks/yuireset/resources/view.css +4 -4
- data/lib/frameworks/sproutcore/lib/index.rhtml +55 -32
- data/lib/frameworks/sproutcore/license.js +2 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/body.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/18px/button.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/24px/button.css +21 -13
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/30px/button.css +17 -10
- data/lib/frameworks/sproutcore/themes/ace/resources/button/ace/44px/button.css +4 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/24px/button.css +20 -12
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/30px/button.css +16 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/jumbo/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/button/dark/small/button.css +17 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/disclosure/ace/disclosure.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/master-detail/master-detail.css +2 -2
- data/lib/frameworks/sproutcore/themes/ace/resources/picker/popover/popover.css +5 -3
- data/lib/frameworks/sproutcore/themes/iphone_theme/english.lproj/core.css +1 -1
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/toolbar.css +1 -1
- data/lib/gen/app/USAGE +17 -4
- data/lib/gen/language/Buildfile +4 -4
- data/lib/gen/language/USAGE +4 -4
- data/lib/gen/page/templates/pages/@target_name@/Buildfile +7 -7
- data/lib/gen/{html_app → statechart_app}/Buildfile +0 -0
- data/lib/gen/{html_app → statechart_app}/README +0 -0
- data/lib/gen/statechart_app/USAGE +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/Buildfile +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/core.js +24 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/main.js +26 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/_theme.css +18 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/loading.rhtml +9 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/resources/main_page.js +21 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/statechart.js +8 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/states/ready_state.js +12 -0
- data/lib/gen/statechart_app/templates/apps/@target_name@/theme.js +24 -0
- data/lib/sproutcore/builders.rb +1 -0
- data/lib/sproutcore/builders/base.rb +19 -1
- data/lib/sproutcore/builders/chance_file.rb +6 -1
- data/lib/sproutcore/builders/handlebars.rb +1 -9
- data/lib/sproutcore/builders/javascript.rb +1 -10
- data/lib/sproutcore/builders/json.rb +25 -0
- data/lib/sproutcore/builders/less.rb +1 -1
- data/lib/sproutcore/builders/sass.rb +1 -1
- data/lib/sproutcore/builders/stylesheet.rb +1 -9
- data/lib/sproutcore/helpers/html5_manifest.rb +1 -1
- data/lib/sproutcore/helpers/static_helper.rb +42 -0
- data/lib/sproutcore/rack/proxy.rb +21 -3
- data/lib/sproutcore/rack/service.rb +3 -2
- data/lib/sproutcore/tools.rb +18 -25
- data/lib/sproutcore/tools/gen.rb +10 -3
- data/lib/sproutcore/tools/init.rb +11 -10
- data/spec/buildtasks/manifest/prepare_build_tasks/json_spec.rb +62 -0
- data/spec/fixtures/builder_tests/apps/handlebars_test/Buildfile +1 -1
- data/spec/fixtures/builder_tests/apps/json_test/sc_static.json +2 -0
- data/spec/lib/builders/json_spec.rb +53 -0
- data/sproutcore.gemspec +2 -2
- data/vendor/chance/lib/chance/parser.rb +1 -1
- metadata +222 -177
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js +0 -259
- data/lib/frameworks/sproutcore/frameworks/documentation/core.js +0 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +0 -69
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +0 -44
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +0 -64
- data/lib/frameworks/sproutcore/frameworks/mini/license.js +0 -30
- data/lib/gen/html_app/USAGE +0 -15
- data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +0 -11
- data/lib/gen/html_app/templates/apps/@target_name@/resources/images/.gitkeep +0 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +0 -6
- data/lib/gen/html_app/templates/apps/@target_name@/resources/templates/@target_name@.handlebars +0 -1
- data/lib/gen/html_project/Buildfile +0 -45
- data/lib/gen/html_project/INIT +0 -3
- data/lib/gen/html_project/README +0 -1
- data/lib/gen/html_project/USAGE +0 -2
- data/lib/gen/html_project/templates/@filename@/Buildfile +0 -5
- data/lib/gen/html_project/templates/@filename@/README +0 -4
|
@@ -9,47 +9,47 @@ sc_require('views/collection');
|
|
|
9
9
|
sc_require('mixins/collection_row_delegate');
|
|
10
10
|
|
|
11
11
|
/** @class
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
A list view renders vertical lists of items. It is a specialized form of
|
|
14
14
|
collection view that is simpler than the table view, but more refined than
|
|
15
15
|
a generic collection.
|
|
16
|
-
|
|
16
|
+
|
|
17
17
|
You can use a list view just like a collection view, except that often you
|
|
18
|
-
also should provide a default rowHeight. Setting this value will allow
|
|
18
|
+
also should provide a default rowHeight. Setting this value will allow
|
|
19
19
|
the ListView to optimize its rendering.
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
## Variable Row Heights
|
|
22
22
|
|
|
23
|
-
Normally you set the row height through the rowHeight property. You can
|
|
24
|
-
also support custom row heights by implementing the
|
|
23
|
+
Normally you set the row height through the rowHeight property. You can
|
|
24
|
+
also support custom row heights by implementing the
|
|
25
25
|
contentCustomRowHeightIndexes property to return an index set.
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
## Using ListView with Very Large Data Sets
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
ListView implements incremental rendering, which means it will only render
|
|
30
30
|
HTML for the items that are current visible on the screen. You can use it
|
|
31
|
-
to efficiently render lists with 100K+ items very efficiently.
|
|
32
|
-
|
|
31
|
+
to efficiently render lists with 100K+ items very efficiently.
|
|
32
|
+
|
|
33
33
|
If you need to work with very large lists of items, however, be aware that
|
|
34
|
-
calculate variable rows heights can become very expensive since the list
|
|
34
|
+
calculate variable rows heights can become very expensive since the list
|
|
35
35
|
view will essentially have to iterate over every item in the collection to
|
|
36
|
-
collect its row height.
|
|
37
|
-
|
|
36
|
+
collect its row height.
|
|
37
|
+
|
|
38
38
|
To work with very large lists, you should consider making your row heights
|
|
39
|
-
uniform. This will allow the list view to efficiently render content
|
|
39
|
+
uniform. This will allow the list view to efficiently render content
|
|
40
40
|
without worrying about the overall performance.
|
|
41
|
-
|
|
42
|
-
Alternatively, you may want to consider overriding the
|
|
43
|
-
offsetForRowAtContentIndex() and heightForRowAtContentIndex() methods to
|
|
44
|
-
perform some faster calculations that do not require inspecting every
|
|
41
|
+
|
|
42
|
+
Alternatively, you may want to consider overriding the
|
|
43
|
+
offsetForRowAtContentIndex() and heightForRowAtContentIndex() methods to
|
|
44
|
+
perform some faster calculations that do not require inspecting every
|
|
45
45
|
item in the collection.
|
|
46
|
-
|
|
46
|
+
|
|
47
47
|
Note that row heights and offsets are cached so once they are calculated
|
|
48
48
|
the list view will be able to display very quickly.
|
|
49
|
-
|
|
50
|
-
(Can we also have an 'estimate row heights' property that will simply
|
|
49
|
+
|
|
50
|
+
(Can we also have an 'estimate row heights' property that will simply
|
|
51
51
|
cheat for very long data sets to make rendering more efficient?)
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
@extends SC.CollectionView
|
|
54
54
|
@extends SC.CollectionRowDelegate
|
|
55
55
|
@since SproutCore 1.0
|
|
@@ -69,33 +69,33 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
69
69
|
@default YES
|
|
70
70
|
*/
|
|
71
71
|
acceptsFirstResponder: YES,
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
/**
|
|
74
74
|
If set to YES, the default theme will show alternating rows
|
|
75
75
|
for the views this ListView created through exampleView property.
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
@type Boolean
|
|
78
78
|
@default NO
|
|
79
79
|
*/
|
|
80
80
|
showAlternatingRows: NO,
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
|
|
82
|
+
|
|
83
83
|
// ..........................................................
|
|
84
84
|
// METHODS
|
|
85
85
|
//
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
/** @private */
|
|
88
88
|
render: function(context, firstTime) {
|
|
89
89
|
context.setClass('alternating', this.get('showAlternatingRows'));
|
|
90
|
-
|
|
90
|
+
|
|
91
91
|
return sc_super();
|
|
92
92
|
},
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
// ..........................................................
|
|
96
96
|
// COLLECTION ROW DELEGATE SUPPORT
|
|
97
|
-
//
|
|
98
|
-
|
|
97
|
+
//
|
|
98
|
+
|
|
99
99
|
/**
|
|
100
100
|
@field
|
|
101
101
|
@type Object
|
|
@@ -108,8 +108,8 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
108
108
|
|
|
109
109
|
return this.delegateFor('isCollectionRowDelegate', del, content);
|
|
110
110
|
}.property('delegate', 'content').cacheable(),
|
|
111
|
-
|
|
112
|
-
/** @private
|
|
111
|
+
|
|
112
|
+
/** @private
|
|
113
113
|
Whenever the rowDelegate changes, begin observing important properties
|
|
114
114
|
*/
|
|
115
115
|
_sclv_rowDelegateDidChange: function() {
|
|
@@ -117,35 +117,35 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
117
117
|
del = this.get('rowDelegate'),
|
|
118
118
|
func = this._sclv_rowHeightDidChange,
|
|
119
119
|
func2 = this._sclv_customRowHeightIndexesDidChange;
|
|
120
|
-
|
|
120
|
+
|
|
121
121
|
if (last === del) return this; // nothing to do
|
|
122
|
-
this._sclv_rowDelegate = del;
|
|
122
|
+
this._sclv_rowDelegate = del;
|
|
123
123
|
|
|
124
124
|
// last may be null on a new object
|
|
125
125
|
if (last) {
|
|
126
126
|
last.removeObserver('rowHeight', this, func);
|
|
127
127
|
last.removeObserver('customRowHeightIndexes', this, func2);
|
|
128
128
|
}
|
|
129
|
-
|
|
129
|
+
|
|
130
130
|
if (!del) {
|
|
131
131
|
throw "Internal Inconsistancy: ListView must always have CollectionRowDelegate";
|
|
132
132
|
}
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
del.addObserver('rowHeight', this, func);
|
|
135
135
|
del.addObserver('customRowHeightIndexes', this, func2);
|
|
136
136
|
this._sclv_rowHeightDidChange()._sclv_customRowHeightIndexesDidChange();
|
|
137
137
|
return this ;
|
|
138
138
|
}.observes('rowDelegate'),
|
|
139
139
|
|
|
140
|
-
/** @private
|
|
140
|
+
/** @private
|
|
141
141
|
called whenever the rowHeight changes. If the property actually changed
|
|
142
142
|
then invalidate all row heights.
|
|
143
143
|
*/
|
|
144
144
|
_sclv_rowHeightDidChange: function() {
|
|
145
145
|
var del = this.get('rowDelegate'),
|
|
146
|
-
height = del.get('rowHeight'),
|
|
146
|
+
height = del.get('rowHeight'),
|
|
147
147
|
indexes;
|
|
148
|
-
|
|
148
|
+
|
|
149
149
|
if (height === this._sclv_rowHeight) return this; // nothing to do
|
|
150
150
|
this._sclv_rowHeight = height;
|
|
151
151
|
|
|
@@ -154,16 +154,16 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
154
154
|
return this ;
|
|
155
155
|
},
|
|
156
156
|
|
|
157
|
-
/** @private
|
|
158
|
-
called whenever the customRowHeightIndexes changes. If the property
|
|
157
|
+
/** @private
|
|
158
|
+
called whenever the customRowHeightIndexes changes. If the property
|
|
159
159
|
actually changed then invalidate affected row heights.
|
|
160
160
|
*/
|
|
161
161
|
_sclv_customRowHeightIndexesDidChange: function() {
|
|
162
162
|
var del = this.get('rowDelegate'),
|
|
163
|
-
indexes = del.get('customRowHeightIndexes'),
|
|
163
|
+
indexes = del.get('customRowHeightIndexes'),
|
|
164
164
|
last = this._sclv_customRowHeightIndexes,
|
|
165
165
|
func = this._sclv_customRowHeightIndexesContentDidChange;
|
|
166
|
-
|
|
166
|
+
|
|
167
167
|
// nothing to do
|
|
168
168
|
if ((indexes===last) || (last && last.isEqual(indexes))) return this;
|
|
169
169
|
|
|
@@ -171,12 +171,12 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
171
171
|
if (last && this._sclv_isObservingCustomRowHeightIndexes) {
|
|
172
172
|
last.removeObserver('[]', this, func);
|
|
173
173
|
}
|
|
174
|
-
|
|
174
|
+
|
|
175
175
|
// only observe new index set if it exists and it is not frozen.
|
|
176
176
|
if (this._sclv_isObservingCustomRowHeightIndexes = indexes && !indexes.get('isFrozen')) {
|
|
177
177
|
indexes.addObserver('[]', this, func);
|
|
178
178
|
}
|
|
179
|
-
|
|
179
|
+
|
|
180
180
|
this._sclv_customRowHeightIndexesContentDidChange();
|
|
181
181
|
return this ;
|
|
182
182
|
},
|
|
@@ -186,30 +186,30 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
186
186
|
*/
|
|
187
187
|
_sclv_customRowHeightIndexesContentDidChange: function() {
|
|
188
188
|
var del = this.get('rowDelegate'),
|
|
189
|
-
indexes = del.get('customRowHeightIndexes'),
|
|
190
|
-
last = this._sclv_customRowHeightIndexes,
|
|
189
|
+
indexes = del.get('customRowHeightIndexes'),
|
|
190
|
+
last = this._sclv_customRowHeightIndexes,
|
|
191
191
|
changed;
|
|
192
192
|
|
|
193
193
|
// compute the set to invalidate. the union of cur and last set
|
|
194
194
|
if (indexes && last) {
|
|
195
195
|
changed = indexes.copy().add(last);
|
|
196
196
|
} else changed = indexes || last ;
|
|
197
|
-
this._sclv_customRowHeightIndexes = indexes ? indexes.frozenCopy() : null;
|
|
197
|
+
this._sclv_customRowHeightIndexes = indexes ? indexes.frozenCopy() : null;
|
|
198
198
|
|
|
199
199
|
// invalidate
|
|
200
200
|
this.rowHeightDidChangeForIndexes(changed);
|
|
201
201
|
return this ;
|
|
202
202
|
},
|
|
203
|
-
|
|
204
|
-
|
|
203
|
+
|
|
204
|
+
|
|
205
205
|
// ..........................................................
|
|
206
206
|
// ROW PROPERTIES
|
|
207
|
-
//
|
|
208
|
-
|
|
207
|
+
//
|
|
208
|
+
|
|
209
209
|
/**
|
|
210
210
|
Returns the top offset for the specified content index. This will take
|
|
211
211
|
into account any custom row heights and group views.
|
|
212
|
-
|
|
212
|
+
|
|
213
213
|
@param {Number} idx the content index
|
|
214
214
|
@returns {Number} the row offset
|
|
215
215
|
*/
|
|
@@ -219,16 +219,16 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
219
219
|
var del = this.get('rowDelegate'),
|
|
220
220
|
rowHeight = del.get('rowHeight'),
|
|
221
221
|
rowSpacing, ret, custom, cache, delta, max, content ;
|
|
222
|
-
|
|
222
|
+
|
|
223
223
|
ret = idx * rowHeight;
|
|
224
224
|
|
|
225
225
|
rowSpacing = this.get('rowSpacing');
|
|
226
|
-
if(rowSpacing){
|
|
227
|
-
ret += idx * rowSpacing;
|
|
228
|
-
}
|
|
226
|
+
if(rowSpacing){
|
|
227
|
+
ret += idx * rowSpacing;
|
|
228
|
+
}
|
|
229
229
|
|
|
230
230
|
if (del.customRowHeightIndexes && (custom=del.get('customRowHeightIndexes'))) {
|
|
231
|
-
|
|
231
|
+
|
|
232
232
|
// prefill the cache with custom rows.
|
|
233
233
|
cache = this._sclv_offsetCache;
|
|
234
234
|
if (!cache) {
|
|
@@ -243,8 +243,8 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
243
243
|
// moved down so that the cache is not marked as initialized until it actually is
|
|
244
244
|
this._sclv_offsetCache = cache;
|
|
245
245
|
}
|
|
246
|
-
|
|
247
|
-
// now just get the delta for the last custom row before the current
|
|
246
|
+
|
|
247
|
+
// now just get the delta for the last custom row before the current
|
|
248
248
|
// idx.
|
|
249
249
|
delta = cache[idx];
|
|
250
250
|
if (delta === undefined) {
|
|
@@ -258,21 +258,21 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
258
258
|
|
|
259
259
|
ret += delta ;
|
|
260
260
|
}
|
|
261
|
-
|
|
261
|
+
|
|
262
262
|
return ret ;
|
|
263
263
|
},
|
|
264
|
-
|
|
264
|
+
|
|
265
265
|
/**
|
|
266
266
|
Returns the row height for the specified content index. This will take
|
|
267
267
|
into account custom row heights and group rows.
|
|
268
|
-
|
|
268
|
+
|
|
269
269
|
@param {Number} idx content index
|
|
270
270
|
@returns {Number} the row height
|
|
271
271
|
*/
|
|
272
272
|
rowHeightForContentIndex: function(idx) {
|
|
273
273
|
var del = this.get('rowDelegate'),
|
|
274
274
|
ret, cache, content, indexes;
|
|
275
|
-
|
|
275
|
+
|
|
276
276
|
if (del.customRowHeightIndexes && (indexes=del.get('customRowHeightIndexes'))) {
|
|
277
277
|
cache = this._sclv_heightCache ;
|
|
278
278
|
if (!cache) {
|
|
@@ -284,14 +284,14 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
284
284
|
// moved down so that the cache is not marked as initialized until it actually is
|
|
285
285
|
this._sclv_heightCache = cache;
|
|
286
286
|
}
|
|
287
|
-
|
|
287
|
+
|
|
288
288
|
ret = cache[idx];
|
|
289
289
|
if (ret === undefined) ret = del.get('rowHeight');
|
|
290
290
|
} else ret = del.get('rowHeight');
|
|
291
|
-
|
|
291
|
+
|
|
292
292
|
return ret ;
|
|
293
293
|
},
|
|
294
|
-
|
|
294
|
+
|
|
295
295
|
/**
|
|
296
296
|
Call this method whenever a row height has changed in one or more indexes.
|
|
297
297
|
This will invalidate the row height cache and reload the content indexes.
|
|
@@ -299,28 +299,39 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
299
299
|
|
|
300
300
|
This method is called automatically whenever you change the rowHeight
|
|
301
301
|
or customRowHeightIndexes properties on the collectionRowDelegate.
|
|
302
|
-
|
|
303
|
-
@param {SC.IndexSet|Number} indexes
|
|
302
|
+
|
|
303
|
+
@param {SC.IndexSet|Number} indexes
|
|
304
304
|
@returns {SC.ListView} receiver
|
|
305
|
-
*/
|
|
305
|
+
*/
|
|
306
306
|
rowHeightDidChangeForIndexes: function(indexes) {
|
|
307
307
|
var len = this.get('length');
|
|
308
308
|
|
|
309
309
|
// clear any cached offsets
|
|
310
310
|
this._sclv_heightCache = this._sclv_offsetCache = null;
|
|
311
|
-
|
|
311
|
+
|
|
312
312
|
// find the smallest index changed; invalidate everything past it
|
|
313
313
|
if (indexes && indexes.isIndexSet) indexes = indexes.get('min');
|
|
314
314
|
this.reload(SC.IndexSet.create(indexes, len-indexes));
|
|
315
315
|
return this ;
|
|
316
316
|
},
|
|
317
|
-
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
@private
|
|
320
|
+
When the length changes, so does the layout. CollectionView doesn't
|
|
321
|
+
know to do this, because it only asks for layout when it reloads--which
|
|
322
|
+
makes sense, as it is agnostic to any layout logic (for all it knows, the
|
|
323
|
+
items in the collection are not in a completely random order relative to layout)
|
|
324
|
+
*/
|
|
325
|
+
_sclv_lengthDidChange: function() {
|
|
326
|
+
this.adjust(this.computeLayout());
|
|
327
|
+
}.observes('length'),
|
|
328
|
+
|
|
318
329
|
// ..........................................................
|
|
319
330
|
// SUBCLASS IMPLEMENTATIONS
|
|
320
|
-
//
|
|
321
|
-
|
|
331
|
+
//
|
|
332
|
+
|
|
322
333
|
/**
|
|
323
|
-
The layout for a ListView is computed from the total number of rows
|
|
334
|
+
The layout for a ListView is computed from the total number of rows
|
|
324
335
|
along with any custom row heights.
|
|
325
336
|
*/
|
|
326
337
|
computeLayout: function() {
|
|
@@ -331,17 +342,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
331
342
|
this.set('calculatedHeight',ret.minHeight);
|
|
332
343
|
return ret ;
|
|
333
344
|
},
|
|
334
|
-
|
|
345
|
+
|
|
335
346
|
/**
|
|
336
347
|
Computes the layout for a specific content index by combining the current
|
|
337
348
|
row heights.
|
|
338
|
-
|
|
349
|
+
|
|
339
350
|
@param {Number} contentIndex
|
|
340
351
|
@returns {Hash} layout hash for the index provided
|
|
341
352
|
*/
|
|
342
353
|
layoutForContentIndex: function(contentIndex) {
|
|
343
354
|
var del = this.get('rowDelegate');
|
|
344
|
-
|
|
355
|
+
|
|
345
356
|
return {
|
|
346
357
|
top: this.rowOffsetForContentIndex(contentIndex),
|
|
347
358
|
height: this.rowHeightForContentIndex(contentIndex) - del.get('rowPadding') * 2,
|
|
@@ -349,17 +360,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
349
360
|
right: 0
|
|
350
361
|
};
|
|
351
362
|
},
|
|
352
|
-
|
|
363
|
+
|
|
353
364
|
/**
|
|
354
|
-
Override to return an IndexSet with the indexes that are at least
|
|
355
|
-
partially visible in the passed rectangle. This method is used by the
|
|
356
|
-
default implementation of computeNowShowing() to determine the new
|
|
365
|
+
Override to return an IndexSet with the indexes that are at least
|
|
366
|
+
partially visible in the passed rectangle. This method is used by the
|
|
367
|
+
default implementation of computeNowShowing() to determine the new
|
|
357
368
|
nowShowing range after a scroll.
|
|
358
|
-
|
|
369
|
+
|
|
359
370
|
Override this method to implement incremental rendering.
|
|
360
|
-
|
|
371
|
+
|
|
361
372
|
The default simply returns the current content length.
|
|
362
|
-
|
|
373
|
+
|
|
363
374
|
@param {Rect} rect the visible rect or a point
|
|
364
375
|
@returns {SC.IndexSet} now showing indexes
|
|
365
376
|
*/
|
|
@@ -371,17 +382,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
371
382
|
len = this.get('length'),
|
|
372
383
|
offset, start, end;
|
|
373
384
|
|
|
374
|
-
// estimate the starting row and then get actual offsets until we are
|
|
385
|
+
// estimate the starting row and then get actual offsets until we are
|
|
375
386
|
// right.
|
|
376
387
|
start = (top - (top % rowHeight)) / rowHeight;
|
|
377
388
|
offset = this.rowOffsetForContentIndex(start);
|
|
378
|
-
|
|
389
|
+
|
|
379
390
|
// go backwards until top of row is before top edge
|
|
380
391
|
while(start>0 && offset>top) {
|
|
381
392
|
start--;
|
|
382
393
|
offset -= this.rowHeightForContentIndex(start);
|
|
383
394
|
}
|
|
384
|
-
|
|
395
|
+
|
|
385
396
|
// go forwards until bottom of row is after top edge
|
|
386
397
|
offset += this.rowHeightForContentIndex(start);
|
|
387
398
|
while(start<len && offset<=top) {
|
|
@@ -390,61 +401,53 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
390
401
|
}
|
|
391
402
|
if (start<0) start = 0;
|
|
392
403
|
if (start>=len) start=len;
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
// estimate the final row and then get the actual offsets until we are
|
|
404
|
+
|
|
405
|
+
|
|
406
|
+
// estimate the final row and then get the actual offsets until we are
|
|
396
407
|
// right. - look at the offset of the _following_ row
|
|
397
408
|
end = start + ((height - (height % rowHeight)) / rowHeight) ;
|
|
398
409
|
if (end > len) end = len;
|
|
399
410
|
offset = this.rowOffsetForContentIndex(end);
|
|
400
|
-
|
|
411
|
+
|
|
401
412
|
// walk backwards until top of row is before or at bottom edge
|
|
402
413
|
while(end>=start && offset>=bottom) {
|
|
403
414
|
end--;
|
|
404
415
|
offset -= this.rowHeightForContentIndex(end);
|
|
405
416
|
}
|
|
406
|
-
|
|
417
|
+
|
|
407
418
|
// go forwards until bottom of row is after bottom edge
|
|
408
419
|
offset += this.rowHeightForContentIndex(end);
|
|
409
420
|
while(end<len && offset<bottom) {
|
|
410
421
|
end++;
|
|
411
422
|
offset += this.rowHeightForContentIndex(end);
|
|
412
423
|
}
|
|
413
|
-
|
|
424
|
+
|
|
414
425
|
end++; // end should be after start
|
|
415
|
-
|
|
416
|
-
// if height is greater than 0, on some platforms we should just render
|
|
417
|
-
// to specific windows in order to minimize render time.
|
|
418
|
-
// if (height > 0 && !SC.browser.msie) {
|
|
419
|
-
// start = start - (start % 50);
|
|
420
|
-
// if (start < 0) start = 0 ;
|
|
421
|
-
// end = end - (end % 50) + 50;
|
|
422
|
-
// }
|
|
423
|
-
|
|
426
|
+
|
|
424
427
|
if (end<start) end = start;
|
|
425
428
|
if (end>len) end = len ;
|
|
426
|
-
|
|
429
|
+
|
|
427
430
|
// convert to IndexSet and return
|
|
428
431
|
return SC.IndexSet.create(start, end-start);
|
|
429
432
|
},
|
|
430
|
-
|
|
431
|
-
|
|
433
|
+
|
|
434
|
+
|
|
432
435
|
// ..........................................................
|
|
433
436
|
// DRAG AND ROP SUPPORT
|
|
434
|
-
//
|
|
435
|
-
|
|
437
|
+
//
|
|
438
|
+
|
|
436
439
|
/**
|
|
437
|
-
Default view class used to draw an insertion point. The default
|
|
440
|
+
Default view class used to draw an insertion point. The default
|
|
438
441
|
view will show a vertical line. Any view you create
|
|
439
442
|
should expect an outlineLevel property set, which should impact your left
|
|
440
443
|
offset.
|
|
441
|
-
|
|
444
|
+
|
|
442
445
|
@field
|
|
443
446
|
@type SC.View
|
|
444
447
|
*/
|
|
445
448
|
insertionPointView: SC.View.extend({
|
|
446
449
|
classNames: 'sc-list-insertion-point',
|
|
447
|
-
|
|
450
|
+
|
|
448
451
|
/** @private */
|
|
449
452
|
render: function(context, firstTime) {
|
|
450
453
|
if (firstTime) context.push('<div class="anchor"></div>');
|
|
@@ -458,10 +461,10 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
458
461
|
showInsertionPoint: function(itemView, dropOperation) {
|
|
459
462
|
var view = this._insertionPointView;
|
|
460
463
|
if (!view) {
|
|
461
|
-
view = this._insertionPointView
|
|
464
|
+
view = this._insertionPointView
|
|
462
465
|
= this.get('insertionPointView').create();
|
|
463
466
|
}
|
|
464
|
-
|
|
467
|
+
|
|
465
468
|
var index = itemView.get('contentIndex'),
|
|
466
469
|
len = this.get('length'),
|
|
467
470
|
layout = SC.clone(itemView.get('layout')),
|
|
@@ -470,7 +473,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
470
473
|
group;
|
|
471
474
|
|
|
472
475
|
// show item indented if we are inserting at the end and the last item
|
|
473
|
-
// is a group item. This is a special case that should really be
|
|
476
|
+
// is a group item. This is a special case that should really be
|
|
474
477
|
// converted into a more general protocol.
|
|
475
478
|
if ((index >= len) && index>0) {
|
|
476
479
|
group = this.itemViewForContentIndex(len-1);
|
|
@@ -479,9 +482,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
479
482
|
indent = group.get('outlineIndent');
|
|
480
483
|
}
|
|
481
484
|
}
|
|
482
|
-
|
|
485
|
+
|
|
483
486
|
if (SC.none(level)) level = -1;
|
|
484
|
-
|
|
487
|
+
|
|
485
488
|
if (dropOperation & SC.DROP_ON) {
|
|
486
489
|
this.hideInsertionPoint();
|
|
487
490
|
itemView.set('isSelected', YES);
|
|
@@ -492,9 +495,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
492
495
|
this._lastDropOnView.set('isSelected', NO);
|
|
493
496
|
this._lastDropOnView = null;
|
|
494
497
|
}
|
|
495
|
-
|
|
498
|
+
|
|
496
499
|
if (dropOperation & SC.DROP_AFTER) layout.top += layout.height;
|
|
497
|
-
|
|
500
|
+
|
|
498
501
|
layout.height = 2;
|
|
499
502
|
layout.right = 0;
|
|
500
503
|
layout.left = ((level+1) * indent) + 12;
|
|
@@ -504,7 +507,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
504
507
|
this.appendChild(view);
|
|
505
508
|
}
|
|
506
509
|
},
|
|
507
|
-
|
|
510
|
+
|
|
508
511
|
/**
|
|
509
512
|
@see SC.CollectionView#hideInsertionPoint
|
|
510
513
|
*/
|
|
@@ -513,17 +516,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
513
516
|
this._lastDropOnView.set('isSelected', NO);
|
|
514
517
|
this._lastDropOnView = null;
|
|
515
518
|
}
|
|
516
|
-
|
|
519
|
+
|
|
517
520
|
var view = this._insertionPointView;
|
|
518
521
|
if (view) view.removeFromParent().destroy();
|
|
519
522
|
this._insertionPointView = null;
|
|
520
523
|
},
|
|
521
524
|
|
|
522
525
|
/**
|
|
523
|
-
Compute the insertion index for the passed location. The location is
|
|
526
|
+
Compute the insertion index for the passed location. The location is
|
|
524
527
|
a point, relative to the top/left corner of the receiver view. The return
|
|
525
528
|
value is an index plus a dropOperation, which is computed as such:
|
|
526
|
-
|
|
529
|
+
|
|
527
530
|
- if outlining is not used and you are within 5px of an edge, DROP_BEFORE
|
|
528
531
|
the item after the edge.
|
|
529
532
|
- if outlining is used and you are within 5px of an edge and the previous
|
|
@@ -531,7 +534,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
531
534
|
the previous item if you are closer to that outline level.
|
|
532
535
|
- if dropOperation = SC.DROP_ON and you are over the middle of a row, then
|
|
533
536
|
use DROP_ON.
|
|
534
|
-
|
|
537
|
+
|
|
535
538
|
@see SC.CollectionView.insertionIndexForLocation
|
|
536
539
|
*/
|
|
537
540
|
insertionIndexForLocation: function(loc, dropOperation) {
|
|
@@ -542,7 +545,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
542
545
|
min, max, diff, clevel, cindent, plevel, pindent, itemView, pgroup;
|
|
543
546
|
|
|
544
547
|
// if there are no indexes in the rect, then we need to either insert
|
|
545
|
-
// before the top item or after the last item. Figure that out by
|
|
548
|
+
// before the top item or after the last item. Figure that out by
|
|
546
549
|
// computing both.
|
|
547
550
|
if (SC.none(index) || index<0) {
|
|
548
551
|
if ((len===0) || (loc.y <= this.rowOffsetForContentIndex(0))) index = 0;
|
|
@@ -552,23 +555,20 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
552
555
|
// figure the range of the row the location must be within.
|
|
553
556
|
min = this.rowOffsetForContentIndex(index);
|
|
554
557
|
max = min + this.rowHeightForContentIndex(index);
|
|
555
|
-
|
|
558
|
+
|
|
556
559
|
// now we know which index we are in. if dropOperation is DROP_ON, figure
|
|
557
560
|
// if we can drop on or not.
|
|
558
561
|
if (dropOperation == SC.DROP_ON) {
|
|
559
562
|
// editable size - reduce height by a bit to handle dropping
|
|
560
563
|
if (this.get('isEditable')) diff=Math.min(Math.floor((max-min)*0.2),5);
|
|
561
564
|
else diff = 0;
|
|
562
|
-
|
|
565
|
+
|
|
563
566
|
// if we're inside the range, then DROP_ON
|
|
564
567
|
if (loc.y >= (min+diff) || loc.y <= (max+diff)) {
|
|
565
568
|
return [index, SC.DROP_ON];
|
|
566
569
|
}
|
|
567
570
|
}
|
|
568
|
-
|
|
569
|
-
// ok, now if we are in last 10px, go to next item.
|
|
570
|
-
if ((index<len) && (loc.y >= max-10)) index++;
|
|
571
|
-
|
|
571
|
+
|
|
572
572
|
// finally, let's decide if we want to actually insert before/after. Only
|
|
573
573
|
// matters if we are using outlining.
|
|
574
574
|
if (index>0) {
|
|
@@ -576,7 +576,7 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
576
576
|
itemView = this.itemViewForContentIndex(index-1);
|
|
577
577
|
pindent = (itemView ? itemView.get('outlineIndent') : 0) || 0;
|
|
578
578
|
plevel = itemView ? itemView.get('outlineLevel') : 0;
|
|
579
|
-
|
|
579
|
+
|
|
580
580
|
if (index<len) {
|
|
581
581
|
itemView = this.itemViewForContentIndex(index);
|
|
582
582
|
clevel = itemView ? itemView.get('outlineLevel') : 0;
|
|
@@ -584,15 +584,15 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
584
584
|
cindent *= clevel;
|
|
585
585
|
} else {
|
|
586
586
|
clevel = itemView.get('isGroupView') ? 1 : 0; // special case...
|
|
587
|
-
cindent = pindent * clevel;
|
|
587
|
+
cindent = pindent * clevel;
|
|
588
588
|
}
|
|
589
589
|
|
|
590
590
|
pindent *= plevel;
|
|
591
591
|
|
|
592
|
-
// if indent levels are different, then try to figure out which level
|
|
592
|
+
// if indent levels are different, then try to figure out which level
|
|
593
593
|
// it should be on.
|
|
594
594
|
if ((clevel !== plevel) && (cindent !== pindent)) {
|
|
595
|
-
|
|
595
|
+
|
|
596
596
|
// use most inner indent as boundary
|
|
597
597
|
if (pindent > cindent) {
|
|
598
598
|
index--;
|
|
@@ -601,9 +601,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
601
601
|
}
|
|
602
602
|
}
|
|
603
603
|
|
|
604
|
-
// we do not support dropping before a group item. If dropping before
|
|
604
|
+
// we do not support dropping before a group item. If dropping before
|
|
605
605
|
// a group item, always try to instead drop after the previous item. If
|
|
606
|
-
// the previous item is also a group then, well, dropping is just not
|
|
606
|
+
// the previous item is also a group then, well, dropping is just not
|
|
607
607
|
// allowed. Note also that dropping at 0, first item must not be group
|
|
608
608
|
// and dropping at length, last item must not be a group
|
|
609
609
|
//
|
|
@@ -612,9 +612,9 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
612
612
|
if (!itemView || itemView.get('isGroupView')) {
|
|
613
613
|
if (index>0) {
|
|
614
614
|
itemView = this.itemViewForContentIndex(index-1);
|
|
615
|
-
|
|
615
|
+
|
|
616
616
|
// don't allow a drop if the previous item is a group view and we're
|
|
617
|
-
// insert before the end. For the end, allow the drop if the
|
|
617
|
+
// insert before the end. For the end, allow the drop if the
|
|
618
618
|
// previous item is a group view but OPEN.
|
|
619
619
|
if (!itemView.get('isGroupView') || (itemView.get('disclosureState') === SC.BRANCH_OPEN)) {
|
|
620
620
|
index = index-1;
|
|
@@ -623,14 +623,14 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
623
623
|
|
|
624
624
|
} else index = -1;
|
|
625
625
|
}
|
|
626
|
-
|
|
626
|
+
|
|
627
627
|
if (index<0) dropOperation = SC.DRAG_NONE ;
|
|
628
|
-
}
|
|
629
|
-
|
|
628
|
+
}
|
|
629
|
+
|
|
630
630
|
// return whatever we came up with
|
|
631
631
|
return [index, dropOperation];
|
|
632
632
|
},
|
|
633
|
-
|
|
633
|
+
|
|
634
634
|
/** @private */
|
|
635
635
|
mouseWheel: function(evt) {
|
|
636
636
|
// The following commits changes in a list item that is being edited,
|
|
@@ -641,17 +641,17 @@ SC.ListView = SC.CollectionView.extend(SC.CollectionRowDelegate,
|
|
|
641
641
|
SC.InlineTextFieldView.commitEditing();
|
|
642
642
|
}
|
|
643
643
|
}
|
|
644
|
-
return NO ;
|
|
644
|
+
return NO ;
|
|
645
645
|
},
|
|
646
|
-
|
|
646
|
+
|
|
647
647
|
// ..........................................................
|
|
648
648
|
// INTERNAL SUPPORT
|
|
649
|
-
//
|
|
649
|
+
//
|
|
650
650
|
|
|
651
651
|
/** @private */
|
|
652
652
|
init: function() {
|
|
653
653
|
sc_super();
|
|
654
654
|
this._sclv_rowDelegateDidChange();
|
|
655
|
-
}
|
|
656
|
-
|
|
655
|
+
}
|
|
656
|
+
|
|
657
657
|
});
|