Files
openlayers/float-no-zero/closure-library/closure/goog/ui/equation/texeditor.js
2014-03-07 10:55:12 +01:00

142 lines
3.6 KiB
JavaScript

// Copyright 2009 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.
goog.provide('goog.ui.equation.TexEditor');
goog.require('goog.ui.Component');
goog.require('goog.ui.equation.ImageRenderer');
goog.require('goog.ui.equation.TexPane');
/**
* User interface for equation editor plugin.
* @constructor
* @param {Object} context The context that this Tex editor runs in.
* @param {string} helpUrl URL pointing to help documentation.
* @param {goog.dom.DomHelper=} opt_domHelper DomHelper to use.
* @extends {goog.ui.Component}
*/
goog.ui.equation.TexEditor = function(context, helpUrl, opt_domHelper) {
goog.ui.Component.call(this, opt_domHelper);
/**
* The context that this Tex editor runs in.
* @type {Object}
* @private
*/
this.context_ = context;
/**
* A URL pointing to help documentation.
* @type {string}
* @private
*/
this.helpUrl_ = helpUrl;
};
goog.inherits(goog.ui.equation.TexEditor, goog.ui.Component);
/**
* The TeX editor pane.
* @type {goog.ui.equation.TexPane}
* @private
*/
goog.ui.equation.TexEditor.prototype.texPane_ = null;
/** @override */
goog.ui.equation.TexEditor.prototype.createDom = function() {
goog.base(this, 'createDom');
this.createDom_();
};
/**
* Creates main editor contents.
* @private
*/
goog.ui.equation.TexEditor.prototype.createDom_ = function() {
var contentElement = this.getElement();
this.texPane_ = new goog.ui.equation.TexPane(this.context_,
this.helpUrl_, this.dom_);
this.addChild(this.texPane_);
this.texPane_.render(contentElement);
this.texPane_.setVisible(true);
};
/** @override */
goog.ui.equation.TexEditor.prototype.decorateInternal = function(element) {
this.setElementInternal(element);
this.createDom_();
};
/**
* Returns the encoded equation.
* @return {string} The encoded equation.
*/
goog.ui.equation.TexEditor.prototype.getEquation = function() {
return this.texPane_.getEquation();
};
/**
* Parse an equation and draw it.
* Clears any previous displayed equation.
* @param {string} equation The equation text to parse.
*/
goog.ui.equation.TexEditor.prototype.setEquation = function(equation) {
this.texPane_.setEquation(equation);
};
/**
* @return {string} The html code to embed in the document.
*/
goog.ui.equation.TexEditor.prototype.getHtml = function() {
return goog.ui.equation.ImageRenderer.getHtml(this.getEquation());
};
/**
* Checks whether the current equation is valid and can be used in a document.
* @return {boolean} Whether the equation valid.
*/
goog.ui.equation.TexEditor.prototype.isValid = function() {
return goog.ui.equation.ImageRenderer.isEquationTooLong(
this.getEquation());
};
/**
* Sets the visibility of the editor.
* @param {boolean} visible Whether the editor should be visible.
*/
goog.ui.equation.TexEditor.prototype.setVisible = function(visible) {
this.texPane_.setVisible(visible);
};
/** @override */
goog.ui.equation.TexEditor.prototype.disposeInternal = function() {
if (this.texPane_) {
this.texPane_.dispose();
}
this.context_ = null;
goog.base(this, 'disposeInternal');
};