| Index: ui/file_manager/file_manager/foreground/js/navigation_list_model.js
|
| diff --git a/ui/file_manager/file_manager/foreground/js/navigation_list_model.js b/ui/file_manager/file_manager/foreground/js/navigation_list_model.js
|
| deleted file mode 100644
|
| index 62b031d9ea59072f4c3f314794dd95d6699703d0..0000000000000000000000000000000000000000
|
| --- a/ui/file_manager/file_manager/foreground/js/navigation_list_model.js
|
| +++ /dev/null
|
| @@ -1,290 +0,0 @@
|
| -// Copyright (c) 2012 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.
|
| -
|
| -'use strict';
|
| -
|
| -/**
|
| - * Base item of NavigationListModel. Should not be created directly.
|
| - * @param {string} label Label.
|
| - * @constructor
|
| - */
|
| -function NavigationModelItem(label) {
|
| - this.label_ = label;
|
| -}
|
| -
|
| -NavigationModelItem.prototype = {
|
| - get label() { return this.label_; }
|
| -};
|
| -
|
| -/**
|
| - * Check whether given two model items are same.
|
| - * @param {NavigationModelItem} item1 The first item to be compared.
|
| - * @param {NavigationModelItem} item2 The second item to be compared.
|
| - * @return {boolean} True if given two model items are same.
|
| - */
|
| -NavigationModelItem.isSame = function(item1, item2) {
|
| - if (item1.isVolume != item2.isVolume)
|
| - return false;
|
| -
|
| - if (item1.isVolume)
|
| - return item1.volumeInfo === item2.volumeInfo;
|
| - else
|
| - return util.isSameEntry(item1.entry, item2.entry);
|
| -};
|
| -
|
| -/**
|
| - * Item of NavigationListModel for shortcuts.
|
| - *
|
| - * @param {string} label Label.
|
| - * @param {!DirectoryEntry} entry Entry. Cannot be null.
|
| - * @constructor
|
| - * @extends {NavigationModelItem}
|
| - */
|
| -function NavigationModelShortcutItem(label, entry) {
|
| - NavigationModelItem.call(this, label);
|
| - this.entry_ = entry;
|
| - Object.freeze(this);
|
| -}
|
| -
|
| -NavigationModelShortcutItem.prototype = {
|
| - __proto__: NavigationModelItem.prototype,
|
| - get entry() { return this.entry_; },
|
| - get isVolume() { return false; },
|
| - get isShortcut() { return true; }
|
| -};
|
| -
|
| -/**
|
| - * Item of NavigationListModel for volumes.
|
| - *
|
| - * @param {string} label Label.
|
| - * @param {!VolumeInfo} volumeInfo Volume info for the volume. Cannot be null.
|
| - * @constructor
|
| - * @extends {NavigationModelItem}
|
| - */
|
| -function NavigationModelVolumeItem(label, volumeInfo) {
|
| - NavigationModelItem.call(this, label);
|
| - this.volumeInfo_ = volumeInfo;
|
| - // Start resolving the display root because it is used
|
| - // for determining executability of commands.
|
| - this.volumeInfo_.resolveDisplayRoot(
|
| - function() {}, function() {});
|
| - Object.freeze(this);
|
| -}
|
| -
|
| -NavigationModelVolumeItem.prototype = {
|
| - __proto__: NavigationModelItem.prototype,
|
| - get volumeInfo() { return this.volumeInfo_; },
|
| - get isVolume() { return true; },
|
| - get isShortcut() { return false; }
|
| -};
|
| -
|
| -/**
|
| - * A navigation list model. This model combines the 2 lists.
|
| - * @param {VolumeManagerWrapper} volumeManager VolumeManagerWrapper instance.
|
| - * @param {(cr.ui.ArrayDataModel|FolderShortcutsDataModel)} shortcutListModel
|
| - * The list of folder shortcut.
|
| - * @constructor
|
| - * @extends {cr.EventTarget}
|
| - */
|
| -function NavigationListModel(volumeManager, shortcutListModel) {
|
| - cr.EventTarget.call(this);
|
| -
|
| - this.volumeManager_ = volumeManager;
|
| - this.shortcutListModel_ = shortcutListModel;
|
| -
|
| - var volumeInfoToModelItem = function(volumeInfo) {
|
| - return new NavigationModelVolumeItem(
|
| - volumeInfo.label,
|
| - volumeInfo);
|
| - }.bind(this);
|
| -
|
| - var entryToModelItem = function(entry) {
|
| - var item = new NavigationModelShortcutItem(
|
| - entry.name,
|
| - entry);
|
| - return item;
|
| - }.bind(this);
|
| -
|
| - /**
|
| - * Type of updated list.
|
| - * @enum {number}
|
| - * @const
|
| - */
|
| - var ListType = {
|
| - VOLUME_LIST: 1,
|
| - SHORTCUT_LIST: 2
|
| - };
|
| - Object.freeze(ListType);
|
| -
|
| - // Generates this.volumeList_ and this.shortcutList_ from the models.
|
| - this.volumeList_ =
|
| - this.volumeManager_.volumeInfoList.slice().map(volumeInfoToModelItem);
|
| -
|
| - this.shortcutList_ = [];
|
| - for (var i = 0; i < this.shortcutListModel_.length; i++) {
|
| - var shortcutEntry = /** @type {Entry} */ (this.shortcutListModel_.item(i));
|
| - var volumeInfo = this.volumeManager_.getVolumeInfo(shortcutEntry);
|
| - this.shortcutList_.push(entryToModelItem(shortcutEntry));
|
| - }
|
| -
|
| - // Generates a combined 'permuted' event from an event of either list.
|
| - var permutedHandler = function(listType, event) {
|
| - var permutation;
|
| -
|
| - // Build the volumeList.
|
| - if (listType == ListType.VOLUME_LIST) {
|
| - // The volume is mounted or unmounted.
|
| - var newList = [];
|
| -
|
| - // Use the old instances if they just move.
|
| - for (var i = 0; i < event.permutation.length; i++) {
|
| - if (event.permutation[i] >= 0)
|
| - newList[event.permutation[i]] = this.volumeList_[i];
|
| - }
|
| -
|
| - // Create missing instances.
|
| - for (var i = 0; i < event.newLength; i++) {
|
| - if (!newList[i]) {
|
| - newList[i] = volumeInfoToModelItem(
|
| - this.volumeManager_.volumeInfoList.item(i));
|
| - }
|
| - }
|
| - this.volumeList_ = newList;
|
| -
|
| - permutation = event.permutation.slice();
|
| -
|
| - // shortcutList part has not been changed, so the permutation should be
|
| - // just identity mapping with a shift.
|
| - for (var i = 0; i < this.shortcutList_.length; i++) {
|
| - permutation.push(i + this.volumeList_.length);
|
| - }
|
| - } else {
|
| - // Build the shortcutList.
|
| -
|
| - // volumeList part has not been changed, so the permutation should be
|
| - // identity mapping.
|
| -
|
| - permutation = [];
|
| - for (var i = 0; i < this.volumeList_.length; i++) {
|
| - permutation[i] = i;
|
| - }
|
| -
|
| - var modelIndex = 0;
|
| - var oldListIndex = 0;
|
| - var newList = [];
|
| - while (modelIndex < this.shortcutListModel_.length &&
|
| - oldListIndex < this.shortcutList_.length) {
|
| - var shortcutEntry = this.shortcutListModel_.item(modelIndex);
|
| - var cmp = this.shortcutListModel_.compare(
|
| - shortcutEntry, this.shortcutList_[oldListIndex].entry);
|
| - if (cmp > 0) {
|
| - // The shortcut at shortcutList_[oldListIndex] is removed.
|
| - permutation.push(-1);
|
| - oldListIndex++;
|
| - continue;
|
| - }
|
| -
|
| - if (cmp === 0) {
|
| - // Reuse the old instance.
|
| - permutation.push(newList.length + this.volumeList_.length);
|
| - newList.push(this.shortcutList_[oldListIndex]);
|
| - oldListIndex++;
|
| - } else {
|
| - // We needs to create a new instance for the shortcut entry.
|
| - newList.push(entryToModelItem(shortcutEntry));
|
| - }
|
| - modelIndex++;
|
| - }
|
| -
|
| - // Add remaining (new) shortcuts if necessary.
|
| - for (; modelIndex < this.shortcutListModel_.length; modelIndex++) {
|
| - var shortcutEntry = this.shortcutListModel_.item(modelIndex);
|
| - newList.push(entryToModelItem(shortcutEntry));
|
| - }
|
| -
|
| - // Fill remaining permutation if necessary.
|
| - for (; oldListIndex < this.shortcutList_.length; oldListIndex++)
|
| - permutation.push(-1);
|
| -
|
| - this.shortcutList_ = newList;
|
| - }
|
| -
|
| - // Dispatch permuted event.
|
| - var permutedEvent = new Event('permuted');
|
| - permutedEvent.newLength =
|
| - this.volumeList_.length + this.shortcutList_.length;
|
| - permutedEvent.permutation = permutation;
|
| - this.dispatchEvent(permutedEvent);
|
| - };
|
| -
|
| - this.volumeManager_.volumeInfoList.addEventListener(
|
| - 'permuted', permutedHandler.bind(this, ListType.VOLUME_LIST));
|
| - this.shortcutListModel_.addEventListener(
|
| - 'permuted', permutedHandler.bind(this, ListType.SHORTCUT_LIST));
|
| -
|
| - // 'change' event is just ignored, because it is not fired neither in
|
| - // the folder shortcut list nor in the volume info list.
|
| - // 'splice' and 'sorted' events are not implemented, since they are not used
|
| - // in list.js.
|
| -}
|
| -
|
| -/**
|
| - * NavigationList inherits cr.EventTarget.
|
| - */
|
| -NavigationListModel.prototype = {
|
| - __proto__: cr.EventTarget.prototype,
|
| - get length() { return this.length_(); },
|
| - get folderShortcutList() { return this.shortcutList_; }
|
| -};
|
| -
|
| -/**
|
| - * Returns the item at the given index.
|
| - * @param {number} index The index of the entry to get.
|
| - * @return {NavigationModelItem} The item at the given index.
|
| - */
|
| -NavigationListModel.prototype.item = function(index) {
|
| - var offset = this.volumeList_.length;
|
| - if (index < offset)
|
| - return this.volumeList_[index];
|
| - return this.shortcutList_[index - offset];
|
| -};
|
| -
|
| -/**
|
| - * Returns the number of items in the model.
|
| - * @return {number} The length of the model.
|
| - * @private
|
| - */
|
| -NavigationListModel.prototype.length_ = function() {
|
| - return this.volumeList_.length + this.shortcutList_.length;
|
| -};
|
| -
|
| -/**
|
| - * Returns the first matching item.
|
| - * @param {NavigationModelItem} modelItem The entry to find.
|
| - * @param {number=} opt_fromIndex If provided, then the searching start at
|
| - * the {@code opt_fromIndex}.
|
| - * @return {number} The index of the first found element or -1 if not found.
|
| - */
|
| -NavigationListModel.prototype.indexOf = function(modelItem, opt_fromIndex) {
|
| - for (var i = opt_fromIndex || 0; i < this.length; i++) {
|
| - if (modelItem === this.item(i))
|
| - return i;
|
| - }
|
| - return -1;
|
| -};
|
| -
|
| -/**
|
| - * Called externally when one of the items is not found on the filesystem.
|
| - * @param {NavigationModelItem} modelItem The entry which is not found.
|
| - */
|
| -NavigationListModel.prototype.onItemNotFoundError = function(modelItem) {
|
| - if (modelItem.isVolume) {
|
| - // TODO(mtomasz, yoshiki): Implement when needed.
|
| - return;
|
| - }
|
| - if (modelItem.isShortcut) {
|
| - // For shortcuts, lets the shortcut model handle this situation.
|
| - this.shortcutListModel_.onItemNotFoundError(modelItem.entry);
|
| - }
|
| -};
|
|
|