Cleanup itex extension

Most of the DOM manipulations can be done
before doing the AJAX call. This leaves
just the insertion of the MathML nodes in the
mrow for the AJAX callback function.

Also, make the stroke-width for the connector tool 
default to 2.
This commit is contained in:
Jacques Distler 2010-02-23 17:24:23 -06:00
parent d201f79766
commit 4cd626ef49
2 changed files with 15 additions and 12 deletions

View file

@ -305,7 +305,7 @@ $(function() {
"id": getNextId(),
"points": (x+','+y+' '+x+','+y+' '+start_x+','+start_y),
"stroke": '#000',
"stroke-width": 3,
"stroke-width": 2,
"fill": "none",
"opacity": .5,
"style": "pointer-events:none"

View file

@ -60,24 +60,27 @@ $(function() {
function setItexString(tex) {
var elt = selElems[0];
try {
math = svgdoc.createElementNS(mathns, 'math');
var math = svgdoc.createElementNS(mathns, 'math');
math.setAttributeNS(xmlnsns, 'xmlns', mathns);
math.setAttribute('display', 'inline');
var semantics = document.createElementNS(mathns, 'semantics');
var annotation = document.createElementNS(mathns, 'annotation');
annotation.setAttribute('encoding', 'application/x-tex');
annotation.textContent = tex;
var mrow = document.createElementNS(mathns, 'mrow');
semantics.appendChild(mrow);
semantics.appendChild(annotation);
math.appendChild(semantics);
// make an AJAX request to the server, to get the MathML
$.post(ajaxEndpoint, {'tex': tex, 'display': 'inline'}, function(data){
math.setAttributeNS(xmlnsns, 'xmlns', mathns);
math.setAttribute('display', 'inline');
var semantics = document.createElementNS(mathns, 'semantics');
var annotation = document.createElementNS(mathns, 'annotation');
annotation.setAttribute('encoding', 'application/x-tex');
annotation.textContent = tex;
var mrow = document.createElementNS(mathns, 'mrow');
var children = data.documentElement.childNodes;
while (children.length > 0) {
mrow.appendChild(children[0]);
}
semantics.appendChild(mrow);
semantics.appendChild(annotation);
math.appendChild(semantics);
S.sanitizeSvg(math);
//elt.setAttribute('width', math.clientWidth+5);
//elt.setAttribute('height', math.clientHeight+5);
S.call("changed", [elt]);
});
elt.replaceChild(math, elt.firstChild);
S.call("changed", [elt]);