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

Unified Diff: chrome/browser/resources/print_preview/data/capabilities.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/capabilities.js
diff --git a/chrome/browser/resources/print_preview/data/capabilities.js b/chrome/browser/resources/print_preview/data/capabilities.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd463499c5f2c2cbf685ea8f72aadfaf7f7f7beb
--- /dev/null
+++ b/chrome/browser/resources/print_preview/data/capabilities.js
@@ -0,0 +1,222 @@
+// Copyright (c) 2011 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('print_preview', function() {
+ 'use strict';
+
+ /**
+ * List of capabilities of a print destination.
+ * @constructor
+ */
+ function CapabilityList() {
+ /**
+ * Internal list of Capability objects.
+ * @type {Array.<Capability>}
+ */
+ this.capabilities = [];
+ };
+
+ CapabilityList.prototype = {
+ /**
+ * @param {string} semanticId Semantic ID of the capability to get.
+ * @return {print_preview.Capability?} The capability identified by the
+ * given semantic ID or null if not in the list.
+ */
+ getCapability: function(semanticId) {
+ for (var cap, i = 0; cap = this.capabilities[i]; i++) {
+ if (cap.semanticInfo && cap.semanticInfo.id == semanticId) {
+ return cap;
+ }
+ }
+ return null;
+ },
+
+ getNativeCapability: function(nativeId) {
+ for (var cap, i = 0; cap = this.capabilities[i]; i++) {
+ if (cap.nativeInfo && cap.nativeInfo.id == nativeId) {
+ return cap;
+ }
+ }
+ return null;
+ },
+
+ addCapability: function(cap) {
+ this.capabilities.push(cap);
+ }
+ };
+
+ /**
+ * A capability of a print destination.
+ * @constructor
+ */
+ function Capability() {
+ this.semanticInfo = null;
+ this.nativeInfo = null;
+ this.type = null;
+ this.valueType = null;
+ this.singleValueInfo = null;
+ this.selectInfo = null;
+ this.rangeInfo = null;
+ };
+
+ Capability.Type = {
+ RANGE: 1,
+ SELECT: 2,
+ SINGLE_VALUE: 3
+ };
+
+ Capability.ValueType = {
+ BOOLEAN: 1,
+ FLOAT: 2,
+ INTEGER: 3,
+ MAP: 4,
+ STRING: 5
+ };
+
+ Capability.SemanticId = {
+ COLOR: 1,
+ DUPLEX: 2,
+ ORIENTATION: 3,
+ COPIES: 4,
+ MARGIN: 5,
+ DPI: 6,
+ FIT_TO_PAGE: 7,
+ PAGE_RANGE: 8,
+ MEDIA_TYPE: 9,
+ MEDIA_SIZE: 10,
+ COLLATE: 11
+ };
+
+ Capability.ColorOption = {
+ COLOR: 1,
+ BLACK_WHITE: 2
+ };
+
+ Capability.DuplexOption = {
+ NO_DUPLEX: 1,
+ LONG_EDGE: 2,
+ SHORT_EDGE: 3
+ };
+
+ Capability.OrientationOption = {
+ PORTRAIT: 1,
+ LANDSCAPE: 2,
+ REVERSE_LANDSCAPE: 3
+ };
+
+ function NativeCapabilityInfo(id, displayName) {
+ this.id = id;
+ this.displayName = displayName;
+ };
+
+ function SemanticCapabilityInfo(id, displayName) {
+ this.id = id;
+ this.displayName = displayName;
+ };
+
+ function RangeInfo(defaultValue, minValue, maxValue) {
+ this.defaultValue = defaultValue;
+ this.minValue = minValue;
+ this.maxValue = maxValue;
+ };
+
+ function SelectInfo(defaultOption) {
+ this.defaultOption = defaultOption;
+
+ // TODO Make private
+ this.options = [];
+ };
+
+ SelectInfo.prototype = {
+ /** @param {string} semanticId Semantic ID of the option to get. */
+ getOption: function(semanticId) {
+ for (var op, i = 0; op = this.options[i]; i++) {
+ if (op.semanticInfo.id == semanticId) {
+ return op;
+ }
+ }
+ return null;
+ },
+
+ /**
+ * @param {print_preview.Option} option Option to add to the select
+ * capability info object.
+ */
+ addOption: function(option) {
+ this.options.push(option);
+ }
+ };
+
+ function Option(semanticInfo, nativeInfo) {
+ this.semanticInfo = semanticInfo;
+ this.nativeInfo = nativeInfo;
+ };
+
+ function SemanticOptionInfo(id, displayName) {
+ this.id = id;
+ this.displayName = displayName;
+ };
+
+ function NativeOptionInfo(id, displayName, value) {
+ this.id = id;
+ this.displayName = displayName;
+ this.value = value;
+ };
+
+ function SingleValueInfo(defaultValue) {
+ this.defaultValue = defaultValue;
+ };
+
+ function Ticket() {
+ this.ticketItems_ = [];
+ };
+
+ Ticket.prototype = {
+ getItem: function(semanticId) {
+ for (var item, i = 0; item = this.ticketItems_[i]; i++) {
+ if (item.semanticInfo.id == semanticId) {
+ return item;
+ }
+ }
+ return null;
+ },
+
+ addItem: function(item) {
+ this.ticketItems_.push(item);
+ }
+ };
+
+ function TicketItem(semanticInfo, nativeInfo) {
+ this.semanticInfo = semanticInfo;
+ this.nativeInfo = nativeInfo;
+ };
+
+ function SemanticTicketItemInfo(id, value) {
+ this.id = id;
+ this.value = value;
+ };
+
+ function NativeTicketItemInfo(id, value) {
+ this.id = id;
+ this.value = value;
+ };
+
+ // Export
+ return {
+ CapabilityList: CapabilityList,
+ Capability: Capability,
+ NativeCapabilityInfo: NativeCapabilityInfo,
+ SemanticCapabilityInfo: SemanticCapabilityInfo,
+ RangeInfo: RangeInfo,
+ SelectInfo: SelectInfo,
+ SingleValueInfo: SingleValueInfo,
+ Option: Option,
+ SemanticOptionInfo: SemanticOptionInfo,
+ NativeOptionInfo: NativeOptionInfo,
+ Ticket: Ticket,
+ TicketItem: TicketItem,
+ SemanticTicketItemInfo: SemanticTicketItemInfo,
+ NativeTicketItemInfo: NativeTicketItemInfo
+ };
+});

Powered by Google App Engine
This is Rietveld 408576698