diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/editor/plugins/loremipsum.js')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/editor/plugins/loremipsum.js | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/editor/plugins/loremipsum.js b/contexts/data/lib/closure-library/closure/goog/editor/plugins/loremipsum.js deleted file mode 100644 index f8cfb12..0000000 --- a/contexts/data/lib/closure-library/closure/goog/editor/plugins/loremipsum.js +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright 2008 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 plugin that fills the field with lorem ipsum text when it's - * empty and does not have the focus. Applies to both editable and uneditable - * fields. - * - */ - -goog.provide('goog.editor.plugins.LoremIpsum'); - -goog.require('goog.asserts'); -goog.require('goog.dom'); -goog.require('goog.editor.Command'); -goog.require('goog.editor.Plugin'); -goog.require('goog.editor.node'); -goog.require('goog.functions'); - - - -/** - * A plugin that manages lorem ipsum state of editable fields. - * @param {string} message The lorem ipsum message. - * @constructor - * @extends {goog.editor.Plugin} - */ -goog.editor.plugins.LoremIpsum = function(message) { - goog.editor.Plugin.call(this); - - /** - * The lorem ipsum message. - * @type {string} - * @private - */ - this.message_ = message; -}; -goog.inherits(goog.editor.plugins.LoremIpsum, goog.editor.Plugin); - - -/** @override */ -goog.editor.plugins.LoremIpsum.prototype.getTrogClassId = - goog.functions.constant('LoremIpsum'); - - -/** @override */ -goog.editor.plugins.LoremIpsum.prototype.activeOnUneditableFields = - goog.functions.TRUE; - - -/** - * Whether the field is currently filled with lorem ipsum text. - * @type {boolean} - * @private - */ -goog.editor.plugins.LoremIpsum.prototype.usingLorem_ = false; - - -/** - * Handles queryCommandValue. - * @param {string} command The command to query. - * @return {boolean} The result. - * @override - */ -goog.editor.plugins.LoremIpsum.prototype.queryCommandValue = function(command) { - return command == goog.editor.Command.USING_LOREM && this.usingLorem_; -}; - - -/** - * Handles execCommand. - * @param {string} command The command to execute. - * Should be CLEAR_LOREM or UPDATE_LOREM. - * @param {*=} opt_placeCursor Whether to place the cursor in the field - * after clearing lorem. Should be a boolean. - * @override - */ -goog.editor.plugins.LoremIpsum.prototype.execCommand = function(command, - opt_placeCursor) { - if (command == goog.editor.Command.CLEAR_LOREM) { - this.clearLorem_(!!opt_placeCursor); - } else if (command == goog.editor.Command.UPDATE_LOREM) { - this.updateLorem_(); - } -}; - - -/** @override */ -goog.editor.plugins.LoremIpsum.prototype.isSupportedCommand = - function(command) { - return command == goog.editor.Command.CLEAR_LOREM || - command == goog.editor.Command.UPDATE_LOREM || - command == goog.editor.Command.USING_LOREM; -}; - - -/** - * Set the lorem ipsum text in a goog.editor.Field if needed. - * @private - */ -goog.editor.plugins.LoremIpsum.prototype.updateLorem_ = function() { - // Try to apply lorem ipsum if: - // 1) We have lorem ipsum text - // 2) There's not a dialog open, as that screws - // with the dialog's ability to properly restore the selection - // on dialog close (since the DOM nodes would get clobbered in FF) - // 3) We're not using lorem already - // 4) The field is not currently active (doesn't have focus). - var fieldObj = this.getFieldObject(); - if (!this.usingLorem_ && - !fieldObj.inModalMode() && - goog.editor.Field.getActiveFieldId() != fieldObj.id) { - var field = fieldObj.getElement(); - if (!field) { - // Fallback on the original element. This is needed by - // fields managed by click-to-edit. - field = fieldObj.getOriginalElement(); - } - - goog.asserts.assert(field); - if (goog.editor.node.isEmpty(field)) { - this.usingLorem_ = true; - - // Save the old font style so it can be restored when we - // clear the lorem ipsum style. - this.oldFontStyle_ = field.style.fontStyle; - field.style.fontStyle = 'italic'; - fieldObj.setHtml(true, this.message_, true); - } - } -}; - - -/** - * Clear an EditableField's lorem ipsum and put in initial text if needed. - * - * If using click-to-edit mode (where Trogedit manages whether the field - * is editable), this works for both editable and uneditable fields. - * - * TODO(user): Is this really necessary? See TODO below. - * @param {boolean=} opt_placeCursor Whether to place the cursor in the field - * after clearing lorem. - * @private - */ -goog.editor.plugins.LoremIpsum.prototype.clearLorem_ = function( - opt_placeCursor) { - // Don't mess with lorem state when a dialog is open as that screws - // with the dialog's ability to properly restore the selection - // on dialog close (since the DOM nodes would get clobbered) - var fieldObj = this.getFieldObject(); - if (this.usingLorem_ && !fieldObj.inModalMode()) { - var field = fieldObj.getElement(); - if (!field) { - // Fallback on the original element. This is needed by - // fields managed by click-to-edit. - field = fieldObj.getOriginalElement(); - } - - goog.asserts.assert(field); - this.usingLorem_ = false; - field.style.fontStyle = this.oldFontStyle_; - fieldObj.setHtml(true, null, true); - - // TODO(nicksantos): I'm pretty sure that this is a hack, but talk to - // Julie about why this is necessary and what to do with it. Really, - // we need to figure out where it's necessary and remove it where it's - // not. Safari never places the cursor on its own willpower. - if (opt_placeCursor && fieldObj.isLoaded()) { - if (goog.userAgent.WEBKIT) { - goog.dom.getOwnerDocument(fieldObj.getElement()).body.focus(); - fieldObj.focusAndPlaceCursorAtStart(); - } else if (goog.userAgent.OPERA) { - fieldObj.placeCursorAtStart(); - } - } - } -}; |