aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/infrastructure/ace/www/ace2_wrapper.js
diff options
context:
space:
mode:
authorElliot Kroo <kroo@appjet.com>2010-03-11 15:21:30 -0800
committerElliot Kroo <kroo@appjet.com>2010-03-11 15:21:30 -0800
commit98e2821b38a775737e42a2479a6bc65107210859 (patch)
tree55939a8ba1dce4f4e48ebb13b658061d62bf1b9a /trunk/infrastructure/ace/www/ace2_wrapper.js
parentc1894c8e0a52f4e3d2f89fa92f0066bbf0fcf1b1 (diff)
downloadetherpad-98e2821b38a775737e42a2479a6bc65107210859.tar.gz
etherpad-98e2821b38a775737e42a2479a6bc65107210859.tar.xz
etherpad-98e2821b38a775737e42a2479a6bc65107210859.zip
reorganizing the first level of folders (trunk/branch folders are not the git way :)
Diffstat (limited to 'trunk/infrastructure/ace/www/ace2_wrapper.js')
-rw-r--r--trunk/infrastructure/ace/www/ace2_wrapper.js226
1 files changed, 0 insertions, 226 deletions
diff --git a/trunk/infrastructure/ace/www/ace2_wrapper.js b/trunk/infrastructure/ace/www/ace2_wrapper.js
deleted file mode 100644
index b62e09d..0000000
--- a/trunk/infrastructure/ace/www/ace2_wrapper.js
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- * Copyright 2009 Google Inc.
- *
- * 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.
- */
-
-// Exposes interface of Aaron's ace.js, including switching between plain and fancy editor.
-// Currently uses Aaron's code and depends on JQuery for plain editor.
-// -- David
-
-
-AppjetCodeEditor = function() {
- this.browserSupportsModern = false;
- this.aceImpl = null;
- this.containerDiv = null;
- this.containerId = null;
- this.onKeyPress = null;
- this.onKeyDown = null;
- this.notifyDirty = null;
- this.isEditable = true;
-};
-
-// TODO: take editorType as a param
-
-AppjetCodeEditor.prototype.init = function(containerId,
- initialCode,
- startModern,
- done) {
- this.containerId = containerId;
- this.containerDiv = document.getElementById(containerId);
-
- if (startModern) {
- this.aceImplModern = new Ace2Editor();
- this.aceImpl = this.aceImplModern;
- } else {
- this.aceImplPlain = new ACEPlain();
- this.aceImpl = this.aceImplPlain;
- }
- this.aceImpl.init(containerId, initialCode, done);
-};
-
-AppjetCodeEditor.prototype.updateBottomLinks = function() {
- if (ACEPlain.prototype.isPrototypeOf(this.aceImpl)) {
- this.toggleModernLink.innerHTML = 'switch to rich text';
- } else {
- this.toggleModernLink.innerHTML = 'switch to plaintext';
- }
-};
-
-AppjetCodeEditor.prototype.toggleModernImpl = function() {
- var codeSave = this.aceImpl.exportCode();
-
- if (ACEPlain.prototype.isPrototypeOf(this.aceImpl)) {
- this.aceImpl.destroy();
- this.aceImpl = new Ace2Editor();
- } else {
- this.aceImpl.destroy();
- this.aceImpl = new ACEPlain();
- }
- var cont = this.containerDiv;
- while (cont.firstChild) {
- cont.removeChild(cont.firstChild);
- }
- this.aceImpl.init(this.containerId, codeSave, function() {} );
-
- var ace = this;
- function capitalize(str) { return str.substr(0,1).toUpperCase()+str.substr(1); }
- $.each(["onKeyPress", "onKeyDown", "notifyDirty"], function() {
- var setter = 'set'+capitalize(this);
- if (ace[this]) {
- ace.aceImpl[setter](ace[this]);
- }
- });
- this.aceImpl.setEditable(this.isEditable);
-};
-
-AppjetCodeEditor.prototype.adjustContainerSizes = function() {
- // TODO: adjust container sizes here.
-};
-
-//================================================================
-// Interface to ACE
-//================================================================
-
-AppjetCodeEditor.prototype.setOnKeyPress = function(f) {
- this.onKeyPress = f;
- this.aceImpl.setOnKeyPress(this.onKeyPress);
-};
-
-AppjetCodeEditor.prototype.setOnKeyDown = function(f) {
- this.onKeyDown = f;
- this.aceImpl.setOnKeyDown(this.onKeyDown);
-};
-
-AppjetCodeEditor.prototype.setNotifyDirty = function(f) {
- this.notifyDirty = f;
- this.aceImpl.setNotifyDirty(this.notifyDirty);
-};
-
-AppjetCodeEditor.prototype.setEditable = function(x) {
- this.isEditable = x;
- this.aceImpl.setEditable(x);
-};
-
-AppjetCodeEditor.prototype.adjustSize = function() {
- this.adjustContainerSizes();
- this.aceImpl.adjustSize();
-};
-
-//------- straight pass-through functions ---------------
-
-AppjetCodeEditor.prototype.importCode = function(rawCode) {
- this.aceImpl.importCode(rawCode);
-};
-
-AppjetCodeEditor.prototype.exportCode = function() {
- return this.aceImpl.exportCode();
-};
-
-AppjetCodeEditor.prototype.getFormattedCode = function() {
- return this.aceImpl.getFormattedCode();
-};
-
-AppjetCodeEditor.prototype.focus = function() {
- this.aceImpl.focus();
-};
-
-/* implementation of ACE with simple textarea */
-
-ACEPlain = function() {
- this.containerDiv = null;
- this.textArea = null;
- this.onKeyPress = null;
- this.onKeyDown = null;
- this.notifyDirty = null;
-};
-
-ACEPlain.prototype.init = function(containerId, initialCode, done) {
- var container = $('#'+containerId); //document.getElementById(containerId);
-
- // empty container div
- container.empty();
- container.css('padding', 0);
-
- // create textarea
- var textArea = $('<textarea></textarea>');
- textArea.css('border', 0).
- css('margin', 0).
- css('padding', 0).
- css('background', 'transparent').
- css('color', '#000').
- attr('spellcheck', false);
-
- // add textarea to container
- container.append(textArea);
-
- // remember nodes
- this.textArea = textArea;
- this.containerDiv = container;
-
- // first-time size adjustments
- this.adjustSize();
-
- // remember keystrokes
- var ace = this;
- textArea.keydown(function(e) {
- if (ace.onKeyDown) { ace.onKeyDown(e); }
- });
- textArea.keypress(function(e) {
- if (ace.notifyDirty) { ace.notifyDirty(); }
- if (ace.onKeyPress) { ace.onKeyPress(e); }
- });
-
- // set initial code
- textArea.get(0).value = initialCode;
-
- // callback
- done();
-};
-
-ACEPlain.prototype.importCode = function(rawCode) {
- this.textArea.attr('value', rawCode);
-};
-
-ACEPlain.prototype.exportCode = function() {
- return this.textArea.attr('value');
-};
-
-ACEPlain.prototype.adjustSize = function() {
- this.textArea.width('100%');
- this.textArea.height(this.containerDiv.height());
-};
-
-ACEPlain.prototype.setOnKeyPress = function(f) { this.onKeyPress = f; };
-ACEPlain.prototype.setOnKeyDown = function(f) { this.onKeyDown = f; };
-ACEPlain.prototype.setNotifyDirty = function(f) { this.notifyDirty = f; };
-
-ACEPlain.prototype.getFormattedCode = function() {
- return ('<pre>' + this.textArea.attr('value') + '</pre>');
-};
-
-ACEPlain.prototype.setEditable = function(editable) {
- if (editable) {
- this.textArea.removeAttr('disabled');
- } else {
- this.textArea.attr('disabled', true);
- }
-};
-
-ACEPlain.prototype.focus = function() {
- this.textArea.focus();
-};
-
-ACEPlain.prototype.destroy = function() {
- // nothing
-};