*/
/**
* @class Roo.data.MemoryProxy
+ * @extends Roo.data.DataProxy
* An implementation of Roo.data.DataProxy that simply passes the data specified in its constructor
* to the Reader when its load method is called.
* @constructor
- * @param {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ * @param {Object} config A config object containing the objects needed for the Store to access data,
*/
-Roo.data.MemoryProxy = function(data){
- if (data.data) {
- data = data.data;
+Roo.data.MemoryProxy = function(config){
+ var data = config;
+ if (typeof(config) != 'undefined' && typeof(config.data) != 'undefined') {
+ data = config.data;
}
Roo.data.MemoryProxy.superclass.constructor.call(this);
this.data = data;
Roo.extend(Roo.data.MemoryProxy, Roo.data.DataProxy, {
+ /**
+ * @cfg {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ */
/**
* Load data from the requested source (in this case an in-memory
* data object passed to the constructor), read the data object into
--- /dev/null
+
+/**
+ * @class Roo.form.Column
+ * @extends Roo.form.Layout
+ * @children Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
+ * Creates a column container for layout and rendering of fields in an {@link Roo.form.Form}.
+ * @constructor
+ * @param {Object} config Configuration options
+ */
+Roo.form.Column = function(config){
+ Roo.form.Column.superclass.constructor.call(this, config);
+};
+
+Roo.extend(Roo.form.Column, Roo.form.Layout, {
+ /**
+ * @cfg {Number/String} width
+ * The fixed width of the column in pixels or CSS value (defaults to "auto")
+ */
+ /**
+ * @cfg {String/Object} autoCreate
+ * A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'})
+ */
+
+ // private
+ defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-column'},
+
+ // private
+ onRender : function(ct, position){
+ Roo.form.Column.superclass.onRender.call(this, ct, position);
+ if(this.width){
+ this.el.setWidth(this.width);
+ }
+ }
+});
--- /dev/null
+
+/**
+ * @class Roo.form.FieldSet
+ * @extends Roo.form.Layout
+ * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem
+ * Creates a fieldset container for layout and rendering of fields in an {@link Roo.form.Form}.
+ * @constructor
+ * @param {Object} config Configuration options
+ */
+Roo.form.FieldSet = function(config){
+ Roo.form.FieldSet.superclass.constructor.call(this, config);
+};
+
+Roo.extend(Roo.form.FieldSet, Roo.form.Layout, {
+ /**
+ * @cfg {String} legend
+ * The text to display as the legend for the FieldSet (defaults to '')
+ */
+ /**
+ * @cfg {String/Object} autoCreate
+ * A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}})
+ */
+
+ // private
+ defaultAutoCreate : {tag: 'fieldset', cn: {tag:'legend'}},
+
+ // private
+ onRender : function(ct, position){
+ Roo.form.FieldSet.superclass.onRender.call(this, ct, position);
+ if(this.legend){
+ this.setLegend(this.legend);
+ }
+ },
+
+ // private
+ setLegend : function(text){
+ if(this.rendered){
+ this.el.child('legend').update(text);
+ }
+ }
+});
\ No newline at end of file
* a function which returns such a specification.
*/
/**
- * @cfg {String} labelAlign
+ * @cfg {String} labelAlign (left|top|right)
* Valid values are "left," "top" and "right" (defaults to "left")
*/
/**
}
});
-/**
- * @class Roo.form.Column
- * @extends Roo.form.Layout
- * @children Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
- * Creates a column container for layout and rendering of fields in an {@link Roo.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-Roo.form.Column = function(config){
- Roo.form.Column.superclass.constructor.call(this, config);
-};
-
-Roo.extend(Roo.form.Column, Roo.form.Layout, {
- /**
- * @cfg {Number/String} width
- * The fixed width of the column in pixels or CSS value (defaults to "auto")
- */
- /**
- * @cfg {String/Object} autoCreate
- * A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'})
- */
-
- // private
- defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-column'},
-
- // private
- onRender : function(ct, position){
- Roo.form.Column.superclass.onRender.call(this, ct, position);
- if(this.width){
- this.el.setWidth(this.width);
- }
- }
-});
-
-
-/**
- * @class Roo.form.Row
- * @extends Roo.form.Layout
- * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
- * Creates a row container for layout and rendering of fields in an {@link Roo.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-
-
-Roo.form.Row = function(config){
- Roo.form.Row.superclass.constructor.call(this, config);
-};
-
-Roo.extend(Roo.form.Row, Roo.form.Layout, {
- /**
- * @cfg {Number/String} width
- * The fixed width of the column in pixels or CSS value (defaults to "auto")
- */
- /**
- * @cfg {Number/String} height
- * The fixed height of the column in pixels or CSS value (defaults to "auto")
- */
- defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-row'},
-
- padWidth : 20,
- // private
- onRender : function(ct, position){
- //console.log('row render');
- if(!this.rowTpl){
- var t = new Roo.Template(
- '<div class="x-form-item {5}" style="float:left;width:{6}px">',
- '<label for="{0}" style="{2}">{1}{4}</label>',
- '<div class="x-form-element" id="x-form-el-{0}" style="{3}">',
- '</div>',
- '</div>'
- );
- t.disableFormats = true;
- t.compile();
- Roo.form.Layout.prototype.rowTpl = t;
- }
- this.fieldTpl = this.rowTpl;
-
- //console.log('lw' + this.labelWidth +', la:' + this.labelAlign);
- var labelWidth = 100;
-
- if ((this.labelAlign != 'top')) {
- if (typeof this.labelWidth == 'number') {
- labelWidth = this.labelWidth
- }
- this.padWidth = 20 + labelWidth;
-
- }
-
- Roo.form.Column.superclass.onRender.call(this, ct, position);
- if(this.width){
- this.el.setWidth(this.width);
- }
- if(this.height){
- this.el.setHeight(this.height);
- }
- },
-
- // private
- renderField : function(f){
- f.fieldEl = this.fieldTpl.append(this.el, [
- f.id, f.fieldLabel,
- f.labelStyle||this.labelStyle||'',
- this.elementStyle||'',
- typeof f.labelSeparator == 'undefined' ? this.labelSeparator : f.labelSeparator,
- f.itemCls||this.itemCls||'',
- f.width ? f.width + this.padWidth : 160 + this.padWidth
- ],true);
- }
-});
-
-
-/**
- * @class Roo.form.FieldSet
- * @extends Roo.form.Layout
- * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem
- * Creates a fieldset container for layout and rendering of fields in an {@link Roo.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-Roo.form.FieldSet = function(config){
- Roo.form.FieldSet.superclass.constructor.call(this, config);
-};
-
-Roo.extend(Roo.form.FieldSet, Roo.form.Layout, {
- /**
- * @cfg {String} legend
- * The text to display as the legend for the FieldSet (defaults to '')
- */
- /**
- * @cfg {String/Object} autoCreate
- * A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}})
- */
-
- // private
- defaultAutoCreate : {tag: 'fieldset', cn: {tag:'legend'}},
-
- // private
- onRender : function(ct, position){
- Roo.form.FieldSet.superclass.onRender.call(this, ct, position);
- if(this.legend){
- this.setLegend(this.legend);
- }
- },
-
- // private
- setLegend : function(text){
- if(this.rendered){
- this.el.child('legend').update(text);
- }
- }
-});
\ No newline at end of file
--- /dev/null
+
+/**
+ * @class Roo.form.Row
+ * @extends Roo.form.Layout
+ * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
+ * Creates a row container for layout and rendering of fields in an {@link Roo.form.Form}.
+ * @constructor
+ * @param {Object} config Configuration options
+ */
+
+
+Roo.form.Row = function(config){
+ Roo.form.Row.superclass.constructor.call(this, config);
+};
+
+Roo.extend(Roo.form.Row, Roo.form.Layout, {
+ /**
+ * @cfg {Number/String} width
+ * The fixed width of the column in pixels or CSS value (defaults to "auto")
+ */
+ /**
+ * @cfg {Number/String} height
+ * The fixed height of the column in pixels or CSS value (defaults to "auto")
+ */
+ defaultAutoCreate : {tag: 'div', cls: 'x-form-ct x-form-row'},
+
+ padWidth : 20,
+ // private
+ onRender : function(ct, position){
+ //console.log('row render');
+ if(!this.rowTpl){
+ var t = new Roo.Template(
+ '<div class="x-form-item {5}" style="float:left;width:{6}px">',
+ '<label for="{0}" style="{2}">{1}{4}</label>',
+ '<div class="x-form-element" id="x-form-el-{0}" style="{3}">',
+ '</div>',
+ '</div>'
+ );
+ t.disableFormats = true;
+ t.compile();
+ Roo.form.Layout.prototype.rowTpl = t;
+ }
+ this.fieldTpl = this.rowTpl;
+
+ //console.log('lw' + this.labelWidth +', la:' + this.labelAlign);
+ var labelWidth = 100;
+
+ if ((this.labelAlign != 'top')) {
+ if (typeof this.labelWidth == 'number') {
+ labelWidth = this.labelWidth
+ }
+ this.padWidth = 20 + labelWidth;
+
+ }
+
+ Roo.form.Column.superclass.onRender.call(this, ct, position);
+ if(this.width){
+ this.el.setWidth(this.width);
+ }
+ if(this.height){
+ this.el.setHeight(this.height);
+ }
+ },
+
+ // private
+ renderField : function(f){
+ f.fieldEl = this.fieldTpl.append(this.el, [
+ f.id, f.fieldLabel,
+ f.labelStyle||this.labelStyle||'',
+ this.elementStyle||'',
+ typeof f.labelSeparator == 'undefined' ? this.labelSeparator : f.labelSeparator,
+ f.itemCls||this.itemCls||'',
+ f.width ? f.width + this.padWidth : 160 + this.padWidth
+ ],true);
+ }
+});
+
// no need to apply config.
this.replaceDocBullets(cfg.node);
- this.walk(cfg.node);
+ // this.walk(cfg.node);
}
styleToObject: function(node)
{
- var styles = node.getAttribute("style").split(";");
+ var styles = (node.getAttribute("style") || '').split(";");
var ret = {};
Roo.each(styles, function(s) {
if (!s.match(/:/)) {
var kv = s.split(":");
// what ever is left... we allow.
- ret[kv[0]] = kv[1];
+ ret[kv[0].trim()] = kv[1];
});
return ret;
},
replaceDocBullets : function(doc)
{
+ // this is a bit odd - but it appears some indents use ql-indent-1
+
+ var listpara = doc.getElementsByClassName('ql-indent-1');
+ while(listpara.length) {
+ this.replaceDocBullet(listpara.item(0));
+ }
+
var listpara = doc.getElementsByClassName('MsoListParagraph');
while(listpara.length) {
this.replaceDocBullet(listpara.item(0));
- //code
}
},
var ns = p,
parent = p.parentNode,
doc = parent.ownerDocument,
- items = [];
+ items = [];
+
+
while (ns) {
if (ns.nodeType != 1) {
ns = ns.nextSibling;
continue;
}
- if (!ns.className.match(/MsoListParagraph/i)) {
+ if (!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)) {
break;
}
items.push(ns);
ns = ns.nextSibling;
-
}
+
+
var ul = parent.ownerDocument.createElement('ul'); // what about number lists...
parent.insertBefore(ul, p);
var lvl = 0;
var stack = [ ul ];
var last_li = false;
- items.forEach(function(n) {
- parent.removeChild(n);
+
+ items.forEach(function(n, ipos) {
+ //Roo.log("got innertHMLT=" + n.innerHTML);
+
var spans = n.getElementsByTagName('span');
- if (!spans.length || !n.isEqualNode(spans.item(0).parentNode)) {
+ if (!spans.length) {
+ //Roo.log("No spans found");
+
+ parent.removeChild(n);
return; // skip it...
}
+
+
- var style = this.styleToObject(n);
+ var style = {};
+ for(var i = 0; i < spans.length; i++) {
+
+ style = this.styleToObject(spans[i]);
+ if (typeof(style['mso-list']) == 'undefined') {
+ continue;
+ }
+
+ spans[i].parentNode.removeChild(spans[i]); // remove the fake bullet.
+ break;
+ }
+ //Roo.log("NOW GOT innertHMLT=" + n.innerHTML);
+ style = this.styleToObject(n); // mo-list is from the parent node.
if (typeof(style['mso-list']) == 'undefined') {
- return; // skip it.
+ //Roo.log("parent is missing level");
+ parent.removeChild(n);
+ return;
}
- n.removeChild(spans.item(0)); // remove the fake bullet.
- var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1;
+
+ var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1 ;
+
+
+
if (nlvl > lvl) {
//new indent
var nul = doc.createElement('ul'); // what about number lists...
last_li.appendChild(nul);
stack[nlvl] = nul;
+
}
lvl = nlvl;
var nli = stack[nlvl].appendChild(doc.createElement('li'));
last_li = nli;
+ nli.innerHTML = n.innerHTML;
+ //Roo.log("innerHTML = " + n.innerHTML);
+ parent.removeChild(n);
+
// copy children of p into nli
- while(n.firstChild) {
+ /*while(n.firstChild) {
var fc = n.firstChild;
n.removeChild(fc);
nli.appendChild(fc);
- }
+ }*/
},this);
* @param {String} text String to write out.
* @param {Boolean} raw Optional raw state if true the contents wont get encoded.
*/
- text: function(text, node)
+ text: function(in_text, node)
{
// if not in whitespace critical
- if (text.length < 1) {
+ if (in_text.length < 1) {
return;
}
+ var text = new XMLSerializer().serializeToString(document.createTextNode(in_text)); // escape it properly?
+
if (this.in_pre) {
this.html[this.html.length] = text;
return;
this.hexStore.push(cmd);
},
cmderror : function(cmd) {
- throw new Exception (cmd.value);
+ throw cmd.value;
},
/*
{
this.emitText();
if (this.controlWord === '') {
- this.emitError('empty control word');
+ // do we want to track this - it seems just to cause problems.
+ //this.emitError('empty control word');
} else {
this.push({
type: 'controlword',
Roo.form.Form
Roo.form.Action
Roo.form.Layout
+Roo.form.Column
+Roo.form.Row
+Roo.form.FieldSet
Roo.form.VTypes
Roo.form.FCKeditor
Roo.form.GridField
"isAbstract" : true,
"isBuilderTop" : false,
"implementations" : [
- "Roo.data.HttpProxy"
+ "Roo.data.HttpProxy",
+ "Roo.data.MemoryProxy"
],
"tree_children" : [],
"tree_parent" : []
"tree_parent" : []
},
"Roo.data.MemoryProxy" : {
- "props" : [],
- "events" : [],
+ "props" : [
+ {
+ "name" : "data",
+ "type" : "Object",
+ "desc" : "The data object which the Reader uses to construct a block of Roo.data.Records.",
+ "memberOf" : "",
+ "isOptional" : false,
+ "optvals" : []
+ },
+ {
+ "name" : "listeners",
+ "type" : "Object",
+ "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n listeners : { \n 'click' : function(e) {\n ..... \n } ,\n .... \n } \n </code></pre>",
+ "memberOf" : "Roo.util.Observable",
+ "isOptional" : false,
+ "optvals" : []
+ }
+ ],
+ "events" : [
+ {
+ "name" : "beforeload",
+ "type" : "function",
+ "desc" : "Fires before a network request is made to retrieve a data object.",
+ "sig" : "function (This, params)\n{\n\n}",
+ "memberOf" : "Roo.data.DataProxy",
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "params" : [
+ {
+ "name" : "This",
+ "type" : "Object",
+ "desc" : "DataProxy object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "params",
+ "type" : "Object",
+ "desc" : "The params parameter to the load function.",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "load",
+ "type" : "function",
+ "desc" : "Fires before the load method's callback is called.",
+ "sig" : "function (This, o, arg)\n{\n\n}",
+ "memberOf" : "Roo.data.DataProxy",
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "params" : [
+ {
+ "name" : "This",
+ "type" : "Object",
+ "desc" : "DataProxy object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "o",
+ "type" : "Object",
+ "desc" : "The data object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "arg",
+ "type" : "Object",
+ "desc" : "The callback argument object passed to the load function.",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "loadexception",
+ "type" : "function",
+ "desc" : "Fires if an Exception occurs during data retrieval.",
+ "sig" : "function (This, o, arg, e)\n{\n\n}",
+ "memberOf" : "Roo.data.DataProxy",
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "params" : [
+ {
+ "name" : "This",
+ "type" : "Object",
+ "desc" : "DataProxy object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "o",
+ "type" : "Object",
+ "desc" : "The data object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "arg",
+ "type" : "Object",
+ "desc" : "The callback argument object passed to the load function.",
+ "isOptional" : false
+ },
+ {
+ "name" : "e",
+ "type" : "Object",
+ "desc" : "The Exception.",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ }
+ ],
"methods" : [
+ {
+ "name" : "addEvents",
+ "type" : "function",
+ "desc" : "Used to define events on this Observable",
+ "sig" : "(object)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "object",
+ "type" : "Object",
+ "desc" : "The object with the events defined",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "addListener",
+ "type" : "function",
+ "desc" : "Appends an event handler to this component",
+ "sig" : "(eventName, handler, scope, options)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The method the event invokes",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
+ "isOptional" : false
+ },
+ {
+ "name" : "options",
+ "type" : "Object",
+ "desc" : "(optional) An object containing handler configuration\nproperties. This may contain any of the following properties:<ul>\n<li>scope {Object} The scope in which to execute the handler function. The handler function's \"this\" context.</li>\n<li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>\n<li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>\n<li>buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed\nby the specified number of milliseconds. If the event fires again within that time, the original\nhandler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>\n</ul><br>\n<p>\n<b>Combining Options</b><br>\nUsing the options argument, it is possible to combine different types of listeners:<br>\n<br>\nA normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)\n\t\t<pre><code>\n\t\tel.on('click', this.onClick, this, {\n \t\t\tsingle: true,\n \t\tdelay: 100,\n \t\tforumId: 4\n\t\t});\n\t\t</code></pre>\n<p>\n<b>Attaching multiple handlers in 1 call</b><br>\nThe method also allows for a single argument to be passed which is a config object containing properties\nwhich specify multiple handlers.\n<pre><code>\n\t\tel.on({\n\t\t\t'click': {\n \t\tfn: this.onClick,\n \t\tscope: this,\n \t\tdelay: 100\n \t\t}, \n \t\t'mouseover': {\n \t\tfn: this.onMouseOver,\n \t\tscope: this\n \t\t},\n \t\t'mouseout': {\n \t\tfn: this.onMouseOut,\n \t\tscope: this\n \t\t}\n\t\t});\n\t\t</code></pre>\n<p>\nOr a shorthand syntax which passes the same scope object to all handlers:\n \t<pre><code>\n\t\tel.on({\n\t\t\t'click': this.onClick,\n \t\t'mouseover': this.onMouseOver,\n \t\t'mouseout': this.onMouseOut,\n \t\tscope: this\n\t\t});\n\t\t</code></pre>",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "capture",
+ "type" : "function",
+ "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
+ "sig" : "(o, fn, scope)",
+ "static" : true,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : true,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "o",
+ "type" : "Observable",
+ "desc" : "The Observable to capture",
+ "isOptional" : false
+ },
+ {
+ "name" : "fn",
+ "type" : "Function",
+ "desc" : "The function to call",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope (this object) for the fn",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "fireEvent",
+ "type" : "function",
+ "desc" : "Fires the specified event with the passed parameters (minus the event name).",
+ "sig" : "(eventName, args)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "",
+ "isOptional" : false
+ },
+ {
+ "name" : "args",
+ "type" : "Object...",
+ "desc" : "Variable number of parameters are passed to handlers",
+ "isOptional" : false
+ }
+ ],
+ "returns" : [
+ {
+ "name" : "",
+ "type" : "Boolean",
+ "desc" : "returns false if any of the handlers return false otherwise it returns true"
+ }
+ ]
+ },
+ {
+ "name" : "hasListener",
+ "type" : "function",
+ "desc" : "Checks to see if this object has any listeners for a specified event",
+ "sig" : "(eventName)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The name of the event to check for",
+ "isOptional" : false
+ }
+ ],
+ "returns" : [
+ {
+ "name" : "",
+ "type" : "Boolean",
+ "desc" : "True if the event is being listened for, else false"
+ }
+ ]
+ },
{
"name" : "load",
"type" : "function",
}
],
"returns" : []
+ },
+ {
+ "name" : "on",
+ "type" : "function",
+ "desc" : "Appends an event handler to this element (shorthand for addListener)",
+ "sig" : "(eventName, handler, scope, options)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The method the event invokes",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
+ "isOptional" : false
+ },
+ {
+ "name" : "options",
+ "type" : "Object",
+ "desc" : "(optional)",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "purgeListeners",
+ "type" : "function",
+ "desc" : "Removes all listeners for this object",
+ "sig" : "()\n{\n\n}",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [],
+ "returns" : []
+ },
+ {
+ "name" : "releaseCapture",
+ "type" : "function",
+ "desc" : "Removes <b>all</b> added captures from the Observable.",
+ "sig" : "(o)",
+ "static" : true,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : true,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "o",
+ "type" : "Observable",
+ "desc" : "The Observable to release",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "removeListener",
+ "type" : "function",
+ "desc" : "Removes a listener",
+ "sig" : "(eventName, handler, scope)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The handler to remove",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope (this object) for the handler",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "un",
+ "type" : "function",
+ "desc" : "Removes a listener (shorthand for removeListener)",
+ "sig" : "(eventName, handler, scope)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The handler to remove",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope (this object) for the handler",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
}
],
"isAbstract" : false,
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "Roo.form.Layout",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "labelSeparator",
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "Roo.form.Layout",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "labelSeparator",
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "labelSeparator",
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "Roo.form.Layout",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "labelSeparator",
"Roo.data.DataProxy",
"Roo.data.HttpProxy",
"Roo.data.JsonStore",
+ "Roo.data.MemoryProxy",
"Roo.data.Node",
"Roo.data.SimpleStore",
"Roo.data.Store",
*/
/**
* @class Roo.data.MemoryProxy
+ * @extends Roo.data.DataProxy
* An implementation of Roo.data.DataProxy that simply passes the data specified in its constructor
* to the Reader when its load method is called.
* @constructor
- * @param {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ * @param {Object} config A config object containing the objects needed for the Store to access data,
*/
-</span><span class="jsdoc-var">Roo.data.MemoryProxy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data.data</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">data.data</span><span class="jsdoc-syntax">;
+</span><span class="jsdoc-var">Roo.data.MemoryProxy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.data</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config.data</span><span class="jsdoc-syntax">;
}
</span><span class="jsdoc-var">Roo.data.MemoryProxy.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-var">this.data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.data.MemoryProxy</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.data.DataProxy</span><span class="jsdoc-syntax">, {
</span><span class="jsdoc-comment">/**
+ * @cfg {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ */
+ /**
* Load data from the requested source (in this case an in-memory
* data object passed to the constructor), read the data object into
* a block of Roo.data.Records using the passed Roo.data.DataReader implementation, and
--- /dev/null
+<html><head><title>Roo/form/Column.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<span class="jsdoc-comment">/**
+ * @class Roo.form.Column
+ * @extends Roo.form.Layout
+ * @children Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
+ * Creates a column container for layout and rendering of fields in an {@link Roo.form.Form}.
+ * @constructor
+ * @param {Object} config Configuration options
+ */
+</span><span class="jsdoc-var">Roo.form.Column </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">Roo.form.Column.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
+};
+
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Column</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Layout</span><span class="jsdoc-syntax">, {
+ </span><span class="jsdoc-comment">/**
+ * @cfg {Number/String} width
+ * The fixed width of the column in pixels or CSS value (defaults to "auto")
+ */
+ /**
+ * @cfg {String/Object} autoCreate
+ * A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'})
+ */
+
+ // private
+ </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-ct x-form-column'</span><span class="jsdoc-syntax">},
+
+ </span><span class="jsdoc-comment">// private
+ </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">Roo.form.Column.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">this.el.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">);
+ }
+ }
+});
+</span></code></body></html>
\ No newline at end of file
--- /dev/null
+<html><head><title>Roo/form/FieldSet.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<span class="jsdoc-comment">/**
+ * @class Roo.form.FieldSet
+ * @extends Roo.form.Layout
+ * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem
+ * Creates a fieldset container for layout and rendering of fields in an {@link Roo.form.Form}.
+ * @constructor
+ * @param {Object} config Configuration options
+ */
+</span><span class="jsdoc-var">Roo.form.FieldSet </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">Roo.form.FieldSet.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
+};
+
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.FieldSet</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Layout</span><span class="jsdoc-syntax">, {
+ </span><span class="jsdoc-comment">/**
+ * @cfg {String} legend
+ * The text to display as the legend for the FieldSet (defaults to '')
+ */
+ /**
+ * @cfg {String/Object} autoCreate
+ * A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}})
+ */
+
+ // private
+ </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'fieldset'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'legend'</span><span class="jsdoc-syntax">}},
+
+ </span><span class="jsdoc-comment">// private
+ </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">Roo.form.FieldSet.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.legend</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">this.setLegend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.legend</span><span class="jsdoc-syntax">);
+ }
+ },
+
+ </span><span class="jsdoc-comment">// private
+ </span><span class="jsdoc-var">setLegend </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'legend'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
+ }
+ }
+});</span></code></body></html>
\ No newline at end of file
* a function which returns such a specification.
*/
/**
- * @cfg {String} labelAlign
+ * @cfg {String} labelAlign (left|top|right)
* Valid values are "left," "top" and "right" (defaults to "left")
*/
/**
}
});
-</span><span class="jsdoc-comment">/**
- * @class Roo.form.Column
- * @extends Roo.form.Layout
- * @children Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
- * Creates a column container for layout and rendering of fields in an {@link Roo.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-</span><span class="jsdoc-var">Roo.form.Column </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">Roo.form.Column.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
-};
-
-</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Column</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Layout</span><span class="jsdoc-syntax">, {
- </span><span class="jsdoc-comment">/**
- * @cfg {Number/String} width
- * The fixed width of the column in pixels or CSS value (defaults to "auto")
- */
- /**
- * @cfg {String/Object} autoCreate
- * A DomHelper element spec used to autocreate the column (defaults to {tag: 'div', cls: 'x-form-ct x-form-column'})
- */
-
- // private
- </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-ct x-form-column'</span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-comment">// private
- </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">Roo.form.Column.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">this.el.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">);
- }
- }
-});
-
-
-</span><span class="jsdoc-comment">/**
- * @class Roo.form.Row
- * @extends Roo.form.Layout
- * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
- * Creates a row container for layout and rendering of fields in an {@link Roo.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-
-
-</span><span class="jsdoc-var">Roo.form.Row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">Roo.form.Row.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
-};
-
-</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Layout</span><span class="jsdoc-syntax">, {
- </span><span class="jsdoc-comment">/**
- * @cfg {Number/String} width
- * The fixed width of the column in pixels or CSS value (defaults to "auto")
- */
- /**
- * @cfg {Number/String} height
- * The fixed height of the column in pixels or CSS value (defaults to "auto")
- */
- </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-ct x-form-row'</span><span class="jsdoc-syntax">},
-
- </span><span class="jsdoc-var">padWidth </span><span class="jsdoc-syntax">: 20,
- </span><span class="jsdoc-comment">// private
- </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-comment">//console.log('row render');
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.rowTpl</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
- </span><span class="jsdoc-string">'<div class="x-form-item {5}" style="float:left;width:{6}px">'</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'<label for="{0}" style="{2}">{1}{4}</label>'</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'<div class="x-form-element" id="x-form-el-{0}" style="{3}">'</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'</div>'</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-string">'</div>'
- </span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">t.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">t.compile</span><span class="jsdoc-syntax">();
- </span><span class="jsdoc-var">Roo.form.Layout.prototype.rowTpl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
- }
- </span><span class="jsdoc-var">this.fieldTpl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rowTpl</span><span class="jsdoc-syntax">;
-
- </span><span class="jsdoc-comment">//console.log('lw' + this.labelWidth +', la:' + this.labelAlign);
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">labelWidth </span><span class="jsdoc-syntax">= 100;
-
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">this.labelAlign </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">)) {
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.labelWidth </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number'</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">labelWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.labelWidth
- </span><span class="jsdoc-syntax">}
- </span><span class="jsdoc-var">this.padWidth </span><span class="jsdoc-syntax">= 20 + </span><span class="jsdoc-var">labelWidth</span><span class="jsdoc-syntax">;
-
- }
-
- </span><span class="jsdoc-var">Roo.form.Column.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">this.el.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">);
- }
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">this.el.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">);
- }
- },
-
- </span><span class="jsdoc-comment">// private
- </span><span class="jsdoc-var">renderField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">f.fieldEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.fieldTpl.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">, [
- </span><span class="jsdoc-var">f.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">f.fieldLabel</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">f.labelStyle</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.labelStyle</span><span class="jsdoc-syntax">||</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">this.elementStyle</span><span class="jsdoc-syntax">||</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">f.labelSeparator </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.labelSeparator </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">f.labelSeparator</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">f.itemCls</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.itemCls</span><span class="jsdoc-syntax">||</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
- </span><span class="jsdoc-var">f.width </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">f.width </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.padWidth </span><span class="jsdoc-syntax">: 160 + </span><span class="jsdoc-var">this.padWidth
- </span><span class="jsdoc-syntax">],</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
- }
-});
-
-
-</span><span class="jsdoc-comment">/**
- * @class Roo.form.FieldSet
- * @extends Roo.form.Layout
- * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem
- * Creates a fieldset container for layout and rendering of fields in an {@link Roo.form.Form}.
- * @constructor
- * @param {Object} config Configuration options
- */
-</span><span class="jsdoc-var">Roo.form.FieldSet </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">Roo.form.FieldSet.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
-};
-
-</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.FieldSet</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Layout</span><span class="jsdoc-syntax">, {
- </span><span class="jsdoc-comment">/**
- * @cfg {String} legend
- * The text to display as the legend for the FieldSet (defaults to '')
- */
- /**
- * @cfg {String/Object} autoCreate
- * A DomHelper element spec used to autocreate the fieldset (defaults to {tag: 'fieldset', cn: {tag:'legend'}})
- */
-
- // private
- </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'fieldset'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">:</span><span class="jsdoc-string">'legend'</span><span class="jsdoc-syntax">}},
-
- </span><span class="jsdoc-comment">// private
- </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">Roo.form.FieldSet.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.legend</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">this.setLegend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.legend</span><span class="jsdoc-syntax">);
- }
- },
-
- </span><span class="jsdoc-comment">// private
- </span><span class="jsdoc-var">setLegend </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.rendered</span><span class="jsdoc-syntax">){
- </span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'legend'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">);
- }
- }
-});</span></code></body></html>
\ No newline at end of file
+</span></code></body></html>
\ No newline at end of file
--- /dev/null
+<html><head><title>Roo/form/Row.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty">
+<span class="jsdoc-comment">/**
+ * @class Roo.form.Row
+ * @extends Roo.form.Layout
+ * @children Roo.form.Column Roo.form.Row Roo.form.Field Roo.Button Roo.form.TextItem Roo.form.FieldSet
+ * Creates a row container for layout and rendering of fields in an {@link Roo.form.Form}.
+ * @constructor
+ * @param {Object} config Configuration options
+ */
+
+
+</span><span class="jsdoc-var">Roo.form.Row </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">Roo.form.Row.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
+};
+
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.form.Row</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.form.Layout</span><span class="jsdoc-syntax">, {
+ </span><span class="jsdoc-comment">/**
+ * @cfg {Number/String} width
+ * The fixed width of the column in pixels or CSS value (defaults to "auto")
+ */
+ /**
+ * @cfg {Number/String} height
+ * The fixed height of the column in pixels or CSS value (defaults to "auto")
+ */
+ </span><span class="jsdoc-var">defaultAutoCreate </span><span class="jsdoc-syntax">: {</span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'x-form-ct x-form-row'</span><span class="jsdoc-syntax">},
+
+ </span><span class="jsdoc-var">padWidth </span><span class="jsdoc-syntax">: 20,
+ </span><span class="jsdoc-comment">// private
+ </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-comment">//console.log('row render');
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.rowTpl</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">(
+ </span><span class="jsdoc-string">'<div class="x-form-item {5}" style="float:left;width:{6}px">'</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'<label for="{0}" style="{2}">{1}{4}</label>'</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'<div class="x-form-element" id="x-form-el-{0}" style="{3}">'</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'</div>'</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-string">'</div>'
+ </span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-var">t.disableFormats </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-var">t.compile</span><span class="jsdoc-syntax">();
+ </span><span class="jsdoc-var">Roo.form.Layout.prototype.rowTpl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">;
+ }
+ </span><span class="jsdoc-var">this.fieldTpl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.rowTpl</span><span class="jsdoc-syntax">;
+
+ </span><span class="jsdoc-comment">//console.log('lw' + this.labelWidth +', la:' + this.labelAlign);
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">labelWidth </span><span class="jsdoc-syntax">= 100;
+
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">((</span><span class="jsdoc-var">this.labelAlign </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">)) {
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.labelWidth </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'number'</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-var">labelWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.labelWidth
+ </span><span class="jsdoc-syntax">}
+ </span><span class="jsdoc-var">this.padWidth </span><span class="jsdoc-syntax">= 20 + </span><span class="jsdoc-var">labelWidth</span><span class="jsdoc-syntax">;
+
+ }
+
+ </span><span class="jsdoc-var">Roo.form.Column.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">this.el.setWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.width</span><span class="jsdoc-syntax">);
+ }
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">this.el.setHeight</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.height</span><span class="jsdoc-syntax">);
+ }
+ },
+
+ </span><span class="jsdoc-comment">// private
+ </span><span class="jsdoc-var">renderField </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">f</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-var">f.fieldEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.fieldTpl.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">, [
+ </span><span class="jsdoc-var">f.id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">f.fieldLabel</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">f.labelStyle</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.labelStyle</span><span class="jsdoc-syntax">||</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">this.elementStyle</span><span class="jsdoc-syntax">||</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">f.labelSeparator </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'undefined' </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">this.labelSeparator </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">f.labelSeparator</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">f.itemCls</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this.itemCls</span><span class="jsdoc-syntax">||</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">f.width </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">f.width </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.padWidth </span><span class="jsdoc-syntax">: 160 + </span><span class="jsdoc-var">this.padWidth
+ </span><span class="jsdoc-syntax">],</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
+ }
+});
+
+</span></code></body></html>
\ No newline at end of file
</span><span class="jsdoc-comment">// no need to apply config.
</span><span class="jsdoc-var">this.replaceDocBullets</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.node</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">this.walk</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.node</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-comment">// this.walk(cfg.node);
-}
+</span><span class="jsdoc-syntax">}
</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.htmleditor.FilterWord</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.htmleditor.Filter</span><span class="jsdoc-syntax">,
{
</span><span class="jsdoc-var">styleToObject</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
{
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">styles </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"style"</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">";"</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">styles </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">node.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"style"</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">";"</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ret </span><span class="jsdoc-syntax">= {};
</span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">styles</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">s</span><span class="jsdoc-syntax">) {
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">s.match</span><span class="jsdoc-syntax">(/:/)) {
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">kv </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">s.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">":"</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-comment">// what ever is left... we allow.
- </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">kv</span><span class="jsdoc-syntax">[0]] = </span><span class="jsdoc-var">kv</span><span class="jsdoc-syntax">[1];
+ </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">kv</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.trim</span><span class="jsdoc-syntax">()] = </span><span class="jsdoc-var">kv</span><span class="jsdoc-syntax">[1];
});
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">ret</span><span class="jsdoc-syntax">;
},
</span><span class="jsdoc-var">replaceDocBullets </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doc</span><span class="jsdoc-syntax">)
{
+ </span><span class="jsdoc-comment">// this is a bit odd - but it appears some indents use ql-indent-1
+
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">listpara </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">doc.getElementsByClassName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'ql-indent-1'</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">listpara.length</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-var">this.replaceDocBullet</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">listpara.item</span><span class="jsdoc-syntax">(0));
+ }
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">listpara </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">doc.getElementsByClassName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'MsoListParagraph'</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">listpara.length</span><span class="jsdoc-syntax">) {
</span><span class="jsdoc-var">this.replaceDocBullet</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">listpara.item</span><span class="jsdoc-syntax">(0));
- </span><span class="jsdoc-comment">//code
- </span><span class="jsdoc-syntax">}
+ }
},
</span><span class="jsdoc-var">replaceDocBullet </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">)
</span><span class="jsdoc-var">parent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">p.parentNode</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-var">doc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parent.ownerDocument</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-var">items </span><span class="jsdoc-syntax">= [];
+
+
</span><span class="jsdoc-keyword">while </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ns</span><span class="jsdoc-syntax">) {
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ns.nodeType </span><span class="jsdoc-syntax">!= 1) {
</span><span class="jsdoc-var">ns </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ns.nextSibling</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
}
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ns.className.match</span><span class="jsdoc-syntax">(/MsoListParagraph/i)) {
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">ns.className.match</span><span class="jsdoc-syntax">(/(MsoListParagraph|ql-indent-1)/i)) {
</span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
}
</span><span class="jsdoc-var">items.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ns</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-var">ns </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ns.nextSibling</span><span class="jsdoc-syntax">;
-
}
+
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ul </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parent.ownerDocument.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'ul'</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// what about number lists...
</span><span class="jsdoc-var">parent.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ul</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">p</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lvl </span><span class="jsdoc-syntax">= 0;
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">stack </span><span class="jsdoc-syntax">= [ </span><span class="jsdoc-var">ul </span><span class="jsdoc-syntax">];
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">last_li </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">items.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">parent.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
+
+ </span><span class="jsdoc-var">items.forEach</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ipos</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-comment">//Roo.log("got innertHMLT=" + n.innerHTML);
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">spans </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.getElementsByTagName</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">spans.length </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">n.isEqualNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">spans.item</span><span class="jsdoc-syntax">(0)</span><span class="jsdoc-var">.parentNode</span><span class="jsdoc-syntax">)) {
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">spans.length</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-comment">//Roo.log("No spans found");
+
+ </span><span class="jsdoc-var">parent.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// skip it...
</span><span class="jsdoc-syntax">}
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.styleToObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
+
+
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">= {};
+ </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">spans.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
+
+ </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.styleToObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">spans</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'mso-list'</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
+ }
+
+ </span><span class="jsdoc-var">spans</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">spans</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]); </span><span class="jsdoc-comment">// remove the fake bullet.
+ </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+ }
+ </span><span class="jsdoc-comment">//Roo.log("NOW GOT innertHMLT=" + n.innerHTML);
+ </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.styleToObject</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// mo-list is from the parent node.
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'mso-list'</span><span class="jsdoc-syntax">]) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// skip it.
- </span><span class="jsdoc-syntax">}
- </span><span class="jsdoc-var">n.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">spans.item</span><span class="jsdoc-syntax">(0)); </span><span class="jsdoc-comment">// remove the fake bullet.
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nlvl </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'mso-list'</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">)[1]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/level/,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) *1) - 1;
+ </span><span class="jsdoc-comment">//Roo.log("parent is missing level");
+ </span><span class="jsdoc-var">parent.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+ }
+
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nlvl </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-var">style</span><span class="jsdoc-syntax">[</span><span class="jsdoc-string">'mso-list'</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">)[1]</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/level/,</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) *1) - 1 ;
+
+
+
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nlvl </span><span class="jsdoc-syntax">> </span><span class="jsdoc-var">lvl</span><span class="jsdoc-syntax">) {
</span><span class="jsdoc-comment">//new indent
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nul </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">doc.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'ul'</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// what about number lists...
</span><span class="jsdoc-var">last_li.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">nul</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-var">stack</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">nlvl</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">nul</span><span class="jsdoc-syntax">;
+
}
</span><span class="jsdoc-var">lvl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">nlvl</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">nli </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">stack</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">nlvl</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">doc.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'li'</span><span class="jsdoc-syntax">));
</span><span class="jsdoc-var">last_li </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">nli</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-var">nli.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.innerHTML</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-comment">//Roo.log("innerHTML = " + n.innerHTML);
+ </span><span class="jsdoc-var">parent.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
+
</span><span class="jsdoc-comment">// copy children of p into nli
- </span><span class="jsdoc-keyword">while</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n.firstChild</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fc </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">n.firstChild</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-var">n.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fc</span><span class="jsdoc-syntax">);
- </span><span class="jsdoc-var">nli.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fc</span><span class="jsdoc-syntax">);
- }
+ /*while(n.firstChild) {
+ var fc = n.firstChild;
+ n.removeChild(fc);
+ nli.appendChild(fc);
+ }*/
- },</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-syntax">},</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
* @param {String} text String to write out.
* @param {Boolean} raw Optional raw state if true the contents wont get encoded.
*/
- </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
+ </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">in_text</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">)
{
</span><span class="jsdoc-comment">// if not in whitespace critical
- </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">text.length </span><span class="jsdoc-syntax">< 1) {
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">in_text.length </span><span class="jsdoc-syntax">< 1) {
</span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
}
+ </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">text </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">XMLSerializer</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.serializeToString</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.createTextNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">in_text</span><span class="jsdoc-syntax">)); </span><span class="jsdoc-comment">// escape it properly?
+
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.in_pre</span><span class="jsdoc-syntax">) {
</span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">this.html.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">text</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-var">this.hexStore.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cmd</span><span class="jsdoc-syntax">);
},
</span><span class="jsdoc-var">cmderror </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cmd</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-keyword">throw new </span><span class="jsdoc-var">Exception </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cmd.value</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">throw </span><span class="jsdoc-var">cmd.value</span><span class="jsdoc-syntax">;
},
</span><span class="jsdoc-comment">/*
{
</span><span class="jsdoc-var">this.emitText</span><span class="jsdoc-syntax">();
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.controlWord </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) {
- </span><span class="jsdoc-var">this.emitError</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'empty control word'</span><span class="jsdoc-syntax">);
- } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+ </span><span class="jsdoc-comment">// do we want to track this - it seems just to cause problems.
+ //this.emitError('empty control word');
+ </span><span class="jsdoc-syntax">} </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
</span><span class="jsdoc-var">this.push</span><span class="jsdoc-syntax">({
</span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'controlword'</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.controlWord</span><span class="jsdoc-syntax">,
],
"childClasses" : {
"Roo.data.DataProxy" : [
- "Roo.data.HttpProxy"
+ "Roo.data.HttpProxy",
+ "Roo.data.MemoryProxy"
]
},
"tree_children" : [],
{
"name" : "Roo.data.MemoryProxy",
- "augments" : [],
+ "augments" : [
+ "Roo.data.DataProxy",
+ "Roo.util.Observable"
+ ],
"childClasses" : { },
"tree_children" : [],
"tree_parent" : [],
"see" : "",
"params" : [
{
- "name" : "data",
+ "name" : "config",
"type" : "Object",
- "desc" : "The data object which the Reader uses to construct a block of Roo.data.Records.",
+ "desc" : "A config object containing the objects needed for the Store to access data,",
"isOptional" : false
}
],
"returns" : [],
"throws" : "",
"requires" : "",
- "config" : [],
+ "config" : [
+ {
+ "name" : "listeners",
+ "type" : "Object",
+ "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n listeners : { \n 'click' : function(e) {\n ..... \n } ,\n .... \n } \n </code></pre>",
+ "memberOf" : "Roo.util.Observable",
+ "isOptional" : false,
+ "optvals" : []
+ },
+ {
+ "name" : "data",
+ "type" : "Object",
+ "desc" : "The data object which the Reader uses to construct a block of Roo.data.Records.",
+ "memberOf" : "",
+ "isOptional" : false,
+ "optvals" : []
+ }
+ ],
"methods" : [
{
"name" : "load",
}
],
"returns" : []
+ },
+ {
+ "name" : "purgeListeners",
+ "type" : "function",
+ "desc" : "Removes all listeners for this object",
+ "sig" : "()\n{\n\n}",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [],
+ "returns" : []
+ },
+ {
+ "name" : "on",
+ "type" : "function",
+ "desc" : "Appends an event handler to this element (shorthand for addListener)",
+ "sig" : "(eventName, handler, scope, options)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The method the event invokes",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
+ "isOptional" : false
+ },
+ {
+ "name" : "options",
+ "type" : "Object",
+ "desc" : "(optional)",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "un",
+ "type" : "function",
+ "desc" : "Removes a listener (shorthand for removeListener)",
+ "sig" : "(eventName, handler, scope)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The handler to remove",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope (this object) for the handler",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "addEvents",
+ "type" : "function",
+ "desc" : "Used to define events on this Observable",
+ "sig" : "(object)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "object",
+ "type" : "Object",
+ "desc" : "The object with the events defined",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "releaseCapture",
+ "type" : "function",
+ "desc" : "Removes <b>all</b> added captures from the Observable.",
+ "sig" : "(o)",
+ "static" : true,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : true,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "o",
+ "type" : "Observable",
+ "desc" : "The Observable to release",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "removeListener",
+ "type" : "function",
+ "desc" : "Removes a listener",
+ "sig" : "(eventName, handler, scope)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The handler to remove",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope (this object) for the handler",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "fireEvent",
+ "type" : "function",
+ "desc" : "Fires the specified event with the passed parameters (minus the event name).",
+ "sig" : "(eventName, args)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "",
+ "isOptional" : false
+ },
+ {
+ "name" : "args",
+ "type" : "Object...",
+ "desc" : "Variable number of parameters are passed to handlers",
+ "isOptional" : false
+ }
+ ],
+ "returns" : [
+ {
+ "name" : "",
+ "type" : "Boolean",
+ "desc" : "returns false if any of the handlers return false otherwise it returns true"
+ }
+ ]
+ },
+ {
+ "name" : "hasListener",
+ "type" : "function",
+ "desc" : "Checks to see if this object has any listeners for a specified event",
+ "sig" : "(eventName)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The name of the event to check for",
+ "isOptional" : false
+ }
+ ],
+ "returns" : [
+ {
+ "name" : "",
+ "type" : "Boolean",
+ "desc" : "True if the event is being listened for, else false"
+ }
+ ]
+ },
+ {
+ "name" : "capture",
+ "type" : "function",
+ "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
+ "sig" : "(o, fn, scope)",
+ "static" : true,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : true,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "o",
+ "type" : "Observable",
+ "desc" : "The Observable to capture",
+ "isOptional" : false
+ },
+ {
+ "name" : "fn",
+ "type" : "Function",
+ "desc" : "The function to call",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope (this object) for the fn",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "addListener",
+ "type" : "function",
+ "desc" : "Appends an event handler to this component",
+ "sig" : "(eventName, handler, scope, options)",
+ "static" : false,
+ "memberOf" : "Roo.util.Observable",
+ "isStatic" : false,
+ "isConstructor" : false,
+ "isPrivate" : false,
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "exceptions" : "",
+ "requires" : "",
+ "params" : [
+ {
+ "name" : "eventName",
+ "type" : "String",
+ "desc" : "The type of event to listen for",
+ "isOptional" : false
+ },
+ {
+ "name" : "handler",
+ "type" : "Function",
+ "desc" : "The method the event invokes",
+ "isOptional" : false
+ },
+ {
+ "name" : "scope",
+ "type" : "Object",
+ "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
+ "isOptional" : false
+ },
+ {
+ "name" : "options",
+ "type" : "Object",
+ "desc" : "(optional) An object containing handler configuration\nproperties. This may contain any of the following properties:<ul>\n<li>scope {Object} The scope in which to execute the handler function. The handler function's \"this\" context.</li>\n<li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>\n<li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>\n<li>buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed\nby the specified number of milliseconds. If the event fires again within that time, the original\nhandler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>\n</ul><br>\n<p>\n<b>Combining Options</b><br>\nUsing the options argument, it is possible to combine different types of listeners:<br>\n<br>\nA normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)\n\t\t<pre><code>\n\t\tel.on('click', this.onClick, this, {\n \t\t\tsingle: true,\n \t\tdelay: 100,\n \t\tforumId: 4\n\t\t});\n\t\t</code></pre>\n<p>\n<b>Attaching multiple handlers in 1 call</b><br>\nThe method also allows for a single argument to be passed which is a config object containing properties\nwhich specify multiple handlers.\n<pre><code>\n\t\tel.on({\n\t\t\t'click': {\n \t\tfn: this.onClick,\n \t\tscope: this,\n \t\tdelay: 100\n \t\t}, \n \t\t'mouseover': {\n \t\tfn: this.onMouseOver,\n \t\tscope: this\n \t\t},\n \t\t'mouseout': {\n \t\tfn: this.onMouseOut,\n \t\tscope: this\n \t\t}\n\t\t});\n\t\t</code></pre>\n<p>\nOr a shorthand syntax which passes the same scope object to all handlers:\n \t<pre><code>\n\t\tel.on({\n\t\t\t'click': this.onClick,\n \t\t'mouseover': this.onMouseOver,\n \t\t'mouseout': this.onMouseOut,\n \t\tscope: this\n\t\t});\n\t\t</code></pre>",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
}
],
- "events" : []
+ "events" : [
+ {
+ "name" : "load",
+ "type" : "function",
+ "desc" : "Fires before the load method's callback is called.",
+ "sig" : "function (This, o, arg)\n{\n\n}",
+ "memberOf" : "Roo.data.DataProxy",
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "params" : [
+ {
+ "name" : "This",
+ "type" : "Object",
+ "desc" : "DataProxy object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "o",
+ "type" : "Object",
+ "desc" : "The data object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "arg",
+ "type" : "Object",
+ "desc" : "The callback argument object passed to the load function.",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "beforeload",
+ "type" : "function",
+ "desc" : "Fires before a network request is made to retrieve a data object.",
+ "sig" : "function (This, params)\n{\n\n}",
+ "memberOf" : "Roo.data.DataProxy",
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "params" : [
+ {
+ "name" : "This",
+ "type" : "Object",
+ "desc" : "DataProxy object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "params",
+ "type" : "Object",
+ "desc" : "The params parameter to the load function.",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ },
+ {
+ "name" : "loadexception",
+ "type" : "function",
+ "desc" : "Fires if an Exception occurs during data retrieval.",
+ "sig" : "function (This, o, arg, e)\n{\n\n}",
+ "memberOf" : "Roo.data.DataProxy",
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "params" : [
+ {
+ "name" : "This",
+ "type" : "Object",
+ "desc" : "DataProxy object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "o",
+ "type" : "Object",
+ "desc" : "The data object.",
+ "isOptional" : false
+ },
+ {
+ "name" : "arg",
+ "type" : "Object",
+ "desc" : "The callback argument object passed to the load function.",
+ "isOptional" : false
+ },
+ {
+ "name" : "e",
+ "type" : "Object",
+ "desc" : "The Exception.",
+ "isOptional" : false
+ }
+ ],
+ "returns" : []
+ }
+ ]
}
\ No newline at end of file
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "Roo.form.Layout",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "listeners",
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "Roo.form.Layout",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "listeners",
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "listeners",
{
"name" : "labelAlign",
"type" : "String",
- "desc" : "Valid values are \"left,\" \"top\" and \"right\" (defaults to \"left\")",
+ "desc" : "t)\nValid values are \"left,\" \"top\" and \"right\" (defaults to \"left",
"memberOf" : "Roo.form.Layout",
"isOptional" : false,
- "optvals" : []
+ "optvals" : [
+ "left",
+ "top",
+ "right"
+ ]
},
{
"name" : "listeners",
--- /dev/null
+{
+ "name" : "Roo.htmleditor.FilterFileWarning",
+ "augments" : [],
+ "childClasses" : { },
+ "tree_children" : [],
+ "tree_parent" : [],
+ "desc" : "clean attributes and styles including http:// etc.. in attribute",
+ "isSingleton" : false,
+ "isStatic" : false,
+ "isBuiltin" : false,
+ "isAbstract" : false,
+ "isBuilderTop" : false,
+ "memberOf" : "FilterFileWarning",
+ "example" : "",
+ "deprecated" : "",
+ "since" : "",
+ "see" : "",
+ "params" : [
+ {
+ "name" : "config",
+ "type" : "Object",
+ "desc" : "Configuration options",
+ "isOptional" : false
+ }
+ ],
+ "returns" : [],
+ "throws" : "",
+ "requires" : "",
+ "config" : [],
+ "methods" : [],
+ "events" : []
+}
\ No newline at end of file
"Roo.JsonView"
],
"Roo.data.DataProxy" : [
- "Roo.data.HttpProxy"
+ "Roo.data.HttpProxy",
+ "Roo.data.MemoryProxy"
],
"Roo.menu.Menu" : [
"Roo.menu.ColorMenu",
--- /dev/null
+{
+ "name" : "ArrayGrid",
+ "parent" : "#grid-panel",
+ "title" : "",
+ "path" : "/home/alan/gitlive/roojs1/examples/grid/ArrayGrid.bjs",
+ "permname" : "",
+ "modOrder" : "001",
+ "strings" : {
+ "1c76cbfe21c6f44c1d1e59d54f3e4420" : "Company",
+ "30870648ed968ed5a3e00631e4ad0699" : "% Change",
+ "3601146c4e948c32b6424d2c0a7f0118" : "Price",
+ "f4ec5f57bd4d31b803312d873be40da9" : "Change",
+ "4221d3e17c6eca2ca6337251a3cf9c4e" : "Last Updated"
+ },
+ "items" : [
+ {
+ "xtype" : "GridPanel",
+ "$ xns" : "Roo",
+ "items" : [
+ {
+ "listeners" : {
+ "render" : "function (grid)\n{\n _this.grid = this;\n}"
+ },
+ "xtype" : "Grid",
+ "$ xns" : "Roo.grid",
+ "String autoExpandColumn" : "company",
+ "* prop" : "grid",
+ "items" : [
+ {
+ "xtype" : "Store",
+ "$ xns" : "Roo.data",
+ "* prop" : "ds",
+ "items" : [
+ {
+ "xtype" : "MemoryProxy",
+ "$ data" : "[]",
+ "$ xns" : "Roo.data",
+ "* prop" : "proxy"
+ },
+ {
+ "$ Array fields" : "[\n {name: 'company'},\n {name: 'price', type: 'float'}, \n {name: 'change', type: 'float'},\n {name: 'pctChange', type: 'float'},\n {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}\n]",
+ "xtype" : "ArrayReader",
+ "$ xns" : "Roo.data",
+ "* prop" : "reader"
+ }
+ ]
+ },
+ {
+ "String header" : "Company",
+ "String dataIndex" : "company",
+ "Number width" : 160,
+ "xtype" : "ColumnModel",
+ "$ xns" : "Roo.grid",
+ "Boolean sortable" : true,
+ "* prop" : "cm[]",
+ "Boolean locked" : false
+ },
+ {
+ "String header" : "Price",
+ "String dataIndex" : "price",
+ "Number width" : 75,
+ "$ Function renderer" : " Roo.util.Format.usMoney",
+ "xtype" : "ColumnModel",
+ "$ xns" : "Roo.grid",
+ "Boolean sortable" : true,
+ "* prop" : "cm[]",
+ "Boolean locked" : false
+ },
+ {
+ "String header" : "Change",
+ "String dataIndex" : "change",
+ "Number width" : 75,
+ "$ Function renderer" : "function (val){\n if(val > 0){\n return '<span style=\"color:green;\">' + val + '</span>';\n }else if(val < 0){\n return '<span style=\"color:red;\">' + val + '</span>';\n }\n return val;\n}",
+ "xtype" : "ColumnModel",
+ "$ xns" : "Roo.grid",
+ "Boolean sortable" : true,
+ "* prop" : "cm[]",
+ "Boolean locked" : false
+ },
+ {
+ "String header" : "% Change",
+ "String dataIndex" : "pctChange",
+ "Number width" : 75,
+ "$ Function renderer" : "function (val){\n if(val > 0){\n return '<span style=\"color:green;\">' + val + '%</span>';\n }else if(val < 0){\n return '<span style=\"color:red;\">' + val + '%</span>';\n }\n return val;\n}",
+ "xtype" : "ColumnModel",
+ "$ xns" : "Roo.grid",
+ "Boolean sortable" : true,
+ "* prop" : "cm[]",
+ "Boolean locked" : false
+ },
+ {
+ "String header" : "Last Updated",
+ "String dataIndex" : "lastChange",
+ "Number width" : 85,
+ "$ Function renderer" : "Roo.util.Format.dateRenderer('m/d/Y')",
+ "xtype" : "ColumnModel",
+ "$ xns" : "Roo.grid",
+ "Boolean sortable" : true,
+ "* prop" : "cm[]",
+ "Boolean locked" : false
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
--- /dev/null
+//<script type="text/javascript">
+
+// Auto generated file - created by app.Builder.js- do not edit directly (at present!)
+
+ArrayGrid = new Roo.XComponent({
+
+ _strings : {
+ '1c76cbfe21c6f44c1d1e59d54f3e4420' :"Company",
+ '30870648ed968ed5a3e00631e4ad0699' :"% Change",
+ '3601146c4e948c32b6424d2c0a7f0118' :"Price",
+ 'f4ec5f57bd4d31b803312d873be40da9' :"Change",
+ '4221d3e17c6eca2ca6337251a3cf9c4e' :"Last Updated"
+ },
+
+ part : ["grid", "ArrayGrid" ],
+ order : '001-ArrayGrid',
+ region : 'center',
+ parent : '#grid-panel',
+ name : "unnamed module",
+ disabled : false,
+ permname : '',
+ _tree : function(_data)
+ {
+ var _this = this;
+ var MODULE = this;
+ return {
+ xtype : 'GridPanel',
+ xns : Roo,
+ '|xns' : 'Roo',
+ grid : {
+ xtype : 'Grid',
+ autoExpandColumn : 'company',
+ listeners : {
+ render : function (grid)
+ {
+ _this.grid = this;
+ }
+ },
+ xns : Roo.grid,
+ '|xns' : 'Roo.grid',
+ ds : {
+ xtype : 'Store',
+ xns : Roo.data,
+ '|xns' : 'Roo.data',
+ proxy : {
+ xtype : 'MemoryProxy',
+ data : [],
+ xns : Roo.data,
+ '|xns' : 'Roo.data'
+ },
+ reader : {
+ xtype : 'ArrayReader',
+ fields : [
+ {name: 'company'},
+ {name: 'price', type: 'float'},
+ {name: 'change', type: 'float'},
+ {name: 'pctChange', type: 'float'},
+ {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
+ ],
+ xns : Roo.data,
+ '|xns' : 'Roo.data'
+ }
+ },
+ cm : [
+ {
+ xtype : 'ColumnModel',
+ dataIndex : 'company',
+ header : _this._strings['1c76cbfe21c6f44c1d1e59d54f3e4420'] /* Company */,
+ locked : false,
+ sortable : true,
+ width : 160,
+ xns : Roo.grid,
+ '|xns' : 'Roo.grid'
+ },
+ {
+ xtype : 'ColumnModel',
+ dataIndex : 'price',
+ header : _this._strings['3601146c4e948c32b6424d2c0a7f0118'] /* Price */,
+ locked : false,
+ renderer : Roo.util.Format.usMoney,
+ sortable : true,
+ width : 75,
+ xns : Roo.grid,
+ '|xns' : 'Roo.grid'
+ },
+ {
+ xtype : 'ColumnModel',
+ dataIndex : 'change',
+ header : _this._strings['f4ec5f57bd4d31b803312d873be40da9'] /* Change */,
+ locked : false,
+ renderer : function (val){
+ if(val > 0){
+ return '<span style="color:green;">' + val + '</span>';
+ }else if(val < 0){
+ return '<span style="color:red;">' + val + '</span>';
+ }
+ return val;
+ },
+ sortable : true,
+ width : 75,
+ xns : Roo.grid,
+ '|xns' : 'Roo.grid'
+ },
+ {
+ xtype : 'ColumnModel',
+ dataIndex : 'pctChange',
+ header : _this._strings['30870648ed968ed5a3e00631e4ad0699'] /* % Change */,
+ locked : false,
+ renderer : function (val){
+ if(val > 0){
+ return '<span style="color:green;">' + val + '%</span>';
+ }else if(val < 0){
+ return '<span style="color:red;">' + val + '%</span>';
+ }
+ return val;
+ },
+ sortable : true,
+ width : 75,
+ xns : Roo.grid,
+ '|xns' : 'Roo.grid'
+ },
+ {
+ xtype : 'ColumnModel',
+ dataIndex : 'lastChange',
+ header : _this._strings['4221d3e17c6eca2ca6337251a3cf9c4e'] /* Last Updated */,
+ locked : false,
+ renderer : Roo.util.Format.dateRenderer('m/d/Y'),
+ sortable : true,
+ width : 85,
+ xns : Roo.grid,
+ '|xns' : 'Roo.grid'
+ }
+ ]
+ }
+ }; }
+});
-<html>\r
-<head>\r
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r
-<title>Array Grid Example</title>\r
-\r
- <link rel="stylesheet" type="text/css" href="../../cssX/roojs-all.css"/>
- <link rel="stylesheet" type="text/css" href="../../cssX/xtheme-slate.css"/>
-
- <script type="text/javascript" src="../../roojs-all.js"></script>
- \r
- <script type="text/javascript" src="array-grid.js"></script>\r
- <link rel="stylesheet" type="text/css" href="grid-examples.css" />\r
-\r
- <!-- Common Styles for the examples -->\r
- <link rel="stylesheet" type="text/css" href="../examples.css" />\r
-</head>\r
-<body>\r
-<script type="text/javascript" src="../examples.js"></script><!-- EXAMPLES -->\r
-<h1>Array Grid Example</h1>\r
-<p>This example shows how to create a grid from Array data.</p>\r
-<p>Note that the js is not minified so it is readable. See
-<button type="button" onclick="RooDocs.viewSource.show('/array-grid.js')">array-grid.js</button> and
-<button type="button" onclick="RooDocs.viewSource.show('/array-grid.html')">array-grid.html</button> .</p>\r
-\r
-<div id="grid-panel" style="width:600px;height:300px;">\r
-<div id="grid-example"></div>\r
-</div>\r
-</body>\r
-</html>\r
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<title>Array Grid Example</title>
+ <link rel="stylesheet" type="text/css" href="../../cssX/roojs-all.css"/>
+
+ <script type="text/javascript" src="../../roojs-debug.js"></script>
+
+ <script type="text/javascript" src="../examples.js"></script>
+
+ <script type="text/javascript" src="ArrayGrid.js"></script>
+
+
+ <!-- Common Styles for the examples -->
+ <link rel="stylesheet" type="text/css" href="../examples.css" />
+
+
+
+
+</head>
+<body>
+<!-- EXAMPLES -->
+<h1>Array Panel Example</h1>
+
+<p>This example demostrates how to use a Roo.data.Store with a Roo.data.MemoryProxy and a Roo.data.ArrayReader along with loading the data from a javascript call
+The grid is set up in <button type="button" onclick="RooDocs.viewSource.show('/ArrayGrid.js')">ArrayGrid.js</button> which was generated using the roobuilder tool, and
+the data is loading on the buildcomplete event in <button type="button" onclick="RooDocs.viewSource.show('/array-grid.html')">array-grid.html</button> .</p>
+
+
+</p>
+ and
+
+<div id="grid-panel" style="width:600px;height:300px;">
+
+</div>
+
+
+</body>
+<script type="text/javascript">
+ Roo.onReady(function() {
+ Roo.XComponent.build();
+
+ Roo.XComponent.on('buildcomplete', function() {
+ ArrayGrid.grid.ds.load({
+ params : {
+ data : [
+ ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
+ ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
+ ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
+ ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
+ ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
+ ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
+ ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],
+ ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
+ ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
+ ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],
+ ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],
+ ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
+ ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],
+ ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
+ ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
+ ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
+ ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],
+ ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],
+ ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'],
+ ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'],
+ ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
+ ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],
+ ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],
+ ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
+ ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],
+ ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
+ ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'],
+ ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],
+ ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'],
+ ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am']
+ ]
+ }
+ });
+
+
+
+ });
+
+ });
+</script>
+</html>
*
* Fork - LGPL
* <script type="text/javascript">
- */\r
+ */
Roo.BLANK_IMAGE_URL = "../../images/default/s.gif";
- \r
-var Example = {\r
- init : function(){\r
- // some data yanked off the web\r
- var myData = [\r
- ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],\r
- ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],\r
- ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],\r
- ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],\r
- ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],\r
- ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],\r
- ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],\r
- ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],\r
- ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],\r
- ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],\r
- ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],\r
- ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],\r
- ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],\r
- ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],\r
- ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],\r
- ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],\r
- ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],\r
- ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],\r
- ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'],\r
- ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'],\r
- ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],\r
- ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],\r
- ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],\r
- ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],\r
- ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],\r
- ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],\r
- ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'],\r
- ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],\r
- ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'],\r
- ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am']\r
- ];\r
-\r
- var ds = new Roo.data.Store({\r
- proxy: new Roo.data.MemoryProxy(myData),\r
- reader: new Roo.data.ArrayReader({}, [\r
- {name: 'company'},\r
- {name: 'price', type: 'float'},\r
- {name: 'change', type: 'float'},\r
- {name: 'pctChange', type: 'float'},\r
- {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}\r
- ])\r
- });\r
- ds.load();\r
-\r
- // example of custom renderer function\r
- function italic(value){\r
- return '<i>' + value + '</i>';\r
- }\r
-\r
- // example of custom renderer function\r
- function change(val){\r
- if(val > 0){\r
- return '<span style="color:green;">' + val + '</span>';\r
- }else if(val < 0){\r
- return '<span style="color:red;">' + val + '</span>';\r
- }\r
- return val;\r
- }\r
- // example of custom renderer function\r
- function pctChange(val){\r
- if(val > 0){\r
- return '<span style="color:green;">' + val + '%</span>';\r
- }else if(val < 0){\r
- return '<span style="color:red;">' + val + '%</span>';\r
- }\r
- return val;\r
- }\r
-\r
- // the DefaultColumnModel expects this blob to define columns. It can be extended to provide\r
- // custom or reusable ColumnModels\r
- var colModel = new Roo.grid.ColumnModel([\r
- {id:'company',header: "Company", width: 160, sortable: true, locked:false, dataIndex: 'company'},\r
- {header: "Price", width: 75, sortable: true, renderer: Roo.util.Format.usMoney, dataIndex: 'price'},\r
- {header: "Change", width: 75, sortable: true, renderer: change, dataIndex: 'change'},\r
- {header: "% Change", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'},\r
- {header: "Last Updated", width: 85, sortable: true, renderer: Roo.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}\r
- ]);\r
-\r
-\r
- // create the Grid\r
- var grid = new Roo.grid.Grid('grid-example', {\r
- ds: ds,\r
- cm: colModel,\r
- autoExpandColumn: 'company'\r
- });\r
- \r
- var layout = Roo.BorderLayout.create({\r
- center: {\r
- margins:{left:3,top:3,right:3,bottom:3},\r
- panels: [new Roo.GridPanel(grid)]\r
- }\r
- }, 'grid-panel');\r
-\r
- grid.render();\r
- \r
-\r
- grid.getSelectionModel().selectFirstRow();\r
- }\r
-};\r
+
+var Example = {
+ init : function(){
+ // some data yanked off the web
+ var myData = [
+ ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
+ ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
+ ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
+ ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
+ ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
+ ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
+ ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],
+ ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
+ ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
+ ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],
+ ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],
+ ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
+ ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],
+ ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
+ ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
+ ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
+ ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],
+ ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],
+ ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'],
+ ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'],
+ ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
+ ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],
+ ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],
+ ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
+ ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],
+ ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
+ ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'],
+ ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],
+ ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'],
+ ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am']
+ ];
+
+ var ds = new Roo.data.Store({
+ proxy: new Roo.data.MemoryProxy(myData),
+ reader: new Roo.data.ArrayReader({}, [
+ {name: 'company'},
+ {name: 'price', type: 'float'},
+ {name: 'change', type: 'float'},
+ {name: 'pctChange', type: 'float'},
+ {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
+ ])
+ });
+ ds.load();
+
+ // example of custom renderer function
+ function italic(value){
+ return '<i>' + value + '</i>';
+ }
+
+ // example of custom renderer function
+ function change(val){
+ if(val > 0){
+ return '<span style="color:green;">' + val + '</span>';
+ }else if(val < 0){
+ return '<span style="color:red;">' + val + '</span>';
+ }
+ return val;
+ }
+ // example of custom renderer function
+ function pctChange(val){
+ if(val > 0){
+ return '<span style="color:green;">' + val + '%</span>';
+ }else if(val < 0){
+ return '<span style="color:red;">' + val + '%</span>';
+ }
+ return val;
+ }
+
+ // the DefaultColumnModel expects this blob to define columns. It can be extended to provide
+ // custom or reusable ColumnModels
+ var colModel = new Roo.grid.ColumnModel([
+ {id:'company',header: "Company", width: 160, sortable: true, locked:false, dataIndex: 'company'},
+ {header: "Price", width: 75, sortable: true, renderer: Roo.util.Format.usMoney, dataIndex: 'price'},
+ {header: "Change", width: 75, sortable: true, renderer: change, dataIndex: 'change'},
+ {header: "% Change", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'},
+ {header: "Last Updated", width: 85, sortable: true, renderer: Roo.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
+ ]);
+
+
+ // create the Grid
+ var grid = new Roo.grid.Grid('grid-example', {
+ ds: ds,
+ cm: colModel,
+ autoExpandColumn: 'company'
+ });
+
+ var layout = Roo.BorderLayout.create({
+ center: {
+ margins:{left:3,top:3,right:3,bottom:3},
+ panels: [new Roo.GridPanel(grid)]
+ }
+ }, 'grid-panel');
+
+ grid.render();
+
+
+ grid.getSelectionModel().selectFirstRow();
+ }
+};
Roo.onReady(Example.init, Example);
\ No newline at end of file
// Roo/data/DataProxy.js
Roo.data.DataProxy=function(){this.addEvents({beforeload:true,load:true,loadexception:true});Roo.data.DataProxy.superclass.constructor.call(this);};Roo.extend(Roo.data.DataProxy,Roo.util.Observable);
// Roo/data/MemoryProxy.js
-Roo.data.MemoryProxy=function(A){if(A.data){A=A.data;}Roo.data.MemoryProxy.superclass.constructor.call(this);this.data=A;};Roo.extend(Roo.data.MemoryProxy,Roo.data.DataProxy,{load:function(A,B,C,D,E){A=A||{};var F;try{F=B.readRecords(A.data?A.data:this.data);
-}catch(e){this.fireEvent("loadexception",this,E,null,e);C.call(D,null,E,false);return;}C.call(D,F,E,true);},update:function(A,B){}});
+Roo.data.MemoryProxy=function(A){var B=A;if(typeof(A)!='undefined'&&typeof(A.data)!='undefined'){B=A.data;}Roo.data.MemoryProxy.superclass.constructor.call(this);this.data=B;};Roo.extend(Roo.data.MemoryProxy,Roo.data.DataProxy,{load:function(A,B,C,D,E){A=A||{}
+;var F;try{F=B.readRecords(A.data?A.data:this.data);}catch(e){this.fireEvent("loadexception",this,E,null,e);C.call(D,null,E,false);return;}C.call(D,F,E,true);},update:function(A,B){}});
// Roo/data/HttpProxy.js
Roo.data.HttpProxy=function(A){Roo.data.HttpProxy.superclass.constructor.call(this);this.conn=A;this.useAjax=!A||!A.events;};Roo.extend(Roo.data.HttpProxy,Roo.data.DataProxy,{getConnection:function(){return this.useAjax?Roo.Ajax:this.conn;},load:function(A,B,C,D,E){if(this.fireEvent("beforeload",this,A)!==false){var o={params:A||{}
,request:{callback:C,scope:D,arg:E},reader:B,callback:this.loadResponse,scope:this};if(this.useAjax){Roo.applyIf(o,this.conn);if(this.activeRequest){Roo.Ajax.abort(this.activeRequest);}this.activeRequest=Roo.Ajax.request(o);}else{this.conn.request(o);}}else{C.call(D||this,null,E,false);
if(this.group){this.groupStack.push(this.group);}if(this.doc===false){this.group=this.doc=new Roo.rtf.Document();return;}this.group=new Roo.rtf.Group(this.group);},cmdignorable:function(){this.flushHexStore();this.group.ignorable=true;},cmdendparagraph:function(){this.flushHexStore();
this.group.addContent(new Roo.rtf.Paragraph());},cmdgroupend:function(){this.flushHexStore();var A=this.group;this.group=this.groupStack.pop();if(this.group){this.group.addChild(A);}var B=this.group||this.doc;if(A.ignorable===false){this.groups.push(A);}}
,cmdtext:function(A){this.flushHexStore();if(!this.group){return;}this.group.addContent(new Roo.rtf.Span(A));},cmdcontrolword:function(A){this.flushHexStore();if(!this.group.type){this.group.type=A.value;return;}this.group.addContent(new Roo.rtf.Ctrl(A));
-return;},cmdhexchar:function(A){this.hexStore.push(A);},cmderror:function(A){throw new Exception(A.value);},parseText:function(c){if(c==='\\'){this.parserState=this.parseEscapes;}else if(c==='{'){this.emitStartGroup();}else if(c==='}'){this.emitEndGroup();
-}else if(c==='\x0A'||c==='\x0D'){}else{this.text+=c;}},parseEscapes:function(c){if(c==='\\'||c==='{'||c==='}'){this.text+=c;this.parserState=this.parseText;}else{this.parserState=this.parseControlSymbol;this.parseControlSymbol(c);}},parseControlSymbol:function(c){if(c==='~'){this.text+='\u00a0';
+return;},cmdhexchar:function(A){this.hexStore.push(A);},cmderror:function(A){throw A.value;},parseText:function(c){if(c==='\\'){this.parserState=this.parseEscapes;}else if(c==='{'){this.emitStartGroup();}else if(c==='}'){this.emitEndGroup();}else if(c==='\x0A'||c==='\x0D'){}
+else{this.text+=c;}},parseEscapes:function(c){if(c==='\\'||c==='{'||c==='}'){this.text+=c;this.parserState=this.parseText;}else{this.parserState=this.parseControlSymbol;this.parseControlSymbol(c);}},parseControlSymbol:function(c){if(c==='~'){this.text+='\u00a0';
this.parserState=this.parseText}else if(c==='-'){this.text+='\u00ad';}else if(c==='_'){this.text+='\u2011';}else if(c==='*'){this.emitIgnorable();this.parserState=this.parseText;}else if(c==="'"){this.parserState=this.parseHexChar;}else if(c==='|'){this.emitFormula();
this.parserState=this.parseText;}else if(c===':'){this.emitIndexSubEntry();this.parserState=this.parseText;}else if(c==='\x0a'){this.emitEndParagraph();this.parserState=this.parseText;}else if(c==='\x0d'){this.emitEndParagraph();this.parserState=this.parseText;
}else{this.parserState=this.parseControlWord;this.parseControlWord(c);}},parseHexChar:function(c){if(/^[A-Fa-f0-9]$/.test(c)){this.hexChar+=c;if(this.hexChar.length>=2){this.emitHexChar();this.parserState=this.parseText;}return;}this.emitError("Invalid character \""+c+"\" in hex literal.");
this.parserState=this.parseText;},parseControlWord:function(c){if(c===' '){this.emitControlWord();this.parserState=this.parseText;}else if(/^[-\d]$/.test(c)){this.parserState=this.parseControlWordParam;this.controlWordParam+=c;}else if(/^[A-Za-z]$/.test(c)){this.controlWord+=c;
}else{this.emitControlWord();this.parserState=this.parseText;this.parseText(c);}},parseControlWordParam:function(c){if(/^\d$/.test(c)){this.controlWordParam+=c;}else if(c===' '){this.emitControlWord();this.parserState=this.parseText;}else{this.emitControlWord();
-this.parserState=this.parseText;this.parseText(c);}},emitText:function(){if(this.text===''){return;}this.push({type:'text',value:this.text,pos:this.cpos,row:this.row,col:this.col});this.text=''},emitControlWord:function(){this.emitText();if(this.controlWord===''){this.emitError('empty control word');
-}else{this.push({type:'controlword',value:this.controlWord,param:this.controlWordParam!==''&&Number(this.controlWordParam),pos:this.cpos,row:this.row,col:this.col});}this.controlWord='';this.controlWordParam='';},emitStartGroup:function(){this.emitText();
-this.push({type:'groupstart',pos:this.cpos,row:this.row,col:this.col});},emitEndGroup:function(){this.emitText();this.push({type:'groupend',pos:this.cpos,row:this.row,col:this.col});},emitIgnorable:function(){this.emitText();this.push({type:'ignorable',pos:this.cpos,row:this.row,col:this.col}
-);},emitHexChar:function(){this.emitText();this.push({type:'hexchar',value:this.hexChar,pos:this.cpos,row:this.row,col:this.col});this.hexChar=''},emitError:function(A){this.emitText();this.push({type:'error',value:A,row:this.row,col:this.col,char:this.cpos}
-);},emitEndParagraph:function(){this.emitText();this.push({type:'endparagraph',pos:this.cpos,row:this.row,col:this.col});}};
+this.parserState=this.parseText;this.parseText(c);}},emitText:function(){if(this.text===''){return;}this.push({type:'text',value:this.text,pos:this.cpos,row:this.row,col:this.col});this.text=''},emitControlWord:function(){this.emitText();if(this.controlWord===''){}
+else{this.push({type:'controlword',value:this.controlWord,param:this.controlWordParam!==''&&Number(this.controlWordParam),pos:this.cpos,row:this.row,col:this.col});}this.controlWord='';this.controlWordParam='';},emitStartGroup:function(){this.emitText();this.push({type:'groupstart',pos:this.cpos,row:this.row,col:this.col}
+);},emitEndGroup:function(){this.emitText();this.push({type:'groupend',pos:this.cpos,row:this.row,col:this.col});},emitIgnorable:function(){this.emitText();this.push({type:'ignorable',pos:this.cpos,row:this.row,col:this.col});},emitHexChar:function(){this.emitText();
+this.push({type:'hexchar',value:this.hexChar,pos:this.cpos,row:this.row,col:this.col});this.hexChar=''},emitError:function(A){this.emitText();this.push({type:'error',value:A,row:this.row,col:this.col,char:this.cpos});},emitEndParagraph:function(){this.emitText();
+this.push({type:'endparagraph',pos:this.cpos,row:this.row,col:this.col});}};
// Roo/htmleditor/namespace.js
Roo.htmleditor={};
// Roo/htmleditor/Filter.js
}if(A.hasAttribute("style")){var B=A.getAttribute("style").split(";");var C=[];Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");if(kv[0].match(/^\s*(width|min-width)\s*$/)){return;}C.push(s);});A.setAttribute("style",C.length?C.join(';'):'');
if(!C.length){A.removeAttribute('style');}}return true;}});
// Roo/htmleditor/FilterWord.js
-Roo.htmleditor.FilterWord=function(A){this.replaceDocBullets(A.node);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterWord,Roo.htmleditor.Filter,{tag:true,replaceTag:function(A){if(A.nodeName=='SPAN'&&!A.hasAttributes()&&A.childNodes.length==1&&A.firstChild.nodeName=="#text"){var B=A.firstChild;
+Roo.htmleditor.FilterWord=function(A){this.replaceDocBullets(A.node);};Roo.extend(Roo.htmleditor.FilterWord,Roo.htmleditor.Filter,{tag:true,replaceTag:function(A){if(A.nodeName=='SPAN'&&!A.hasAttributes()&&A.childNodes.length==1&&A.firstChild.nodeName=="#text"){var B=A.firstChild;
A.removeChild(B);if(A.getAttribute('lang')!='zh-CN'){A.parentNode.insertBefore(A.ownerDocument.createTextNode(" "),A);}A.parentNode.insertBefore(B,A);if(A.getAttribute('lang')!='zh-CN'){A.parentNode.insertBefore(A.ownerDocument.createTextNode(" "),A);}A.parentNode.removeChild(A);
return false;}if(A.tagName.toLowerCase().match(/^(style|script|applet|embed|noframes|noscript)$/)){A.parentNode.removeChild(A);return false;}if(A.tagName.toLowerCase().match(/^(meta|link|\\?xml:|st1:|o:|v:|font)/)){while(A.childNodes.length){var cn=A.childNodes[0];
A.removeChild(cn);A.parentNode.insertBefore(cn,A);if(cn.nodeType==1){this.replaceTag(cn);}}A.parentNode.removeChild(A);return false;}if(A.className.length){var cn=A.className.split(/\W+/);var C=[];Roo.each(cn,function(F){if(F.match(/Mso[a-zA-Z]+/)){return;
}C.push(F);});A.className=C.length?C.join(' '):'';if(!C.length){A.removeAttribute("class");}}if(A.hasAttribute("lang")){A.removeAttribute("lang");}if(A.hasAttribute("style")){var D=A.getAttribute("style").split(";");var E=[];Roo.each(D,function(s){if(!s.match(/:/)){return;
-}var kv=s.split(":");if(kv[0].match(/^(mso-|line|font|background|margin|padding|color)/)){return;}E.push(s);});A.setAttribute("style",E.length?E.join(';'):'');if(!E.length){A.removeAttribute('style');}}return true;},styleToObject:function(A){var B=A.getAttribute("style").split(";");
-var C={};Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");C[kv[0]]=kv[1];});return C;},replaceDocBullets:function(A){var B=A.getElementsByClassName('MsoListParagraph');while(B.length){this.replaceDocBullet(B.item(0));}},replaceDocBullet:function(p){var ns=p,A=p.parentNode,B=A.ownerDocument,C=[];
-while(ns){if(ns.nodeType!=1){ns=ns.nextSibling;continue;}if(!ns.className.match(/MsoListParagraph/i)){break;}C.push(ns);ns=ns.nextSibling;}var ul=A.ownerDocument.createElement('ul');A.insertBefore(ul,p);var D=0;var E=[ul];var F=false;C.forEach(function(n){A.removeChild(n);
-var G=n.getElementsByTagName('span');if(!G.length||!n.isEqualNode(G.item(0).parentNode)){return;}var H=this.styleToObject(n);if(typeof(H['mso-list'])=='undefined'){return;}n.removeChild(G.item(0));var I=(H['mso-list'].split(' ')[1].replace(/level/,'')*1)-1;
-if(I>D){var J=B.createElement('ul');F.appendChild(J);E[I]=J;}D=I;var K=E[I].appendChild(B.createElement('li'));F=K;while(n.firstChild){var fc=n.firstChild;n.removeChild(fc);K.appendChild(fc);}},this);}});
+}var kv=s.split(":");if(kv[0].match(/^(mso-|line|font|background|margin|padding|color)/)){return;}E.push(s);});A.setAttribute("style",E.length?E.join(';'):'');if(!E.length){A.removeAttribute('style');}}return true;},styleToObject:function(A){var B=(A.getAttribute("style")||'').split(";");
+var C={};Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");C[kv[0].trim()]=kv[1];});return C;},replaceDocBullets:function(A){var B=A.getElementsByClassName('ql-indent-1');while(B.length){this.replaceDocBullet(B.item(0));}var B=A.getElementsByClassName('MsoListParagraph');
+while(B.length){this.replaceDocBullet(B.item(0));}},replaceDocBullet:function(p){var ns=p,A=p.parentNode,B=A.ownerDocument,C=[];while(ns){if(ns.nodeType!=1){ns=ns.nextSibling;continue;}if(!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)){break;}C.push(ns);
+ns=ns.nextSibling;}var ul=A.ownerDocument.createElement('ul');A.insertBefore(ul,p);var D=0;var E=[ul];var F=false;C.forEach(function(n,G){var H=n.getElementsByTagName('span');if(!H.length){A.removeChild(n);return;}var I={};for(var i=0;i<H.length;i++){I=this.styleToObject(H[i]);
+if(typeof(I['mso-list'])=='undefined'){continue;}H[i].parentNode.removeChild(H[i]);break;}I=this.styleToObject(n);if(typeof(I['mso-list'])=='undefined'){A.removeChild(n);return;}var J=(I['mso-list'].split(' ')[1].replace(/level/,'')*1)-1;if(J>D){var K=B.createElement('ul');
+F.appendChild(K);E[J]=K;}D=J;var L=E[J].appendChild(B.createElement('li'));F=L;L.innerHTML=n.innerHTML;A.removeChild(n);},this);}});
// Roo/htmleditor/FilterStyleToTag.js
Roo.htmleditor.FilterStyleToTag=function(A){this.tags={B:['fontWeight','bold'],I:['fontStyle','italic'],SUP:['verticalAlign','super'],SUB:['verticalAlign','sub']};Roo.apply(this,A);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterStyleToTag,Roo.htmleditor.Filter,{tag:true,tags:false,replaceTag:function(A){if(A.getAttribute("style")===null){return true;
}var B=[];for(var k in this.tags){if(A.style[this.tags[k][0]]==this.tags[k][1]){B.push(k);A.style.removeProperty(this.tags[k][0]);}}if(!B.length){return true;}var cn=Array.from(A.childNodes);var nn=A;Roo.each(B,function(t){var nc=A.ownerDocument.createElement(t);
}var K=this.indentstr;if(!this.in_pre){if(G){if(A=='BR'){this.addLine();}else if(this.lastElementEndsWS()){this.addLine();}else{K='';}}else{this.addLine();}}else{K='';}this.html.push(K+'<',A.toLowerCase());if(B){for(i=0,l=B.length;i<l;i++){E=B[i];this.html.push(' ',E.name,'="',this.encode(E.value,true),'"');
}}if(C){if(I){this.html[this.html.length]='/>';}else{this.html[this.html.length]='></'+A.toLowerCase()+'>';}var L=A=='BR'?false:this.in_inline;if(!L&&!this.in_pre){this.addLine();}return;}this.html[this.html.length]='>';this.pushState({indentstr:H?'':(this.indentstr+this.indent),in_pre:H,in_inline:G}
);if(!G&&!H){this.addLine();}},lastElementEndsWS:function(){var A=this.html.length>0?this.html[this.html.length-1]:false;if(A===false){return true;}return A.match(/\s+$/);},end:function(A){var B;this.popState();var C='';var D=this.in_inline||Roo.htmleditor.TidyWriter.inline_elements.indexOf(A)>-1;
-if(!this.in_pre&&!D){this.addLine();C=this.indentstr;}this.html.push(C+'</',A.toLowerCase(),'>');this.last_inline=D;},text:function(A,B){if(A.length<1){return;}if(this.in_pre){this.html[this.html.length]=A;return;}if(this.in_inline){A=A.replace(/\s+/g,' ');
-if(A!=' '){A=A.replace(/\s+/,' ');if(B.nextSibling&&B.nextSibling.nodeType==1&&B.nextSibling.nodeName=='BR'){A=A.replace(/\s+$/g,'');}if(B.previousSibling&&B.previousSibling.nodeType==1&&B.previousSibling.nodeName=='BR'){A=this.indentstr+A.replace(/^\s+/g,'');
-}if(A.match(/\n/)){A=A.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);A=A.replace(/\n\s+$/,'');}}this.html[this.html.length]=A;return;}var C=this.indentstr;A=A.replace(/\s+/g," ");if(B.previousSibling&&B.previousSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.previousSibling.nodeName)>-1){C='';
-}else{this.addLine();A=A.replace(/^\s+/,'');}if(B.nextSibling&&B.nextSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.nextSibling.nodeName)>-1){}else{A=A.replace(/\s+$/,'');}if(A.length<1){return;}if(!A.match(/\n/)){this.html.push(C+A);
-return;}A=this.indentstr+A.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);A=A.replace(/\s+$/,'');this.html.push(A);},cdata:function(A){this.html.push('<![CDATA[',A,']]>');},comment:function(A){this.html.push('<!--',A,'-->');},pi:function(A,B){B?this.html.push('<?',A,' ',this.encode(B),'?>'):this.html.push('<?',A,'?>');
+if(!this.in_pre&&!D){this.addLine();C=this.indentstr;}this.html.push(C+'</',A.toLowerCase(),'>');this.last_inline=D;},text:function(A,B){if(A.length<1){return;}var C=new XMLSerializer().serializeToString(document.createTextNode(A));if(this.in_pre){this.html[this.html.length]=C;
+return;}if(this.in_inline){C=C.replace(/\s+/g,' ');if(C!=' '){C=C.replace(/\s+/,' ');if(B.nextSibling&&B.nextSibling.nodeType==1&&B.nextSibling.nodeName=='BR'){C=C.replace(/\s+$/g,'');}if(B.previousSibling&&B.previousSibling.nodeType==1&&B.previousSibling.nodeName=='BR'){C=this.indentstr+C.replace(/^\s+/g,'');
+}if(C.match(/\n/)){C=C.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);C=C.replace(/\n\s+$/,'');}}this.html[this.html.length]=C;return;}var D=this.indentstr;C=C.replace(/\s+/g," ");if(B.previousSibling&&B.previousSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.previousSibling.nodeName)>-1){D='';
+}else{this.addLine();C=C.replace(/^\s+/,'');}if(B.nextSibling&&B.nextSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.nextSibling.nodeName)>-1){}else{C=C.replace(/\s+$/,'');}if(C.length<1){return;}if(!C.match(/\n/)){this.html.push(D+C);
+return;}C=this.indentstr+C.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);C=C.replace(/\s+$/,'');this.html.push(C);},cdata:function(A){this.html.push('<![CDATA[',A,']]>');},comment:function(A){this.html.push('<!--',A,'-->');},pi:function(A,B){B?this.html.push('<?',A,' ',this.encode(B),'?>'):this.html.push('<?',A,'?>');
this.indent!=''&&this.html.push('\n');},doctype:function(A){this.html.push('<!DOCTYPE',A,'>',this.indent!=''?'\n':'');},reset:function(){this.html.length=0;this.state=[];this.pushState({indentstr:'',in_pre:false,in_inline:false})},getContent:function(){return this.html.join('').replace(/\n$/,'');
},pushState:function(A){this.state.push(A);Roo.apply(this,A);},popState:function(){if(this.state.length<1){return;}var A={in_pre:false,indentstr:''};this.state.pop();if(this.state.length>0){A=this.state[this.state.length-1];}Roo.apply(this,A);},addLine:function(){if(this.html.length<1){return;
}var A=this.html[this.html.length-1];if(A.length>0&&'\n'!==A){this.html.push('\n');}}};Roo.htmleditor.TidyWriter.inline_elements=['SPAN','STRONG','B','EM','I','FONT','STRIKE','U','VAR','CITE','DFN','CODE','MARK','Q','SUP','SUB','SAMP','A'];Roo.htmleditor.TidyWriter.shortend_elements=['AREA','BASE','BASEFONT','BR','COL','FRAME','HR','IMG','INPUT','ISINDEX','LINK','','META','PARAM','EMBED','SOURCE','WBR','TRACK'];
}if(this.labelAlign=='top'){this.labelStyle="width:auto;";this.elementStyle="padding-left:0;";}}var C=this.stack;var D=C.length;if(D>0){if(!this.fieldTpl){var t=new Roo.Template('<div class="x-form-item {5}">','<label for="{0}" style="{2}">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div>','</div><div class="x-form-clear-left"></div>');
t.disableFormats=true;t.compile();Roo.form.Layout.prototype.fieldTpl=t;}for(var i=0;i<D;i++){if(C[i].isFormField){this.renderField(C[i]);}else{this.renderComponent(C[i]);}}}if(this.clear){this.el.createChild({cls:'x-form-clear'});}},renderField:function(f){f.fieldEl=Roo.get(this.fieldTpl.append(this.el,[f.id,f.fieldLabel,f.labelStyle||this.labelStyle||'',this.elementStyle||'',typeof f.labelSeparator=='undefined'?this.labelSeparator:f.labelSeparator,f.itemCls||this.itemCls||''],true).getPrevSibling());
},renderComponent:function(c){c.render(c.isLayout?this.el:this.el.createChild());},addxtype:function(o){o.form=this.form;var fe=Roo.factory(o,Roo.form);this.form.allItems.push(fe);this.stack.push(fe);if(fe.isFormField){this.form.items.add(fe);}return fe;}
-});Roo.form.Column=function(A){Roo.form.Column.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Column,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-column'},onRender:function(ct,A){Roo.form.Column.superclass.onRender.call(this,ct,A);
-if(this.width){this.el.setWidth(this.width);}}});Roo.form.Row=function(A){Roo.form.Row.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Row,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-row'},padWidth:20,onRender:function(ct,A){if(!this.rowTpl){var t=new Roo.Template('<div class="x-form-item {5}" style="float:left;width:{6}px">','<label for="{0}" style="{2}">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div>','</div>');
+});
+// Roo/form/Column.js
+Roo.form.Column=function(A){Roo.form.Column.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Column,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-column'},onRender:function(ct,A){Roo.form.Column.superclass.onRender.call(this,ct,A);
+if(this.width){this.el.setWidth(this.width);}}});
+// Roo/form/Row.js
+Roo.form.Row=function(A){Roo.form.Row.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Row,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-row'},padWidth:20,onRender:function(ct,A){if(!this.rowTpl){var t=new Roo.Template('<div class="x-form-item {5}" style="float:left;width:{6}px">','<label for="{0}" style="{2}">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div>','</div>');
t.disableFormats=true;t.compile();Roo.form.Layout.prototype.rowTpl=t;}this.fieldTpl=this.rowTpl;var B=100;if((this.labelAlign!='top')){if(typeof this.labelWidth=='number'){B=this.labelWidth}this.padWidth=20+B;}Roo.form.Column.superclass.onRender.call(this,ct,A);
if(this.width){this.el.setWidth(this.width);}if(this.height){this.el.setHeight(this.height);}},renderField:function(f){f.fieldEl=this.fieldTpl.append(this.el,[f.id,f.fieldLabel,f.labelStyle||this.labelStyle||'',this.elementStyle||'',typeof f.labelSeparator=='undefined'?this.labelSeparator:f.labelSeparator,f.itemCls||this.itemCls||'',f.width?f.width+this.padWidth:160+this.padWidth],true);
-}});Roo.form.FieldSet=function(A){Roo.form.FieldSet.superclass.constructor.call(this,A);};Roo.extend(Roo.form.FieldSet,Roo.form.Layout,{defaultAutoCreate:{tag:'fieldset',cn:{tag:'legend'}},onRender:function(ct,A){Roo.form.FieldSet.superclass.onRender.call(this,ct,A);
+}});
+// Roo/form/FieldSet.js
+Roo.form.FieldSet=function(A){Roo.form.FieldSet.superclass.constructor.call(this,A);};Roo.extend(Roo.form.FieldSet,Roo.form.Layout,{defaultAutoCreate:{tag:'fieldset',cn:{tag:'legend'}},onRender:function(ct,A){Roo.form.FieldSet.superclass.onRender.call(this,ct,A);
if(this.legend){this.setLegend(this.legend);}},setLegend:function(A){if(this.rendered){this.el.child('legend').update(A);}}});
// Roo/form/VTypes.js
Roo.form.VTypes=function(){var A=/^[a-zA-Z_]+$/;var B=/^[a-zA-Z0-9_]+$/;var C=/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,24}$/;var D=/(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return {'email':function(v){return C.test(v);
*/
/**
* @class Roo.data.MemoryProxy
+ * @extends Roo.data.DataProxy
* An implementation of Roo.data.DataProxy that simply passes the data specified in its constructor
* to the Reader when its load method is called.
* @constructor
- * @param {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ * @param {Object} config A config object containing the objects needed for the Store to access data,
*/
-Roo.data.MemoryProxy = function(data){
- if (data.data) {
- data = data.data;
+Roo.data.MemoryProxy = function(config){
+ var data = config;
+ if (typeof(config) != 'undefined' && typeof(config.data) != 'undefined') {
+ data = config.data;
}
Roo.data.MemoryProxy.superclass.constructor.call(this);
this.data = data;
Roo.extend(Roo.data.MemoryProxy, Roo.data.DataProxy, {
+ /**
+ * @cfg {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ */
/**
* Load data from the requested source (in this case an in-memory
* data object passed to the constructor), read the data object into
// no need to apply config.
this.replaceDocBullets(cfg.node);
- this.walk(cfg.node);
+ // this.walk(cfg.node);
}
styleToObject: function(node)
{
- var styles = node.getAttribute("style").split(";");
+ var styles = (node.getAttribute("style") || '').split(";");
var ret = {};
Roo.each(styles, function(s) {
if (!s.match(/:/)) {
var kv = s.split(":");
// what ever is left... we allow.
- ret[kv[0]] = kv[1];
+ ret[kv[0].trim()] = kv[1];
});
return ret;
},
replaceDocBullets : function(doc)
{
+ // this is a bit odd - but it appears some indents use ql-indent-1
+
+ var listpara = doc.getElementsByClassName('ql-indent-1');
+ while(listpara.length) {
+ this.replaceDocBullet(listpara.item(0));
+ }
+
var listpara = doc.getElementsByClassName('MsoListParagraph');
while(listpara.length) {
this.replaceDocBullet(listpara.item(0));
- //code
}
},
var ns = p,
parent = p.parentNode,
doc = parent.ownerDocument,
- items = [];
+ items = [];
+
+
while (ns) {
if (ns.nodeType != 1) {
ns = ns.nextSibling;
continue;
}
- if (!ns.className.match(/MsoListParagraph/i)) {
+ if (!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)) {
break;
}
items.push(ns);
ns = ns.nextSibling;
-
}
+
+
var ul = parent.ownerDocument.createElement('ul'); // what about number lists...
parent.insertBefore(ul, p);
var lvl = 0;
var stack = [ ul ];
var last_li = false;
- items.forEach(function(n) {
- parent.removeChild(n);
+
+ items.forEach(function(n, ipos) {
+ //Roo.log("got innertHMLT=" + n.innerHTML);
+
var spans = n.getElementsByTagName('span');
- if (!spans.length || !n.isEqualNode(spans.item(0).parentNode)) {
+ if (!spans.length) {
+ //Roo.log("No spans found");
+
+ parent.removeChild(n);
return; // skip it...
}
+
+
- var style = this.styleToObject(n);
+ var style = {};
+ for(var i = 0; i < spans.length; i++) {
+
+ style = this.styleToObject(spans[i]);
+ if (typeof(style['mso-list']) == 'undefined') {
+ continue;
+ }
+
+ spans[i].parentNode.removeChild(spans[i]); // remove the fake bullet.
+ break;
+ }
+ //Roo.log("NOW GOT innertHMLT=" + n.innerHTML);
+ style = this.styleToObject(n); // mo-list is from the parent node.
if (typeof(style['mso-list']) == 'undefined') {
- return; // skip it.
+ //Roo.log("parent is missing level");
+ parent.removeChild(n);
+ return;
}
- n.removeChild(spans.item(0)); // remove the fake bullet.
- var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1;
+
+ var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1 ;
+
+
+
if (nlvl > lvl) {
//new indent
var nul = doc.createElement('ul'); // what about number lists...
last_li.appendChild(nul);
stack[nlvl] = nul;
+
}
lvl = nlvl;
var nli = stack[nlvl].appendChild(doc.createElement('li'));
last_li = nli;
+ nli.innerHTML = n.innerHTML;
+ //Roo.log("innerHTML = " + n.innerHTML);
+ parent.removeChild(n);
+
// copy children of p into nli
- while(n.firstChild) {
+ /*while(n.firstChild) {
var fc = n.firstChild;
n.removeChild(fc);
nli.appendChild(fc);
- }
+ }*/
},this);
// Roo/data/DataProxy.js
Roo.data.DataProxy=function(){this.addEvents({beforeload:true,load:true,loadexception:true});Roo.data.DataProxy.superclass.constructor.call(this);};Roo.extend(Roo.data.DataProxy,Roo.util.Observable);
// Roo/data/MemoryProxy.js
-Roo.data.MemoryProxy=function(A){if(A.data){A=A.data;}Roo.data.MemoryProxy.superclass.constructor.call(this);this.data=A;};Roo.extend(Roo.data.MemoryProxy,Roo.data.DataProxy,{load:function(A,B,C,D,E){A=A||{};var F;try{F=B.readRecords(A.data?A.data:this.data);
-}catch(e){this.fireEvent("loadexception",this,E,null,e);C.call(D,null,E,false);return;}C.call(D,F,E,true);},update:function(A,B){}});
+Roo.data.MemoryProxy=function(A){var B=A;if(typeof(A)!='undefined'&&typeof(A.data)!='undefined'){B=A.data;}Roo.data.MemoryProxy.superclass.constructor.call(this);this.data=B;};Roo.extend(Roo.data.MemoryProxy,Roo.data.DataProxy,{load:function(A,B,C,D,E){A=A||{}
+;var F;try{F=B.readRecords(A.data?A.data:this.data);}catch(e){this.fireEvent("loadexception",this,E,null,e);C.call(D,null,E,false);return;}C.call(D,F,E,true);},update:function(A,B){}});
// Roo/data/HttpProxy.js
Roo.data.HttpProxy=function(A){Roo.data.HttpProxy.superclass.constructor.call(this);this.conn=A;this.useAjax=!A||!A.events;};Roo.extend(Roo.data.HttpProxy,Roo.data.DataProxy,{getConnection:function(){return this.useAjax?Roo.Ajax:this.conn;},load:function(A,B,C,D,E){if(this.fireEvent("beforeload",this,A)!==false){var o={params:A||{}
,request:{callback:C,scope:D,arg:E},reader:B,callback:this.loadResponse,scope:this};if(this.useAjax){Roo.applyIf(o,this.conn);if(this.activeRequest){Roo.Ajax.abort(this.activeRequest);}this.activeRequest=Roo.Ajax.request(o);}else{this.conn.request(o);}}else{C.call(D||this,null,E,false);
}if(A.hasAttribute("style")){var B=A.getAttribute("style").split(";");var C=[];Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");if(kv[0].match(/^\s*(width|min-width)\s*$/)){return;}C.push(s);});A.setAttribute("style",C.length?C.join(';'):'');
if(!C.length){A.removeAttribute('style');}}return true;}});
// Roo/htmleditor/FilterWord.js
-Roo.htmleditor.FilterWord=function(A){this.replaceDocBullets(A.node);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterWord,Roo.htmleditor.Filter,{tag:true,replaceTag:function(A){if(A.nodeName=='SPAN'&&!A.hasAttributes()&&A.childNodes.length==1&&A.firstChild.nodeName=="#text"){var B=A.firstChild;
+Roo.htmleditor.FilterWord=function(A){this.replaceDocBullets(A.node);};Roo.extend(Roo.htmleditor.FilterWord,Roo.htmleditor.Filter,{tag:true,replaceTag:function(A){if(A.nodeName=='SPAN'&&!A.hasAttributes()&&A.childNodes.length==1&&A.firstChild.nodeName=="#text"){var B=A.firstChild;
A.removeChild(B);if(A.getAttribute('lang')!='zh-CN'){A.parentNode.insertBefore(A.ownerDocument.createTextNode(" "),A);}A.parentNode.insertBefore(B,A);if(A.getAttribute('lang')!='zh-CN'){A.parentNode.insertBefore(A.ownerDocument.createTextNode(" "),A);}A.parentNode.removeChild(A);
return false;}if(A.tagName.toLowerCase().match(/^(style|script|applet|embed|noframes|noscript)$/)){A.parentNode.removeChild(A);return false;}if(A.tagName.toLowerCase().match(/^(meta|link|\\?xml:|st1:|o:|v:|font)/)){while(A.childNodes.length){var cn=A.childNodes[0];
A.removeChild(cn);A.parentNode.insertBefore(cn,A);if(cn.nodeType==1){this.replaceTag(cn);}}A.parentNode.removeChild(A);return false;}if(A.className.length){var cn=A.className.split(/\W+/);var C=[];Roo.each(cn,function(F){if(F.match(/Mso[a-zA-Z]+/)){return;
}C.push(F);});A.className=C.length?C.join(' '):'';if(!C.length){A.removeAttribute("class");}}if(A.hasAttribute("lang")){A.removeAttribute("lang");}if(A.hasAttribute("style")){var D=A.getAttribute("style").split(";");var E=[];Roo.each(D,function(s){if(!s.match(/:/)){return;
-}var kv=s.split(":");if(kv[0].match(/^(mso-|line|font|background|margin|padding|color)/)){return;}E.push(s);});A.setAttribute("style",E.length?E.join(';'):'');if(!E.length){A.removeAttribute('style');}}return true;},styleToObject:function(A){var B=A.getAttribute("style").split(";");
-var C={};Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");C[kv[0]]=kv[1];});return C;},replaceDocBullets:function(A){var B=A.getElementsByClassName('MsoListParagraph');while(B.length){this.replaceDocBullet(B.item(0));}},replaceDocBullet:function(p){var ns=p,A=p.parentNode,B=A.ownerDocument,C=[];
-while(ns){if(ns.nodeType!=1){ns=ns.nextSibling;continue;}if(!ns.className.match(/MsoListParagraph/i)){break;}C.push(ns);ns=ns.nextSibling;}var ul=A.ownerDocument.createElement('ul');A.insertBefore(ul,p);var D=0;var E=[ul];var F=false;C.forEach(function(n){A.removeChild(n);
-var G=n.getElementsByTagName('span');if(!G.length||!n.isEqualNode(G.item(0).parentNode)){return;}var H=this.styleToObject(n);if(typeof(H['mso-list'])=='undefined'){return;}n.removeChild(G.item(0));var I=(H['mso-list'].split(' ')[1].replace(/level/,'')*1)-1;
-if(I>D){var J=B.createElement('ul');F.appendChild(J);E[I]=J;}D=I;var K=E[I].appendChild(B.createElement('li'));F=K;while(n.firstChild){var fc=n.firstChild;n.removeChild(fc);K.appendChild(fc);}},this);}});
+}var kv=s.split(":");if(kv[0].match(/^(mso-|line|font|background|margin|padding|color)/)){return;}E.push(s);});A.setAttribute("style",E.length?E.join(';'):'');if(!E.length){A.removeAttribute('style');}}return true;},styleToObject:function(A){var B=(A.getAttribute("style")||'').split(";");
+var C={};Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");C[kv[0].trim()]=kv[1];});return C;},replaceDocBullets:function(A){var B=A.getElementsByClassName('ql-indent-1');while(B.length){this.replaceDocBullet(B.item(0));}var B=A.getElementsByClassName('MsoListParagraph');
+while(B.length){this.replaceDocBullet(B.item(0));}},replaceDocBullet:function(p){var ns=p,A=p.parentNode,B=A.ownerDocument,C=[];while(ns){if(ns.nodeType!=1){ns=ns.nextSibling;continue;}if(!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)){break;}C.push(ns);
+ns=ns.nextSibling;}var ul=A.ownerDocument.createElement('ul');A.insertBefore(ul,p);var D=0;var E=[ul];var F=false;C.forEach(function(n,G){var H=n.getElementsByTagName('span');if(!H.length){A.removeChild(n);return;}var I={};for(var i=0;i<H.length;i++){I=this.styleToObject(H[i]);
+if(typeof(I['mso-list'])=='undefined'){continue;}H[i].parentNode.removeChild(H[i]);break;}I=this.styleToObject(n);if(typeof(I['mso-list'])=='undefined'){A.removeChild(n);return;}var J=(I['mso-list'].split(' ')[1].replace(/level/,'')*1)-1;if(J>D){var K=B.createElement('ul');
+F.appendChild(K);E[J]=K;}D=J;var L=E[J].appendChild(B.createElement('li'));F=L;L.innerHTML=n.innerHTML;A.removeChild(n);},this);}});
// Roo/htmleditor/FilterStyleToTag.js
Roo.htmleditor.FilterStyleToTag=function(A){this.tags={B:['fontWeight','bold'],I:['fontStyle','italic'],SUP:['verticalAlign','super'],SUB:['verticalAlign','sub']};Roo.apply(this,A);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterStyleToTag,Roo.htmleditor.Filter,{tag:true,tags:false,replaceTag:function(A){if(A.getAttribute("style")===null){return true;
}var B=[];for(var k in this.tags){if(A.style[this.tags[k][0]]==this.tags[k][1]){B.push(k);A.style.removeProperty(this.tags[k][0]);}}if(!B.length){return true;}var cn=Array.from(A.childNodes);var nn=A;Roo.each(B,function(t){var nc=A.ownerDocument.createElement(t);
*/
/**
* @class Roo.data.MemoryProxy
+ * @extends Roo.data.DataProxy
* An implementation of Roo.data.DataProxy that simply passes the data specified in its constructor
* to the Reader when its load method is called.
* @constructor
- * @param {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ * @param {Object} config A config object containing the objects needed for the Store to access data,
*/
-Roo.data.MemoryProxy = function(data){
- if (data.data) {
- data = data.data;
+Roo.data.MemoryProxy = function(config){
+ var data = config;
+ if (typeof(config) != 'undefined' && typeof(config.data) != 'undefined') {
+ data = config.data;
}
Roo.data.MemoryProxy.superclass.constructor.call(this);
this.data = data;
Roo.extend(Roo.data.MemoryProxy, Roo.data.DataProxy, {
+ /**
+ * @cfg {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ */
/**
* Load data from the requested source (in this case an in-memory
* data object passed to the constructor), read the data object into
this.hexStore.push(cmd);
},
cmderror : function(cmd) {
- throw new Exception (cmd.value);
+ throw cmd.value;
},
/*
{
this.emitText();
if (this.controlWord === '') {
- this.emitError('empty control word');
+ // do we want to track this - it seems just to cause problems.
+ //this.emitError('empty control word');
} else {
this.push({
type: 'controlword',
// no need to apply config.
this.replaceDocBullets(cfg.node);
- this.walk(cfg.node);
+ // this.walk(cfg.node);
}
styleToObject: function(node)
{
- var styles = node.getAttribute("style").split(";");
+ var styles = (node.getAttribute("style") || '').split(";");
var ret = {};
Roo.each(styles, function(s) {
if (!s.match(/:/)) {
var kv = s.split(":");
// what ever is left... we allow.
- ret[kv[0]] = kv[1];
+ ret[kv[0].trim()] = kv[1];
});
return ret;
},
replaceDocBullets : function(doc)
{
+ // this is a bit odd - but it appears some indents use ql-indent-1
+
+ var listpara = doc.getElementsByClassName('ql-indent-1');
+ while(listpara.length) {
+ this.replaceDocBullet(listpara.item(0));
+ }
+
var listpara = doc.getElementsByClassName('MsoListParagraph');
while(listpara.length) {
this.replaceDocBullet(listpara.item(0));
- //code
}
},
var ns = p,
parent = p.parentNode,
doc = parent.ownerDocument,
- items = [];
+ items = [];
+
+
while (ns) {
if (ns.nodeType != 1) {
ns = ns.nextSibling;
continue;
}
- if (!ns.className.match(/MsoListParagraph/i)) {
+ if (!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)) {
break;
}
items.push(ns);
ns = ns.nextSibling;
-
}
+
+
var ul = parent.ownerDocument.createElement('ul'); // what about number lists...
parent.insertBefore(ul, p);
var lvl = 0;
var stack = [ ul ];
var last_li = false;
- items.forEach(function(n) {
- parent.removeChild(n);
+
+ items.forEach(function(n, ipos) {
+ //Roo.log("got innertHMLT=" + n.innerHTML);
+
var spans = n.getElementsByTagName('span');
- if (!spans.length || !n.isEqualNode(spans.item(0).parentNode)) {
+ if (!spans.length) {
+ //Roo.log("No spans found");
+
+ parent.removeChild(n);
return; // skip it...
}
+
+
+
+ var style = {};
+ for(var i = 0; i < spans.length; i++) {
- var style = this.styleToObject(n);
+ style = this.styleToObject(spans[i]);
+ if (typeof(style['mso-list']) == 'undefined') {
+ continue;
+ }
+
+ spans[i].parentNode.removeChild(spans[i]); // remove the fake bullet.
+ break;
+ }
+ //Roo.log("NOW GOT innertHMLT=" + n.innerHTML);
+ style = this.styleToObject(n); // mo-list is from the parent node.
if (typeof(style['mso-list']) == 'undefined') {
- return; // skip it.
+ //Roo.log("parent is missing level");
+ parent.removeChild(n);
+ return;
}
- n.removeChild(spans.item(0)); // remove the fake bullet.
- var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1;
+
+ var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1 ;
+
+
+
if (nlvl > lvl) {
//new indent
var nul = doc.createElement('ul'); // what about number lists...
last_li.appendChild(nul);
stack[nlvl] = nul;
+
}
lvl = nlvl;
var nli = stack[nlvl].appendChild(doc.createElement('li'));
last_li = nli;
+ nli.innerHTML = n.innerHTML;
+ //Roo.log("innerHTML = " + n.innerHTML);
+ parent.removeChild(n);
+
// copy children of p into nli
- while(n.firstChild) {
+ /*while(n.firstChild) {
var fc = n.firstChild;
n.removeChild(fc);
nli.appendChild(fc);
- }
+ }*/
},this);
* @param {String} text String to write out.
* @param {Boolean} raw Optional raw state if true the contents wont get encoded.
*/
- text: function(text, node)
+ text: function(in_text, node)
{
// if not in whitespace critical
- if (text.length < 1) {
+ if (in_text.length < 1) {
return;
}
+ var text = new XMLSerializer().serializeToString(document.createTextNode(in_text)); // escape it properly?
+
if (this.in_pre) {
this.html[this.html.length] = text;
return;
* a function which returns such a specification.
*/
/**
- * @cfg {String} labelAlign
+ * @cfg {String} labelAlign (left|top|right)
* Valid values are "left," "top" and "right" (defaults to "left")
*/
/**
}
});
+
/**
* @class Roo.form.Column
* @extends Roo.form.Layout
}
});
-
/**
* @class Roo.form.Row
* @extends Roo.form.Layout
*/
/**
* @class Roo.data.MemoryProxy
+ * @extends Roo.data.DataProxy
* An implementation of Roo.data.DataProxy that simply passes the data specified in its constructor
* to the Reader when its load method is called.
* @constructor
- * @param {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ * @param {Object} config A config object containing the objects needed for the Store to access data,
*/
-Roo.data.MemoryProxy = function(data){
- if (data.data) {
- data = data.data;
+Roo.data.MemoryProxy = function(config){
+ var data = config;
+ if (typeof(config) != 'undefined' && typeof(config.data) != 'undefined') {
+ data = config.data;
}
Roo.data.MemoryProxy.superclass.constructor.call(this);
this.data = data;
Roo.extend(Roo.data.MemoryProxy, Roo.data.DataProxy, {
+ /**
+ * @cfg {Object} data The data object which the Reader uses to construct a block of Roo.data.Records.
+ */
/**
* Load data from the requested source (in this case an in-memory
* data object passed to the constructor), read the data object into
this.hexStore.push(cmd);
},
cmderror : function(cmd) {
- throw new Exception (cmd.value);
+ throw cmd.value;
},
/*
{
this.emitText();
if (this.controlWord === '') {
- this.emitError('empty control word');
+ // do we want to track this - it seems just to cause problems.
+ //this.emitError('empty control word');
} else {
this.push({
type: 'controlword',
// no need to apply config.
this.replaceDocBullets(cfg.node);
- this.walk(cfg.node);
+ // this.walk(cfg.node);
}
styleToObject: function(node)
{
- var styles = node.getAttribute("style").split(";");
+ var styles = (node.getAttribute("style") || '').split(";");
var ret = {};
Roo.each(styles, function(s) {
if (!s.match(/:/)) {
var kv = s.split(":");
// what ever is left... we allow.
- ret[kv[0]] = kv[1];
+ ret[kv[0].trim()] = kv[1];
});
return ret;
},
replaceDocBullets : function(doc)
{
+ // this is a bit odd - but it appears some indents use ql-indent-1
+
+ var listpara = doc.getElementsByClassName('ql-indent-1');
+ while(listpara.length) {
+ this.replaceDocBullet(listpara.item(0));
+ }
+
var listpara = doc.getElementsByClassName('MsoListParagraph');
while(listpara.length) {
this.replaceDocBullet(listpara.item(0));
- //code
}
},
var ns = p,
parent = p.parentNode,
doc = parent.ownerDocument,
- items = [];
+ items = [];
+
+
while (ns) {
if (ns.nodeType != 1) {
ns = ns.nextSibling;
continue;
}
- if (!ns.className.match(/MsoListParagraph/i)) {
+ if (!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)) {
break;
}
items.push(ns);
ns = ns.nextSibling;
-
}
+
+
var ul = parent.ownerDocument.createElement('ul'); // what about number lists...
parent.insertBefore(ul, p);
var lvl = 0;
var stack = [ ul ];
var last_li = false;
- items.forEach(function(n) {
- parent.removeChild(n);
+
+ items.forEach(function(n, ipos) {
+ //Roo.log("got innertHMLT=" + n.innerHTML);
+
var spans = n.getElementsByTagName('span');
- if (!spans.length || !n.isEqualNode(spans.item(0).parentNode)) {
+ if (!spans.length) {
+ //Roo.log("No spans found");
+
+ parent.removeChild(n);
return; // skip it...
}
+
+
+
+ var style = {};
+ for(var i = 0; i < spans.length; i++) {
- var style = this.styleToObject(n);
+ style = this.styleToObject(spans[i]);
+ if (typeof(style['mso-list']) == 'undefined') {
+ continue;
+ }
+
+ spans[i].parentNode.removeChild(spans[i]); // remove the fake bullet.
+ break;
+ }
+ //Roo.log("NOW GOT innertHMLT=" + n.innerHTML);
+ style = this.styleToObject(n); // mo-list is from the parent node.
if (typeof(style['mso-list']) == 'undefined') {
- return; // skip it.
+ //Roo.log("parent is missing level");
+ parent.removeChild(n);
+ return;
}
- n.removeChild(spans.item(0)); // remove the fake bullet.
- var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1;
+
+ var nlvl = (style['mso-list'].split(' ')[1].replace(/level/,'') *1) - 1 ;
+
+
+
if (nlvl > lvl) {
//new indent
var nul = doc.createElement('ul'); // what about number lists...
last_li.appendChild(nul);
stack[nlvl] = nul;
+
}
lvl = nlvl;
var nli = stack[nlvl].appendChild(doc.createElement('li'));
last_li = nli;
+ nli.innerHTML = n.innerHTML;
+ //Roo.log("innerHTML = " + n.innerHTML);
+ parent.removeChild(n);
+
// copy children of p into nli
- while(n.firstChild) {
+ /*while(n.firstChild) {
var fc = n.firstChild;
n.removeChild(fc);
nli.appendChild(fc);
- }
+ }*/
},this);
* @param {String} text String to write out.
* @param {Boolean} raw Optional raw state if true the contents wont get encoded.
*/
- text: function(text, node)
+ text: function(in_text, node)
{
// if not in whitespace critical
- if (text.length < 1) {
+ if (in_text.length < 1) {
return;
}
+ var text = new XMLSerializer().serializeToString(document.createTextNode(in_text)); // escape it properly?
+
if (this.in_pre) {
this.html[this.html.length] = text;
return;
* a function which returns such a specification.
*/
/**
- * @cfg {String} labelAlign
+ * @cfg {String} labelAlign (left|top|right)
* Valid values are "left," "top" and "right" (defaults to "left")
*/
/**
}
});
+
/**
* @class Roo.form.Column
* @extends Roo.form.Layout
}
});
-
/**
* @class Roo.form.Row
* @extends Roo.form.Layout
// Roo/data/DataProxy.js
Roo.data.DataProxy=function(){this.addEvents({beforeload:true,load:true,loadexception:true});Roo.data.DataProxy.superclass.constructor.call(this);};Roo.extend(Roo.data.DataProxy,Roo.util.Observable);
// Roo/data/MemoryProxy.js
-Roo.data.MemoryProxy=function(A){if(A.data){A=A.data;}Roo.data.MemoryProxy.superclass.constructor.call(this);this.data=A;};Roo.extend(Roo.data.MemoryProxy,Roo.data.DataProxy,{load:function(A,B,C,D,E){A=A||{};var F;try{F=B.readRecords(A.data?A.data:this.data);
-}catch(e){this.fireEvent("loadexception",this,E,null,e);C.call(D,null,E,false);return;}C.call(D,F,E,true);},update:function(A,B){}});
+Roo.data.MemoryProxy=function(A){var B=A;if(typeof(A)!='undefined'&&typeof(A.data)!='undefined'){B=A.data;}Roo.data.MemoryProxy.superclass.constructor.call(this);this.data=B;};Roo.extend(Roo.data.MemoryProxy,Roo.data.DataProxy,{load:function(A,B,C,D,E){A=A||{}
+;var F;try{F=B.readRecords(A.data?A.data:this.data);}catch(e){this.fireEvent("loadexception",this,E,null,e);C.call(D,null,E,false);return;}C.call(D,F,E,true);},update:function(A,B){}});
// Roo/data/HttpProxy.js
Roo.data.HttpProxy=function(A){Roo.data.HttpProxy.superclass.constructor.call(this);this.conn=A;this.useAjax=!A||!A.events;};Roo.extend(Roo.data.HttpProxy,Roo.data.DataProxy,{getConnection:function(){return this.useAjax?Roo.Ajax:this.conn;},load:function(A,B,C,D,E){if(this.fireEvent("beforeload",this,A)!==false){var o={params:A||{}
,request:{callback:C,scope:D,arg:E},reader:B,callback:this.loadResponse,scope:this};if(this.useAjax){Roo.applyIf(o,this.conn);if(this.activeRequest){Roo.Ajax.abort(this.activeRequest);}this.activeRequest=Roo.Ajax.request(o);}else{this.conn.request(o);}}else{C.call(D||this,null,E,false);
if(this.group){this.groupStack.push(this.group);}if(this.doc===false){this.group=this.doc=new Roo.rtf.Document();return;}this.group=new Roo.rtf.Group(this.group);},cmdignorable:function(){this.flushHexStore();this.group.ignorable=true;},cmdendparagraph:function(){this.flushHexStore();
this.group.addContent(new Roo.rtf.Paragraph());},cmdgroupend:function(){this.flushHexStore();var A=this.group;this.group=this.groupStack.pop();if(this.group){this.group.addChild(A);}var B=this.group||this.doc;if(A.ignorable===false){this.groups.push(A);}}
,cmdtext:function(A){this.flushHexStore();if(!this.group){return;}this.group.addContent(new Roo.rtf.Span(A));},cmdcontrolword:function(A){this.flushHexStore();if(!this.group.type){this.group.type=A.value;return;}this.group.addContent(new Roo.rtf.Ctrl(A));
-return;},cmdhexchar:function(A){this.hexStore.push(A);},cmderror:function(A){throw new Exception(A.value);},parseText:function(c){if(c==='\\'){this.parserState=this.parseEscapes;}else if(c==='{'){this.emitStartGroup();}else if(c==='}'){this.emitEndGroup();
-}else if(c==='\x0A'||c==='\x0D'){}else{this.text+=c;}},parseEscapes:function(c){if(c==='\\'||c==='{'||c==='}'){this.text+=c;this.parserState=this.parseText;}else{this.parserState=this.parseControlSymbol;this.parseControlSymbol(c);}},parseControlSymbol:function(c){if(c==='~'){this.text+='\u00a0';
+return;},cmdhexchar:function(A){this.hexStore.push(A);},cmderror:function(A){throw A.value;},parseText:function(c){if(c==='\\'){this.parserState=this.parseEscapes;}else if(c==='{'){this.emitStartGroup();}else if(c==='}'){this.emitEndGroup();}else if(c==='\x0A'||c==='\x0D'){}
+else{this.text+=c;}},parseEscapes:function(c){if(c==='\\'||c==='{'||c==='}'){this.text+=c;this.parserState=this.parseText;}else{this.parserState=this.parseControlSymbol;this.parseControlSymbol(c);}},parseControlSymbol:function(c){if(c==='~'){this.text+='\u00a0';
this.parserState=this.parseText}else if(c==='-'){this.text+='\u00ad';}else if(c==='_'){this.text+='\u2011';}else if(c==='*'){this.emitIgnorable();this.parserState=this.parseText;}else if(c==="'"){this.parserState=this.parseHexChar;}else if(c==='|'){this.emitFormula();
this.parserState=this.parseText;}else if(c===':'){this.emitIndexSubEntry();this.parserState=this.parseText;}else if(c==='\x0a'){this.emitEndParagraph();this.parserState=this.parseText;}else if(c==='\x0d'){this.emitEndParagraph();this.parserState=this.parseText;
}else{this.parserState=this.parseControlWord;this.parseControlWord(c);}},parseHexChar:function(c){if(/^[A-Fa-f0-9]$/.test(c)){this.hexChar+=c;if(this.hexChar.length>=2){this.emitHexChar();this.parserState=this.parseText;}return;}this.emitError("Invalid character \""+c+"\" in hex literal.");
this.parserState=this.parseText;},parseControlWord:function(c){if(c===' '){this.emitControlWord();this.parserState=this.parseText;}else if(/^[-\d]$/.test(c)){this.parserState=this.parseControlWordParam;this.controlWordParam+=c;}else if(/^[A-Za-z]$/.test(c)){this.controlWord+=c;
}else{this.emitControlWord();this.parserState=this.parseText;this.parseText(c);}},parseControlWordParam:function(c){if(/^\d$/.test(c)){this.controlWordParam+=c;}else if(c===' '){this.emitControlWord();this.parserState=this.parseText;}else{this.emitControlWord();
-this.parserState=this.parseText;this.parseText(c);}},emitText:function(){if(this.text===''){return;}this.push({type:'text',value:this.text,pos:this.cpos,row:this.row,col:this.col});this.text=''},emitControlWord:function(){this.emitText();if(this.controlWord===''){this.emitError('empty control word');
-}else{this.push({type:'controlword',value:this.controlWord,param:this.controlWordParam!==''&&Number(this.controlWordParam),pos:this.cpos,row:this.row,col:this.col});}this.controlWord='';this.controlWordParam='';},emitStartGroup:function(){this.emitText();
-this.push({type:'groupstart',pos:this.cpos,row:this.row,col:this.col});},emitEndGroup:function(){this.emitText();this.push({type:'groupend',pos:this.cpos,row:this.row,col:this.col});},emitIgnorable:function(){this.emitText();this.push({type:'ignorable',pos:this.cpos,row:this.row,col:this.col}
-);},emitHexChar:function(){this.emitText();this.push({type:'hexchar',value:this.hexChar,pos:this.cpos,row:this.row,col:this.col});this.hexChar=''},emitError:function(A){this.emitText();this.push({type:'error',value:A,row:this.row,col:this.col,char:this.cpos}
-);},emitEndParagraph:function(){this.emitText();this.push({type:'endparagraph',pos:this.cpos,row:this.row,col:this.col});}};
+this.parserState=this.parseText;this.parseText(c);}},emitText:function(){if(this.text===''){return;}this.push({type:'text',value:this.text,pos:this.cpos,row:this.row,col:this.col});this.text=''},emitControlWord:function(){this.emitText();if(this.controlWord===''){}
+else{this.push({type:'controlword',value:this.controlWord,param:this.controlWordParam!==''&&Number(this.controlWordParam),pos:this.cpos,row:this.row,col:this.col});}this.controlWord='';this.controlWordParam='';},emitStartGroup:function(){this.emitText();this.push({type:'groupstart',pos:this.cpos,row:this.row,col:this.col}
+);},emitEndGroup:function(){this.emitText();this.push({type:'groupend',pos:this.cpos,row:this.row,col:this.col});},emitIgnorable:function(){this.emitText();this.push({type:'ignorable',pos:this.cpos,row:this.row,col:this.col});},emitHexChar:function(){this.emitText();
+this.push({type:'hexchar',value:this.hexChar,pos:this.cpos,row:this.row,col:this.col});this.hexChar=''},emitError:function(A){this.emitText();this.push({type:'error',value:A,row:this.row,col:this.col,char:this.cpos});},emitEndParagraph:function(){this.emitText();
+this.push({type:'endparagraph',pos:this.cpos,row:this.row,col:this.col});}};
// Roo/htmleditor/namespace.js
Roo.htmleditor={};
// Roo/htmleditor/Filter.js
}if(A.hasAttribute("style")){var B=A.getAttribute("style").split(";");var C=[];Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");if(kv[0].match(/^\s*(width|min-width)\s*$/)){return;}C.push(s);});A.setAttribute("style",C.length?C.join(';'):'');
if(!C.length){A.removeAttribute('style');}}return true;}});
// Roo/htmleditor/FilterWord.js
-Roo.htmleditor.FilterWord=function(A){this.replaceDocBullets(A.node);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterWord,Roo.htmleditor.Filter,{tag:true,replaceTag:function(A){if(A.nodeName=='SPAN'&&!A.hasAttributes()&&A.childNodes.length==1&&A.firstChild.nodeName=="#text"){var B=A.firstChild;
+Roo.htmleditor.FilterWord=function(A){this.replaceDocBullets(A.node);};Roo.extend(Roo.htmleditor.FilterWord,Roo.htmleditor.Filter,{tag:true,replaceTag:function(A){if(A.nodeName=='SPAN'&&!A.hasAttributes()&&A.childNodes.length==1&&A.firstChild.nodeName=="#text"){var B=A.firstChild;
A.removeChild(B);if(A.getAttribute('lang')!='zh-CN'){A.parentNode.insertBefore(A.ownerDocument.createTextNode(" "),A);}A.parentNode.insertBefore(B,A);if(A.getAttribute('lang')!='zh-CN'){A.parentNode.insertBefore(A.ownerDocument.createTextNode(" "),A);}A.parentNode.removeChild(A);
return false;}if(A.tagName.toLowerCase().match(/^(style|script|applet|embed|noframes|noscript)$/)){A.parentNode.removeChild(A);return false;}if(A.tagName.toLowerCase().match(/^(meta|link|\\?xml:|st1:|o:|v:|font)/)){while(A.childNodes.length){var cn=A.childNodes[0];
A.removeChild(cn);A.parentNode.insertBefore(cn,A);if(cn.nodeType==1){this.replaceTag(cn);}}A.parentNode.removeChild(A);return false;}if(A.className.length){var cn=A.className.split(/\W+/);var C=[];Roo.each(cn,function(F){if(F.match(/Mso[a-zA-Z]+/)){return;
}C.push(F);});A.className=C.length?C.join(' '):'';if(!C.length){A.removeAttribute("class");}}if(A.hasAttribute("lang")){A.removeAttribute("lang");}if(A.hasAttribute("style")){var D=A.getAttribute("style").split(";");var E=[];Roo.each(D,function(s){if(!s.match(/:/)){return;
-}var kv=s.split(":");if(kv[0].match(/^(mso-|line|font|background|margin|padding|color)/)){return;}E.push(s);});A.setAttribute("style",E.length?E.join(';'):'');if(!E.length){A.removeAttribute('style');}}return true;},styleToObject:function(A){var B=A.getAttribute("style").split(";");
-var C={};Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");C[kv[0]]=kv[1];});return C;},replaceDocBullets:function(A){var B=A.getElementsByClassName('MsoListParagraph');while(B.length){this.replaceDocBullet(B.item(0));}},replaceDocBullet:function(p){var ns=p,A=p.parentNode,B=A.ownerDocument,C=[];
-while(ns){if(ns.nodeType!=1){ns=ns.nextSibling;continue;}if(!ns.className.match(/MsoListParagraph/i)){break;}C.push(ns);ns=ns.nextSibling;}var ul=A.ownerDocument.createElement('ul');A.insertBefore(ul,p);var D=0;var E=[ul];var F=false;C.forEach(function(n){A.removeChild(n);
-var G=n.getElementsByTagName('span');if(!G.length||!n.isEqualNode(G.item(0).parentNode)){return;}var H=this.styleToObject(n);if(typeof(H['mso-list'])=='undefined'){return;}n.removeChild(G.item(0));var I=(H['mso-list'].split(' ')[1].replace(/level/,'')*1)-1;
-if(I>D){var J=B.createElement('ul');F.appendChild(J);E[I]=J;}D=I;var K=E[I].appendChild(B.createElement('li'));F=K;while(n.firstChild){var fc=n.firstChild;n.removeChild(fc);K.appendChild(fc);}},this);}});
+}var kv=s.split(":");if(kv[0].match(/^(mso-|line|font|background|margin|padding|color)/)){return;}E.push(s);});A.setAttribute("style",E.length?E.join(';'):'');if(!E.length){A.removeAttribute('style');}}return true;},styleToObject:function(A){var B=(A.getAttribute("style")||'').split(";");
+var C={};Roo.each(B,function(s){if(!s.match(/:/)){return;}var kv=s.split(":");C[kv[0].trim()]=kv[1];});return C;},replaceDocBullets:function(A){var B=A.getElementsByClassName('ql-indent-1');while(B.length){this.replaceDocBullet(B.item(0));}var B=A.getElementsByClassName('MsoListParagraph');
+while(B.length){this.replaceDocBullet(B.item(0));}},replaceDocBullet:function(p){var ns=p,A=p.parentNode,B=A.ownerDocument,C=[];while(ns){if(ns.nodeType!=1){ns=ns.nextSibling;continue;}if(!ns.className.match(/(MsoListParagraph|ql-indent-1)/i)){break;}C.push(ns);
+ns=ns.nextSibling;}var ul=A.ownerDocument.createElement('ul');A.insertBefore(ul,p);var D=0;var E=[ul];var F=false;C.forEach(function(n,G){var H=n.getElementsByTagName('span');if(!H.length){A.removeChild(n);return;}var I={};for(var i=0;i<H.length;i++){I=this.styleToObject(H[i]);
+if(typeof(I['mso-list'])=='undefined'){continue;}H[i].parentNode.removeChild(H[i]);break;}I=this.styleToObject(n);if(typeof(I['mso-list'])=='undefined'){A.removeChild(n);return;}var J=(I['mso-list'].split(' ')[1].replace(/level/,'')*1)-1;if(J>D){var K=B.createElement('ul');
+F.appendChild(K);E[J]=K;}D=J;var L=E[J].appendChild(B.createElement('li'));F=L;L.innerHTML=n.innerHTML;A.removeChild(n);},this);}});
// Roo/htmleditor/FilterStyleToTag.js
Roo.htmleditor.FilterStyleToTag=function(A){this.tags={B:['fontWeight','bold'],I:['fontStyle','italic'],SUP:['verticalAlign','super'],SUB:['verticalAlign','sub']};Roo.apply(this,A);this.walk(A.node);};Roo.extend(Roo.htmleditor.FilterStyleToTag,Roo.htmleditor.Filter,{tag:true,tags:false,replaceTag:function(A){if(A.getAttribute("style")===null){return true;
}var B=[];for(var k in this.tags){if(A.style[this.tags[k][0]]==this.tags[k][1]){B.push(k);A.style.removeProperty(this.tags[k][0]);}}if(!B.length){return true;}var cn=Array.from(A.childNodes);var nn=A;Roo.each(B,function(t){var nc=A.ownerDocument.createElement(t);
}var K=this.indentstr;if(!this.in_pre){if(G){if(A=='BR'){this.addLine();}else if(this.lastElementEndsWS()){this.addLine();}else{K='';}}else{this.addLine();}}else{K='';}this.html.push(K+'<',A.toLowerCase());if(B){for(i=0,l=B.length;i<l;i++){E=B[i];this.html.push(' ',E.name,'="',this.encode(E.value,true),'"');
}}if(C){if(I){this.html[this.html.length]='/>';}else{this.html[this.html.length]='></'+A.toLowerCase()+'>';}var L=A=='BR'?false:this.in_inline;if(!L&&!this.in_pre){this.addLine();}return;}this.html[this.html.length]='>';this.pushState({indentstr:H?'':(this.indentstr+this.indent),in_pre:H,in_inline:G}
);if(!G&&!H){this.addLine();}},lastElementEndsWS:function(){var A=this.html.length>0?this.html[this.html.length-1]:false;if(A===false){return true;}return A.match(/\s+$/);},end:function(A){var B;this.popState();var C='';var D=this.in_inline||Roo.htmleditor.TidyWriter.inline_elements.indexOf(A)>-1;
-if(!this.in_pre&&!D){this.addLine();C=this.indentstr;}this.html.push(C+'</',A.toLowerCase(),'>');this.last_inline=D;},text:function(A,B){if(A.length<1){return;}if(this.in_pre){this.html[this.html.length]=A;return;}if(this.in_inline){A=A.replace(/\s+/g,' ');
-if(A!=' '){A=A.replace(/\s+/,' ');if(B.nextSibling&&B.nextSibling.nodeType==1&&B.nextSibling.nodeName=='BR'){A=A.replace(/\s+$/g,'');}if(B.previousSibling&&B.previousSibling.nodeType==1&&B.previousSibling.nodeName=='BR'){A=this.indentstr+A.replace(/^\s+/g,'');
-}if(A.match(/\n/)){A=A.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);A=A.replace(/\n\s+$/,'');}}this.html[this.html.length]=A;return;}var C=this.indentstr;A=A.replace(/\s+/g," ");if(B.previousSibling&&B.previousSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.previousSibling.nodeName)>-1){C='';
-}else{this.addLine();A=A.replace(/^\s+/,'');}if(B.nextSibling&&B.nextSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.nextSibling.nodeName)>-1){}else{A=A.replace(/\s+$/,'');}if(A.length<1){return;}if(!A.match(/\n/)){this.html.push(C+A);
-return;}A=this.indentstr+A.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);A=A.replace(/\s+$/,'');this.html.push(A);},cdata:function(A){this.html.push('<![CDATA[',A,']]>');},comment:function(A){this.html.push('<!--',A,'-->');},pi:function(A,B){B?this.html.push('<?',A,' ',this.encode(B),'?>'):this.html.push('<?',A,'?>');
+if(!this.in_pre&&!D){this.addLine();C=this.indentstr;}this.html.push(C+'</',A.toLowerCase(),'>');this.last_inline=D;},text:function(A,B){if(A.length<1){return;}var C=new XMLSerializer().serializeToString(document.createTextNode(A));if(this.in_pre){this.html[this.html.length]=C;
+return;}if(this.in_inline){C=C.replace(/\s+/g,' ');if(C!=' '){C=C.replace(/\s+/,' ');if(B.nextSibling&&B.nextSibling.nodeType==1&&B.nextSibling.nodeName=='BR'){C=C.replace(/\s+$/g,'');}if(B.previousSibling&&B.previousSibling.nodeType==1&&B.previousSibling.nodeName=='BR'){C=this.indentstr+C.replace(/^\s+/g,'');
+}if(C.match(/\n/)){C=C.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);C=C.replace(/\n\s+$/,'');}}this.html[this.html.length]=C;return;}var D=this.indentstr;C=C.replace(/\s+/g," ");if(B.previousSibling&&B.previousSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.previousSibling.nodeName)>-1){D='';
+}else{this.addLine();C=C.replace(/^\s+/,'');}if(B.nextSibling&&B.nextSibling.nodeType==1&&Roo.htmleditor.TidyWriter.inline_elements.indexOf(B.nextSibling.nodeName)>-1){}else{C=C.replace(/\s+$/,'');}if(C.length<1){return;}if(!C.match(/\n/)){this.html.push(D+C);
+return;}C=this.indentstr+C.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,'$1\n'+this.indentstr);C=C.replace(/\s+$/,'');this.html.push(C);},cdata:function(A){this.html.push('<![CDATA[',A,']]>');},comment:function(A){this.html.push('<!--',A,'-->');},pi:function(A,B){B?this.html.push('<?',A,' ',this.encode(B),'?>'):this.html.push('<?',A,'?>');
this.indent!=''&&this.html.push('\n');},doctype:function(A){this.html.push('<!DOCTYPE',A,'>',this.indent!=''?'\n':'');},reset:function(){this.html.length=0;this.state=[];this.pushState({indentstr:'',in_pre:false,in_inline:false})},getContent:function(){return this.html.join('').replace(/\n$/,'');
},pushState:function(A){this.state.push(A);Roo.apply(this,A);},popState:function(){if(this.state.length<1){return;}var A={in_pre:false,indentstr:''};this.state.pop();if(this.state.length>0){A=this.state[this.state.length-1];}Roo.apply(this,A);},addLine:function(){if(this.html.length<1){return;
}var A=this.html[this.html.length-1];if(A.length>0&&'\n'!==A){this.html.push('\n');}}};Roo.htmleditor.TidyWriter.inline_elements=['SPAN','STRONG','B','EM','I','FONT','STRIKE','U','VAR','CITE','DFN','CODE','MARK','Q','SUP','SUB','SAMP','A'];Roo.htmleditor.TidyWriter.shortend_elements=['AREA','BASE','BASEFONT','BR','COL','FRAME','HR','IMG','INPUT','ISINDEX','LINK','','META','PARAM','EMBED','SOURCE','WBR','TRACK'];
}if(this.labelAlign=='top'){this.labelStyle="width:auto;";this.elementStyle="padding-left:0;";}}var C=this.stack;var D=C.length;if(D>0){if(!this.fieldTpl){var t=new Roo.Template('<div class="x-form-item {5}">','<label for="{0}" style="{2}">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div>','</div><div class="x-form-clear-left"></div>');
t.disableFormats=true;t.compile();Roo.form.Layout.prototype.fieldTpl=t;}for(var i=0;i<D;i++){if(C[i].isFormField){this.renderField(C[i]);}else{this.renderComponent(C[i]);}}}if(this.clear){this.el.createChild({cls:'x-form-clear'});}},renderField:function(f){f.fieldEl=Roo.get(this.fieldTpl.append(this.el,[f.id,f.fieldLabel,f.labelStyle||this.labelStyle||'',this.elementStyle||'',typeof f.labelSeparator=='undefined'?this.labelSeparator:f.labelSeparator,f.itemCls||this.itemCls||''],true).getPrevSibling());
},renderComponent:function(c){c.render(c.isLayout?this.el:this.el.createChild());},addxtype:function(o){o.form=this.form;var fe=Roo.factory(o,Roo.form);this.form.allItems.push(fe);this.stack.push(fe);if(fe.isFormField){this.form.items.add(fe);}return fe;}
-});Roo.form.Column=function(A){Roo.form.Column.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Column,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-column'},onRender:function(ct,A){Roo.form.Column.superclass.onRender.call(this,ct,A);
-if(this.width){this.el.setWidth(this.width);}}});Roo.form.Row=function(A){Roo.form.Row.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Row,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-row'},padWidth:20,onRender:function(ct,A){if(!this.rowTpl){var t=new Roo.Template('<div class="x-form-item {5}" style="float:left;width:{6}px">','<label for="{0}" style="{2}">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div>','</div>');
+});
+// Roo/form/Column.js
+Roo.form.Column=function(A){Roo.form.Column.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Column,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-column'},onRender:function(ct,A){Roo.form.Column.superclass.onRender.call(this,ct,A);
+if(this.width){this.el.setWidth(this.width);}}});
+// Roo/form/Row.js
+Roo.form.Row=function(A){Roo.form.Row.superclass.constructor.call(this,A);};Roo.extend(Roo.form.Row,Roo.form.Layout,{defaultAutoCreate:{tag:'div',cls:'x-form-ct x-form-row'},padWidth:20,onRender:function(ct,A){if(!this.rowTpl){var t=new Roo.Template('<div class="x-form-item {5}" style="float:left;width:{6}px">','<label for="{0}" style="{2}">{1}{4}</label>','<div class="x-form-element" id="x-form-el-{0}" style="{3}">','</div>','</div>');
t.disableFormats=true;t.compile();Roo.form.Layout.prototype.rowTpl=t;}this.fieldTpl=this.rowTpl;var B=100;if((this.labelAlign!='top')){if(typeof this.labelWidth=='number'){B=this.labelWidth}this.padWidth=20+B;}Roo.form.Column.superclass.onRender.call(this,ct,A);
if(this.width){this.el.setWidth(this.width);}if(this.height){this.el.setHeight(this.height);}},renderField:function(f){f.fieldEl=this.fieldTpl.append(this.el,[f.id,f.fieldLabel,f.labelStyle||this.labelStyle||'',this.elementStyle||'',typeof f.labelSeparator=='undefined'?this.labelSeparator:f.labelSeparator,f.itemCls||this.itemCls||'',f.width?f.width+this.padWidth:160+this.padWidth],true);
-}});Roo.form.FieldSet=function(A){Roo.form.FieldSet.superclass.constructor.call(this,A);};Roo.extend(Roo.form.FieldSet,Roo.form.Layout,{defaultAutoCreate:{tag:'fieldset',cn:{tag:'legend'}},onRender:function(ct,A){Roo.form.FieldSet.superclass.onRender.call(this,ct,A);
+}});
+// Roo/form/FieldSet.js
+Roo.form.FieldSet=function(A){Roo.form.FieldSet.superclass.constructor.call(this,A);};Roo.extend(Roo.form.FieldSet,Roo.form.Layout,{defaultAutoCreate:{tag:'fieldset',cn:{tag:'legend'}},onRender:function(ct,A){Roo.form.FieldSet.superclass.onRender.call(this,ct,A);
if(this.legend){this.setLegend(this.legend);}},setLegend:function(A){if(this.rendered){this.el.child('legend').update(A);}}});
// Roo/form/VTypes.js
Roo.form.VTypes=function(){var A=/^[a-zA-Z_]+$/;var B=/^[a-zA-Z0-9_]+$/;var C=/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,24}$/;var D=/(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i;return {'email':function(v){return C.test(v);