diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/editor/plugins/spacestabhandler.js')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/editor/plugins/spacestabhandler.js | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/editor/plugins/spacestabhandler.js b/contexts/data/lib/closure-library/closure/goog/editor/plugins/spacestabhandler.js deleted file mode 100644 index 06b306f..0000000 --- a/contexts/data/lib/closure-library/closure/goog/editor/plugins/spacestabhandler.js +++ /dev/null @@ -1,93 +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 Editor plugin to handle tab keys not in lists to add 4 spaces. - * - * @author robbyw@google.com (Robby Walker) - * @author ajp@google.com (Andy Perelson) - */ - -goog.provide('goog.editor.plugins.SpacesTabHandler'); - -goog.require('goog.dom'); -goog.require('goog.dom.TagName'); -goog.require('goog.editor.plugins.AbstractTabHandler'); -goog.require('goog.editor.range'); - - - -/** - * Plugin to handle tab keys when not in lists to add 4 spaces. - * @constructor - * @extends {goog.editor.plugins.AbstractTabHandler} - */ -goog.editor.plugins.SpacesTabHandler = function() { - goog.editor.plugins.AbstractTabHandler.call(this); -}; -goog.inherits(goog.editor.plugins.SpacesTabHandler, - goog.editor.plugins.AbstractTabHandler); - - -/** @override */ -goog.editor.plugins.SpacesTabHandler.prototype.getTrogClassId = function() { - return 'SpacesTabHandler'; -}; - - -/** @override */ -goog.editor.plugins.SpacesTabHandler.prototype.handleTabKey = function(e) { - var dh = this.getFieldDomHelper(); - var range = this.getFieldObject().getRange(); - if (!goog.editor.range.intersectsTag(range, goog.dom.TagName.LI)) { - // In the shift + tab case we don't want to insert spaces, but we don't - // want focus to move either so skip the spacing logic and just prevent - // default. - if (!e.shiftKey) { - // Not in a list but we want to insert 4 spaces. - - // Stop change events while we make multiple field changes. - this.getFieldObject().stopChangeEvents(true, true); - - // Inserting nodes below completely messes up the selection, doing the - // deletion here before it's messed up. Only delete if text is selected, - // otherwise we would remove the character to the right of the cursor. - if (!range.isCollapsed()) { - dh.getDocument().execCommand('delete', false, null); - // Safari 3 has some DOM exceptions if we don't reget the range here, - // doing it all the time just to be safe. - range = this.getFieldObject().getRange(); - } - - // Emulate tab by removing selection and inserting 4 spaces - // Two breaking spaces in a row can be collapsed by the browser into one - // space. Inserting the string below because it is guaranteed to never - // collapse to less than four spaces, regardless of what is adjacent to - // the inserted spaces. This might make line wrapping slightly - // sub-optimal around a grouping of non-breaking spaces. - var elem = dh.createDom('span', null, '\u00a0\u00a0 \u00a0'); - elem = range.insertNode(elem, false); - - this.getFieldObject().dispatchChange(); - goog.editor.range.placeCursorNextTo(elem, false); - this.getFieldObject().dispatchSelectionChangeEvent(); - } - - e.preventDefault(); - return true; - } - - return false; -}; - |