diff options
Diffstat (limited to 'contexts/data/lib/closure-library/third_party/closure/goog/silverlight/clipboardbutton.js')
-rw-r--r-- | contexts/data/lib/closure-library/third_party/closure/goog/silverlight/clipboardbutton.js | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/contexts/data/lib/closure-library/third_party/closure/goog/silverlight/clipboardbutton.js b/contexts/data/lib/closure-library/third_party/closure/goog/silverlight/clipboardbutton.js deleted file mode 100644 index 543d484..0000000 --- a/contexts/data/lib/closure-library/third_party/closure/goog/silverlight/clipboardbutton.js +++ /dev/null @@ -1,280 +0,0 @@ -// Copyright 2010 The Closure Library Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview A button that can access the native clipboard. Calls - * out to silverlight when it's possible to do so. - * - * If the current browser does not support native clipboard access, - * throw an error. - * - * @author nicksantos@google.com (Nick Santos) - */ - -goog.provide('goog.silverlight.ClipboardButton'); -goog.provide('goog.silverlight.ClipboardButtonType'); -goog.provide('goog.silverlight.ClipboardEvent'); -goog.provide('goog.silverlight.CopyButton'); -goog.provide('goog.silverlight.PasteButton'); -goog.provide('goog.silverlight.PasteButtonEvent'); - -goog.require('goog.asserts'); -goog.require('goog.events.Event'); -goog.require('goog.math.Size'); -goog.require('goog.silverlight'); -goog.require('goog.ui.Component'); - - -/** - * A button that can access the native clipboard, via Silverlight. - * - * If this is not a browser that supports native clipboard access, - * throw an error. - * - * Clients should not instantiate this directly. Instead, use CopyButton - * or PasteButton. - * - * @param {goog.silverlight.ClipboardButtonType} type Copy or Paste. - * @param {Function} callback The callback function for copy or paste. - * @param {goog.Uri} slResource The URI of ClosureClipboardButton.xap (The - * silverlight resource included in this package.) - * @param {string} caption Text caption to display as the button's caption. - * @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper, used for - * document interaction. - * @constructor - * @extends {goog.ui.Component} - */ -goog.silverlight.ClipboardButton = - function(type, callback, slResource, caption, opt_domHelper) { - // In an ideal world, we'd use some sort of transparent overlay over - // an HTML-based button. Silverlight doesn't appear to allow this. - // Silverlight only allows copy and paste in response to a - // silverlight-managed click on a silverlight-rendered button, - // and this button cannot be transparent. - goog.asserts.assert( - goog.silverlight.ClipboardButton.hasClipboardAccess(), - 'no clipboard access'); - - goog.base(this, opt_domHelper); - - /** - * The ID of the handler to pass to silverlight. - * @type {string} - * @private - */ - this.callbackId_ = goog.asserts.assertString( - goog.silverlight.getHandlerName(callback)); - - /** - * The button caption. - * @type {string} - * @private - */ - this.caption_ = caption; - - /** - * The compiled silverlight bundle. - * @type {goog.Uri} - * @private - */ - this.slResource_ = slResource; - - /** - * @type {goog.silverlight.ClipboardButtonType} - * @private - */ - this.type_ = type; - - /** - * @type {goog.math.Size} - * @private - */ - this.size_ = goog.silverlight.ClipboardButton.DEFAULT_SIZE_; -}; -goog.inherits(goog.silverlight.ClipboardButton, goog.ui.Component); - - -/** - * The default size of the button. - * @type {goog.math.Size} - * @private - */ -goog.silverlight.ClipboardButton.DEFAULT_SIZE_ = new goog.math.Size(100, 30); - - -/** - * Silverlight components need absolute sizing. Should be set before the - * component is rendered. - * @param {goog.math.Size} size The size of the component. - */ -goog.silverlight.ClipboardButton.prototype.setSize = function(size) { - this.size_ = size; -}; - - -/** - * Creates the button's DOM. - * @override - */ -goog.silverlight.ClipboardButton.prototype.createDom = function() { - var dom = this.getDomHelper(); - var element = dom.createDom('div', goog.getCssName('goog-inline-block')); - this.setElementInternal(element); - - var source = this.slResource_.toString(); - goog.silverlight.createObject( - source, element, null, - {version: '4.0', - width: this.size_.width, height: this.size_.height}, null, - ['buttonType=' + this.type_, - 'callbackName=' + this.callbackId_, - 'Content=' + this.caption_].join(',')); -}; - - -/** @return {boolean} If clipboard access is supported. */ -goog.silverlight.ClipboardButton.hasClipboardAccess = function() { - // TODO(nicksantos): Use IE execCommand if available. - return goog.silverlight.isInstalled('4.0'); -}; - - -/** @inheritDoc */ -goog.silverlight.ClipboardButton.prototype.disposeInternal = function() { - goog.silverlight.disposeHandlerName(this.callbackId_); - goog.base(this, 'disposeInternal'); -}; - - -/** - * Whether the button should trigger a copy or a paste. - * @enum - * @private - */ -goog.silverlight.ClipboardButtonType = { - COPY: 1, - PASTE: 2 -}; - - -/** - * A clipboard button event. By design, replicates IE's clipboard API. - * @param {string} type The event type. - * @param {string=} opt_data The data pasted, if this is a paste event. - * @constructor - * @extends {goog.events.Event} - */ -goog.silverlight.ClipboardEvent = function(type, opt_data) { - goog.base(this, type); - - /** - * @type {?string} - * @private - */ - this.data_ = opt_data || null; -}; -goog.inherits(goog.silverlight.ClipboardEvent, goog.events.Event); - - -/** @return {?string} Data pasted from the clipboard. */ -goog.silverlight.ClipboardEvent.prototype.getData = function() { - return this.data_; -}; - - -/** @param {string} data Data to put on the clipboard. */ -goog.silverlight.ClipboardEvent.prototype.setData = function(data) { - this.data_ = data; -}; - - -/** @enum {string} */ -goog.silverlight.ClipboardEventType = { - COPY: 'copy', - PASTE: 'paste' -}; - - -/** - * A button that can retrieve contents from the native clipboard. - * - * @param {goog.Uri} slResource The URI of ClosureClipboardButton.xap (the - * silverlight resource included in this package. - * @param {string=} opt_caption Text caption to display as the button's caption. - * Defaults to 'Paste'. - * @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper, used for - * document interaction. - * @constructor - * @extends {goog.silverlight.ClipboardButton} - */ -goog.silverlight.PasteButton = - function(slResource, opt_caption, opt_domHelper) { - /** @desc Label for the paste button */ - var MSG_DEFAULT_PASTE_BUTTON_CAPTION = goog.getMsg('Paste'); - var caption = opt_caption || MSG_DEFAULT_PASTE_BUTTON_CAPTION; - - goog.base(this, - goog.silverlight.ClipboardButtonType.PASTE, - goog.bind(this.handlePaste_, this), - slResource, - caption, - opt_domHelper); -}; -goog.inherits(goog.silverlight.PasteButton, goog.silverlight.ClipboardButton); - - -/** @param {string} content The native content that was pasted. */ -goog.silverlight.PasteButton.prototype.handlePaste_ = function(content) { - this.dispatchEvent( - new goog.silverlight.ClipboardEvent( - goog.silverlight.ClipboardEventType.PASTE, - content)); -}; - - -/** - * A button that can copy contents. - * - * @param {goog.Uri} slResource The URI of ClosureClipboardButton.xap (the - * silverlight resource included in this package. - * @param {string=} opt_caption Text caption to display as the button's caption. - * Defaults to 'Copy'. - * @param {goog.dom.DomHelper=} opt_domHelper Optional DOM helper, used for - * document interaction. - * @constructor - * @extends {goog.silverlight.ClipboardButton} - */ -goog.silverlight.CopyButton = - function(slResource, opt_caption, opt_domHelper) { - /** @desc Label for the copy button */ - var MSG_DEFAULT_COPY_BUTTON_CAPTION = goog.getMsg('Copy'); - var caption = opt_caption || MSG_DEFAULT_COPY_BUTTON_CAPTION; - - goog.base(this, - goog.silverlight.ClipboardButtonType.COPY, - goog.bind(this.handleCopy_, this), - slResource, - caption, - opt_domHelper); -}; -goog.inherits(goog.silverlight.CopyButton, goog.silverlight.ClipboardButton); - - -/** @return {string} The content to be copied to the clipboard. */ -goog.silverlight.CopyButton.prototype.handleCopy_ = function() { - var event = new goog.silverlight.ClipboardEvent( - goog.silverlight.ClipboardEventType.COPY); - this.dispatchEvent(event); - return event.getData() || ''; -}; |