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

Unified Diff: chrome/browser/resources/print_preview/data/cloud_parsers.js

Issue 10108001: Refactor print preview web ui (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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: chrome/browser/resources/print_preview/data/cloud_parsers.js
diff --git a/chrome/browser/resources/print_preview/data/cloud_parsers.js b/chrome/browser/resources/print_preview/data/cloud_parsers.js
new file mode 100644
index 0000000000000000000000000000000000000000..b68ae1284fcc46e0ff1433001687c07a7bfd15e0
--- /dev/null
+++ b/chrome/browser/resources/print_preview/data/cloud_parsers.js
@@ -0,0 +1,81 @@
+// 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.
+
+cr.define('cloudprint', function() {
+ 'use strict';
+
+ function CloudDestinationParser() {};
+
+ /**
+ * Enumeration of cloud destination field names.
+ * @enum {string}
+ * @private
+ */
+ CloudDestinationParser.Field_ = {
+ CAPABILITIES: 'capabilities',
+ DISPLAY_NAME: 'displayName',
+ ID: 'id',
+ TAGS: 'tags'
+ };
+
+ /**
+ * Special tag that denotes whether the destination has been recently used.
+ * @type {string}
+ * @private
+ */
+ CloudDestinationParser.RECENT_TAG_ = '^recent';
+
+ /**
+ * Parses a destination from JSON from a Google Cloud Print search or printer
+ * response.
+ * @return {!print_preview.Destination} Parsed destination.
+ */
+ CloudDestinationParser.parse = function(json) {
+ // TODO Error handling.
+ var isRecent = arrayContains(
+ json[CloudDestinationParser.Field_.TAGS],
+ CloudDestinationParser.RECENT_TAG_);
+ var cloudDest = new print_preview.Destination(
+ json[CloudDestinationParser.Field_.ID],
+ json[CloudDestinationParser.Field_.DISPLAY_NAME],
+ isRecent,
+ false /*isLocal*/,
+ json[CloudDestinationParser.Field_.TAGS]);
+ if (json.hasOwnProperty(CloudDestinationParser.Field_.CAPABILITIES)) {
+ cloudDest.capabilities = CloudCapabilitiesParser.parse(
+ json[CloudDestinationParser.Field_.CAPABILITIES]);
+ }
+ return cloudDest;
+ };
+
+ function CloudCapabilitiesParser() {};
+
+ CloudCapabilitiesParser.parse = function(json) {
+ var caps = new print_preview.ChromiumCapabilities();
+ caps.hasPageRangeCapability = true;
+ caps.defaultPageRangeStr = '';
+ caps.hasCopiesCapability = false; // TODO
+ caps.defaultCopiesStr = '1';
+ caps.hasCollateCapability = false; // TODO
+ caps.defaultIsCollateEnabled = false;
+ caps.hasDuplexCapability = false; // TODO
+ caps.defaultIsDuplexEnabled = false;
+ caps.hasOrientationCapability = true; // TODO
+ caps.defaultIsLandscapeEnabled = false;
+ caps.hasColorCapability = false; // TODO
+ caps.defaultIsColorEnabled = false;
+ caps.hasMarginsCapability = true;
+ caps.defaultMarginType = print_preview.Margins.Type.DEFAULT;
+ caps.hasHeaderFooterCapability = true;
+ caps.defaultIsHeaderFooterEnabled = true;
+ return caps;
+ };
+
+ // Export
+ return {
+ CloudCapabilitiesParser: CloudCapabilitiesParser,
+ CloudDestinationParser: CloudDestinationParser
+ };
+});
+

Powered by Google App Engine
This is Rietveld 408576698