Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(522)

Unified Diff: ui/file_manager/file_manager/foreground/js/empty_folder_controller.js

Issue 1061483002: Show UI when a folder is empty. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Change listen events. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/file_manager/file_manager/foreground/js/empty_folder_controller.js
diff --git a/ui/file_manager/file_manager/foreground/js/empty_folder_controller.js b/ui/file_manager/file_manager/foreground/js/empty_folder_controller.js
new file mode 100644
index 0000000000000000000000000000000000000000..9adeaeb1d2b70056fc8ebdb83aeef2aa20b0593a
--- /dev/null
+++ b/ui/file_manager/file_manager/foreground/js/empty_folder_controller.js
@@ -0,0 +1,82 @@
+// 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.
+
+/**
+ * Empty folder controller.
+ * @param {!EmptyFolder} emptyFolder Empty folder ui.
+ * @param {!DirectoryModel} directoryModel Directory model.
+ * @constructor
+ * @struct
+ */
+function EmptyFolderController(emptyFolder, directoryModel) {
+ /**
+ * @private {!EmptyFolder}
+ */
+ this.emptyFolder_ = emptyFolder;
+
+ /**
+ * @private {!DirectoryModel}
+ */
+ this.directoryModel_ = directoryModel;
+
+ /**
+ * @private {!FileListModel}
+ */
+ this.dataModel_ = assert(this.directoryModel_.getFileList());
+
+ /**
+ * @private {boolean}
+ */
+ this.isScanning_ = false;
+
+ this.directoryModel_.addEventListener(
+ 'scan-started', this.onScanStarted_.bind(this));
+ this.directoryModel_.addEventListener(
+ 'scan-failed', this.onScanFinished_.bind(this));
+ this.directoryModel_.addEventListener(
+ 'scan-cancelled', this.onScanFinished_.bind(this));
+ this.directoryModel_.addEventListener(
+ 'scan-completed', this.onScanFinished_.bind(this));
+ this.directoryModel_.addEventListener(
+ 'rescan-completed', this.onScanFinished_.bind(this));
+
+ this.dataModel_.addEventListener('splice', this.onSplice_.bind(this));
+}
+
+/**
+ * Handles splice event.
+ * @private
+ */
+EmptyFolderController.prototype.onSplice_ = function() {
+ this.update_();
+};
+
+/**
+ * Handles scan start.
+ * @private
+ */
+EmptyFolderController.prototype.onScanStarted_ = function() {
+ this.isScanning_ = true;
+ this.update_();
+};
+
+/**
+ * Handles scan finish.
+ * @private
+ */
+EmptyFolderController.prototype.onScanFinished_ = function() {
+ this.isScanning_ = false;
+ this.update_();
+};
+
+/**
+ * Updates visibility of empty folder UI.
+ * @private
+ */
+EmptyFolderController.prototype.update_ = function() {
+ if (!this.isScanning_ && this.dataModel_.length === 0)
+ this.emptyFolder_.show();
+ else
+ this.emptyFolder_.hide();
+};

Powered by Google App Engine
This is Rietveld 408576698