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

Side by Side Diff: ui/file_manager/gallery/js/gallery_item.js

Issue 971173002: Gallery: Start to use new metadata model in Gallery. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * Object representing an image item (a photo). 6 * Object representing an image item (a photo).
7 * 7 *
8 * @param {!FileEntry} entry Image entry. 8 * @param {!FileEntry} entry Image entry.
9 * @param {!EntryLocation} locationInfo Entry location information. 9 * @param {!EntryLocation} locationInfo Entry location information.
10 * @param {!Object} metadata Metadata for the entry. 10 * @param {!Object} metadata Metadata for the entry.
11 * @param {!MetadataItem} metadataItem
11 * @param {!MetadataCache} metadataCache Metadata cache instance. 12 * @param {!MetadataCache} metadataCache Metadata cache instance.
12 * @param {!MetadataModel} metadataModel File system metadata. 13 * @param {!MetadataModel} metadataModel File system metadata.
13 * @param {boolean} original Whether the entry is original or edited. 14 * @param {boolean} original Whether the entry is original or edited.
14 * @constructor 15 * @constructor
15 * @struct 16 * @struct
16 */ 17 */
17 Gallery.Item = function( 18 Gallery.Item = function(
18 entry, locationInfo, metadata, metadataCache, metadataModel, 19 entry, locationInfo, metadata, metadataItem, metadataCache,
19 original) { 20 metadataModel, original) {
20 /** 21 /**
21 * @type {!FileEntry} 22 * @type {!FileEntry}
22 * @private 23 * @private
23 */ 24 */
24 this.entry_ = entry; 25 this.entry_ = entry;
25 26
26 /** 27 /**
27 * @type {!EntryLocation} 28 * @type {!EntryLocation}
28 * @private 29 * @private
29 */ 30 */
30 this.locationInfo_ = locationInfo; 31 this.locationInfo_ = locationInfo;
31 32
32 /** 33 /**
33 * @type {!Object} 34 * @type {!Object}
34 * @private 35 * @private
35 */ 36 */
36 this.metadata_ = Object.preventExtensions(metadata); 37 this.metadata_ = Object.preventExtensions(metadata);
37 38
38 /** 39 /**
40 * @type {!MetadataItem}
41 */
42 this.metadataItem_ = metadataItem;
43
44 /**
39 * @type {!MetadataCache} 45 * @type {!MetadataCache}
40 * @private 46 * @private
41 * @const 47 * @const
42 */ 48 */
43 this.metadataCache_ = metadataCache; 49 this.metadataCache_ = metadataCache;
44 50
45 /** 51 /**
46 * @type {!MetadataModel} 52 * @type {!MetadataModel}
47 * @private 53 * @private
48 * @const 54 * @const
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 Gallery.Item.prototype.getLocationInfo = function() { 99 Gallery.Item.prototype.getLocationInfo = function() {
94 return this.locationInfo_; 100 return this.locationInfo_;
95 }; 101 };
96 102
97 /** 103 /**
98 * @return {!Object} Metadata. 104 * @return {!Object} Metadata.
99 */ 105 */
100 Gallery.Item.prototype.getMetadata = function() { return this.metadata_; }; 106 Gallery.Item.prototype.getMetadata = function() { return this.metadata_; };
101 107
102 /** 108 /**
103 * Obtains the latest media metadata. 109 * @return {!MetadataItem} Metadata.
104 *
105 * This is a heavy operation since it forces to load the image data to obtain
106 * the metadata.
107 * @return {!Promise} Promise to be fulfilled with fetched metadata.
108 */ 110 */
109 Gallery.Item.prototype.getFetchedMedia = function() { 111 Gallery.Item.prototype.getMetadataItem = function() {
110 return new Promise(function(fulfill, reject) { 112 return this.metadataItem_;
111 this.metadataCache_.getLatest(
112 [this.entry_],
113 'fetchedMedia',
114 function(metadata) {
115 if (metadata[0])
116 fulfill(metadata[0]);
117 else
118 reject('Failed to load metadata.');
119 });
120 }.bind(this));
121 }; 113 };
122 114
123 /** 115 /**
124 * @return {string} File name. 116 * @return {string} File name.
125 */ 117 */
126 Gallery.Item.prototype.getFileName = function() { 118 Gallery.Item.prototype.getFileName = function() {
127 return this.entry_.name; 119 return this.entry_.name;
128 }; 120 };
129 121
130 /** 122 /**
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 return Promise.reject(str('GALLERY_FILE_EXISTS')); 369 return Promise.reject(str('GALLERY_FILE_EXISTS'));
378 }, function() { 370 }, function() {
379 return new Promise( 371 return new Promise(
380 this.entry_.moveTo.bind(this.entry_, parentDirectory, newFileName)); 372 this.entry_.moveTo.bind(this.entry_, parentDirectory, newFileName));
381 }.bind(this)); 373 }.bind(this));
382 }.bind(this)); 374 }.bind(this));
383 }.bind(this)).then(function(entry) { 375 }.bind(this)).then(function(entry) {
384 this.entry_ = entry; 376 this.entry_ = entry;
385 }.bind(this)); 377 }.bind(this));
386 }; 378 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698