diff options
author | hirono <hirono@chromium.org> | 2015-02-25 01:41:54 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-25 09:43:11 +0000 |
commit | d08dbefe19c25b332e3525fe59278e9ec4ab80de (patch) | |
tree | aa9e05171e462818e80076013f1b8a32ddb33c54 | |
parent | 07b6d8b077f5a5e09b1106c7aa6d916e5d4f9e63 (diff) | |
download | chromium_src-d08dbefe19c25b332e3525fe59278e9ec4ab80de.zip chromium_src-d08dbefe19c25b332e3525fe59278e9ec4ab80de.tar.gz chromium_src-d08dbefe19c25b332e3525fe59278e9ec4ab80de.tar.bz2 |
Files.app: Add new metadata model to Gallery.app.
The CL just adds new metadata model as a member varaiables of gallery models.
The following CL replaces existing metadata model with the new model.
BUG=410766
TEST=None
Review URL: https://codereview.chromium.org/944163004
Cr-Commit-Position: refs/heads/master@{#318005}
9 files changed, 74 insertions, 14 deletions
diff --git a/ui/file_manager/file_manager/foreground/js/metadata/content_metadata_provider.js b/ui/file_manager/file_manager/foreground/js/metadata/content_metadata_provider.js index da5661d..54ba571 100644 --- a/ui/file_manager/file_manager/foreground/js/metadata/content_metadata_provider.js +++ b/ui/file_manager/file_manager/foreground/js/metadata/content_metadata_provider.js @@ -65,7 +65,7 @@ ContentMetadataProvider.PROPERTY_NAMES = [ /** * Path of a worker script. - * @const {string} + * @public {string} */ ContentMetadataProvider.WORKER_SCRIPT = 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/' + diff --git a/ui/file_manager/file_manager/foreground/js/metadata/file_system_metadata.js b/ui/file_manager/file_manager/foreground/js/metadata/file_system_metadata.js index ec3e05a..d5deafc 100644 --- a/ui/file_manager/file_manager/foreground/js/metadata/file_system_metadata.js +++ b/ui/file_manager/file_manager/foreground/js/metadata/file_system_metadata.js @@ -7,7 +7,7 @@ * @param {!FileSystemMetadataProvider} fileSystemMetadataProvider * @param {!ExternalMetadataProvider} externalMetadataProvider * @param {!ContentMetadataProvider} contentMetadataProvider - * @param {!VolumeManagerWrapper} volumeManager + * @param {!VolumeManagerCommon.VolumeInfoProvider} volumeManager * @constructor * @struct */ @@ -42,7 +42,7 @@ function FileSystemMetadata( this.contentMetadataProvider_ = contentMetadataProvider; /** - * @private {!VolumeManagerWrapper} + * @private {!VolumeManagerCommon.VolumeInfoProvider} * @const */ this.volumeManager_ = volumeManager; @@ -50,7 +50,7 @@ function FileSystemMetadata( /** * @param {!MetadataProviderCache} cache - * @param {!VolumeManagerWrapper} volumeManager + * @param {!VolumeManagerCommon.VolumeInfoProvider} volumeManager * @return {!FileSystemMetadata} */ FileSystemMetadata.create = function(cache, volumeManager) { diff --git a/ui/file_manager/gallery/gallery.html b/ui/file_manager/gallery/gallery.html index a63759c..00f049b 100644 --- a/ui/file_manager/gallery/gallery.html +++ b/ui/file_manager/gallery/gallery.html @@ -45,11 +45,22 @@ <script src="chrome://resources/js/cr/ui/list.js"></script> <script src="chrome://resources/js/cr/ui/grid.js"></script> + <!-- Base classes. -> + <script src="../file_manager/foreground/js/metadata/metadata_cache_set.js"></script> + <script src="../file_manager/foreground/js/metadata/new_metadata_provider.js"></script> + <script src="../file_manager/common/js/async_util.js"></script> <script src="../file_manager/common/js/file_type.js"></script> <script src="../file_manager/common/js/volume_manager_common.js"></script> + <script src="../file_manager/foreground/js/metadata/content_metadata_provider.js"></script> + <script src="../file_manager/foreground/js/metadata/external_metadata_provider.js"></script> + <script src="../file_manager/foreground/js/metadata/file_system_metadata.js"></script> + <script src="../file_manager/foreground/js/metadata/file_system_metadata_provider.js"></script> <script src="../file_manager/foreground/js/metadata/metadata_cache.js"></script> + <script src="../file_manager/foreground/js/metadata/metadata_cache_item.js"></script> + <script src="../file_manager/foreground/js/metadata/metadata_item.js"></script> + <script src="../file_manager/foreground/js/metadata/thumbnail_model.js"></script> <script src="../file_manager/foreground/js/metadata/exif_constants.js"></script> <script src="../file_manager/foreground/js/mouse_inactivity_watcher.js"></script> <script src="../file_manager/foreground/js/share_client.js"></script> diff --git a/ui/file_manager/gallery/js/compiled_resources.gyp b/ui/file_manager/gallery/js/compiled_resources.gyp index 59cce40..ad5166f 100644 --- a/ui/file_manager/gallery/js/compiled_resources.gyp +++ b/ui/file_manager/gallery/js/compiled_resources.gyp @@ -66,8 +66,16 @@ '../../file_manager/common/js/metrics_base.js', '../../file_manager/common/js/metrics.js', '../../file_manager/foreground/js/metrics_start.js', - '../../file_manager/foreground/js/metadata/metadata_cache.js', + '../../file_manager/foreground/js/metadata/content_metadata_provider.js', '../../file_manager/foreground/js/metadata/exif_constants.js', + '../../file_manager/foreground/js/metadata/external_metadata_provider.js', + '../../file_manager/foreground/js/metadata/file_system_metadata.js', + '../../file_manager/foreground/js/metadata/file_system_metadata_provider.js', + '../../file_manager/foreground/js/metadata/metadata_cache.js', + '../../file_manager/foreground/js/metadata/metadata_cache_item.js', + '../../file_manager/foreground/js/metadata/metadata_cache_set.js', + '../../file_manager/foreground/js/metadata/metadata_item.js', + '../../file_manager/foreground/js/metadata/new_metadata_provider.js', '../../file_manager/foreground/js/mouse_inactivity_watcher.js', '../../file_manager/foreground/js/share_client.js', '../../file_manager/foreground/js/thumbnail_loader.js', diff --git a/ui/file_manager/gallery/js/gallery.js b/ui/file_manager/gallery/js/gallery.js index 07891d4..0581168 100644 --- a/ui/file_manager/gallery/js/gallery.js +++ b/ui/file_manager/gallery/js/gallery.js @@ -7,6 +7,7 @@ * @type {string} */ ContentProvider.WORKER_SCRIPT = '/js/metadata_worker.js'; +ContentMetadataProvider.WORKER_SCRIPT = '/js/metadata_worker.js'; /** * Gallery for viewing and editing image files. @@ -51,12 +52,19 @@ function Gallery(volumeManager) { this.document_ = document; this.metadataCache_ = this.context_.metadataCache; this.volumeManager_ = volumeManager; + /** + * @private {!FileSystemMetadata} + * @const + */ + this.fileSystemMetadata_ = FileSystemMetadata.create( + new MetadataProviderCache(), volumeManager); this.selectedEntry_ = null; this.metadataCacheObserverId_ = null; this.onExternallyUnmountedBound_ = this.onExternallyUnmounted_.bind(this); this.dataModel_ = new GalleryDataModel( - this.context_.metadataCache); + this.context_.metadataCache, + this.fileSystemMetadata_); var downloadVolumeInfo = this.volumeManager_.getCurrentProfileVolumeInfo( VolumeManagerCommon.VolumeType.DOWNLOADS); downloadVolumeInfo.resolveDisplayRoot().then(function(entry) { @@ -371,6 +379,7 @@ Gallery.prototype.loadInternal_ = function(entries, selectedEntries) { locationInfo, clonedMetadata, self.metadataCache_, + self.fileSystemMetadata_, /* original */ true)); }); self.dataModel_.push.apply(self.dataModel_, items); diff --git a/ui/file_manager/gallery/js/gallery_data_model.js b/ui/file_manager/gallery/js/gallery_data_model.js index 45afe8d..5b80f77 100644 --- a/ui/file_manager/gallery/js/gallery_data_model.js +++ b/ui/file_manager/gallery/js/gallery_data_model.js @@ -6,24 +6,32 @@ * Data model for gallery. * * @param {!MetadataCache} metadataCache Metadata cache. + * @param {!FileSystemMetadata} fileSystemMetadata * @param {!EntryListWatcher=} opt_watcher Entry list watcher. * @constructor * @extends {cr.ui.ArrayDataModel} */ -function GalleryDataModel(metadataCache, opt_watcher) { +function GalleryDataModel(metadataCache, fileSystemMetadata, opt_watcher) { cr.ui.ArrayDataModel.call(this, []); /** * Metadata cache. - * @type {!MetadataCache} - * @private + * @private {!MetadataCache} + * @const */ this.metadataCache_ = metadataCache; /** + * File system metadata. + * @private {!FileSystemMetadata} + * @const + */ + this.fileSystemMetadata_ = fileSystemMetadata; + + /** * Directory where the image is saved if the image is located in a read-only * volume. - * @type {DirectoryEntry} + * @public {DirectoryEntry} */ this.fallbackSaveDirectory = null; @@ -94,6 +102,7 @@ GalleryDataModel.prototype.saveItem = function( oldLocationInfo, oldMetadata, this.metadataCache_, + this.fileSystemMetadata_, item.isOriginal()); // The item must be added behind the existing item so that it does // not change the index of the existing item. diff --git a/ui/file_manager/gallery/js/gallery_data_model_unittest.js b/ui/file_manager/gallery/js/gallery_data_model_unittest.js index 8a280e4..bad2079 100644 --- a/ui/file_manager/gallery/js/gallery_data_model_unittest.js +++ b/ui/file_manager/gallery/js/gallery_data_model_unittest.js @@ -9,7 +9,10 @@ var item; function setUp() { var metadataCache = new MockMetadataCache(); - model = new GalleryDataModel(metadataCache, /* Mock EntryListWatcher */{}); + model = new GalleryDataModel( + metadataCache, + /* Mock FileSystemMetadata */{}, + /* Mock EntryListWatcher */{}); fileSystem = new MockFileSystem('volumeId'); item = new Gallery.Item( new MockEntry(fileSystem, '/test.jpg'), diff --git a/ui/file_manager/gallery/js/gallery_item.js b/ui/file_manager/gallery/js/gallery_item.js index 227940a..088da41 100644 --- a/ui/file_manager/gallery/js/gallery_item.js +++ b/ui/file_manager/gallery/js/gallery_item.js @@ -9,12 +9,14 @@ * @param {!EntryLocation} locationInfo Entry location information. * @param {!Object} metadata Metadata for the entry. * @param {!MetadataCache} metadataCache Metadata cache instance. + * @param {!FileSystemMetadata} fileSystemMetadata File system metadata. * @param {boolean} original Whether the entry is original or edited. * @constructor * @struct */ Gallery.Item = function( - entry, locationInfo, metadata, metadataCache, original) { + entry, locationInfo, metadata, metadataCache, fileSystemMetadata, + original) { /** * @type {!FileEntry} * @private @@ -40,6 +42,13 @@ Gallery.Item = function( */ this.metadataCache_ = metadataCache; + /** + * @type {!FileSystemMetadata} + * @private + * @const + */ + this.fileSystemMetadata_ = fileSystemMetadata; + // TODO(yawano): Change this.contentImage and this.screenImage to private // fields and provide utility methods for them (e.g. revokeFullImageCache). /** @@ -262,6 +271,7 @@ Gallery.Item.prototype.saveToFile = function( opt_callback(false); } }.bind(this)); + this.fileSystemMetadata_.notifyEntriesChanged([this.entry_]); }.bind(this); var onError = function(error) { diff --git a/ui/file_manager/gallery/js/gallery_scripts.js b/ui/file_manager/gallery/js/gallery_scripts.js index 2c0c885..34d2b87 100644 --- a/ui/file_manager/gallery/js/gallery_scripts.js +++ b/ui/file_manager/gallery/js/gallery_scripts.js @@ -37,17 +37,27 @@ (function() { // 'strict mode' is invoked for this scope. +// Base classes. +//<include src="../../file_manager/foreground/js/metadata/metadata_cache_set.js"> +//<include src="../../file_manager/foreground/js/metadata/new_metadata_provider.js"> + //<include src="../../file_manager/common/js/async_util.js"> //<include src="../../file_manager/common/js/file_type.js"> //<include src="../../file_manager/common/js/util.js"> //<include src="../../file_manager/common/js/volume_manager_common.js"> +//<include src="../../file_manager/foreground/js/metadata/content_metadata_provider.js"> +//<include src="../../file_manager/foreground/js/metadata/external_metadata_provider.js"> +//<include src="../../file_manager/foreground/js/metadata/file_system_metadata.js"> +//<include src="../../file_manager/foreground/js/metadata/file_system_metadata_provider.js"> //<include src="../../file_manager/foreground/js/metadata/metadata_cache.js"> +//<include src="../../file_manager/foreground/js/metadata/metadata_cache_item.js"> +//<include src="../../file_manager/foreground/js/metadata/metadata_item.js"> +//<include src="../../file_manager/foreground/js/metadata/thumbnail_model.js"> //<include src="../../file_manager/foreground/js/metadata/exif_constants.js"> //<include src="../../file_manager/foreground/js/mouse_inactivity_watcher.js"> //<include src="../../file_manager/foreground/js/share_client.js"> //<include src="../../file_manager/foreground/js/thumbnail_loader.js"> -//<include -// src="../../file_manager/foreground/js/ui/file_manager_dialog_base.js"> +//<include src="../../file_manager/foreground/js/ui/file_manager_dialog_base.js"> //<include src="../../file_manager/foreground/js/ui/share_dialog.js"> //<include src="../../file_manager/foreground/js/volume_manager_wrapper.js"> |