| Index: ui/file_manager/file_manager/foreground/js/ui/file_list_selection_model.js
|
| diff --git a/ui/file_manager/file_manager/foreground/js/ui/file_list_selection_model.js b/ui/file_manager/file_manager/foreground/js/ui/file_list_selection_model.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..77589fb956dc7bbc2cfc97c43e9caa0c10dae695
|
| --- /dev/null
|
| +++ b/ui/file_manager/file_manager/foreground/js/ui/file_list_selection_model.js
|
| @@ -0,0 +1,89 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +/**
|
| + * @param {number=} opt_length The number items in the selection.
|
| + * @constructor
|
| + * @extends {cr.ui.ListSelectionModel}
|
| + * @struct
|
| + * @suppress {checkStructDictInheritance}
|
| + */
|
| +function FileListSelectionModel(opt_length) {
|
| + cr.ui.ListSelectionModel.call(this, opt_length);
|
| +
|
| + /** @private {boolean} */
|
| + this.isCheckSelectMode_ = false;
|
| +
|
| + this.addEventListener('change', this.onChangeEvent_.bind(this));
|
| +}
|
| +
|
| +FileListSelectionModel.prototype = /** @struct */ {
|
| + __proto__: cr.ui.ListSelectionModel.prototype
|
| +};
|
| +
|
| +/**
|
| + * Updates the check-select mode.
|
| + * @param {boolean} enabled True if check-select mode should be enabled.
|
| + */
|
| +FileListSelectionModel.prototype.setCheckSelectMode = function(enabled) {
|
| + this.isCheckSelectMode_ = enabled;
|
| +};
|
| +
|
| +/**
|
| + * Gets the check-select mode.
|
| + * @return {boolean} True if check-select mode is enabled.
|
| + */
|
| +FileListSelectionModel.prototype.getCheckSelectMode = function() {
|
| + return this.isCheckSelectMode_;
|
| +};
|
| +
|
| +/**
|
| + * Handles change event to update isCheckSelectMode_ BEFORE the change event is
|
| + * dispatched to other listeners.
|
| + * @param {!Event} event Event object of 'change' event.
|
| + * @private
|
| + */
|
| +FileListSelectionModel.prototype.onChangeEvent_ = function(event) {
|
| + // When the number of selected item is not one, update che check-select mode.
|
| + // When the number of selected item is one, the mode depends on the last
|
| + // keyboard/mouse operation. In this case, the mode is controlled from
|
| + // outside. See filelist.handlePointerDownUp and filelist.handleKeyDown.
|
| + var selectedIndexes = this.selectedIndexes;
|
| + if (selectedIndexes.length === 0) {
|
| + this.isCheckSelectMode_ = false;
|
| + } else if (selectedIndexes.length >= 2) {
|
| + this.isCheckSelectMode_ = true;
|
| + }
|
| +};
|
| +
|
| +/**
|
| + * @param {number=} opt_length The number items in the selection.
|
| + * @constructor
|
| + * @extends {cr.ui.ListSingleSelectionModel}
|
| + * @struct
|
| + * @suppress {checkStructDictInheritance}
|
| + */
|
| +function FileListSingleSelectionModel(opt_length) {
|
| + cr.ui.ListSingleSelectionModel.call(this, opt_length);
|
| +}
|
| +
|
| +FileListSingleSelectionModel.prototype = /** @struct */ {
|
| + __proto__: cr.ui.ListSingleSelectionModel.prototype
|
| +};
|
| +
|
| +/**
|
| + * Updates the check-select mode.
|
| + * @param {boolean} enabled True if check-select mode should be enabled.
|
| + */
|
| +FileListSingleSelectionModel.prototype.setCheckSelectMode = function(enabled) {
|
| + // Do nothing, as check-select mode is invalid in single selection model.
|
| +};
|
| +
|
| +/**
|
| + * Gets the check-select mode.
|
| + * @return {boolean} True if check-select mode is enabled.
|
| + */
|
| +FileListSingleSelectionModel.prototype.getCheckSelectMode = function() {
|
| + return false;
|
| +};
|
|
|