5 summary : function (data)
8 output = this.resolveLinks(data.desc) ;
9 if (data.example.length) {
10 output += '<pre class="code">'+data.example+'</pre>';
17 augments : function(data)
19 if (!data.augments.length) {
22 var linkSymbol = this.linkSymbol;
23 var output = '<div class="inheritance res-block"> <pre class="res-block-inner">';
25 var iblock_indent = 0;
26 data.augments.reverse().map(
28 output += iblock_indent ? ('<img src="../images/default/s.gif" height="1" width="' +
29 iblock_indent + '"/><img src="../images/default/tree/elbow-end.gif" class="elbow"/>') : '';
30 output += linkSymbol($) + "\n";
35 return output + '<img src="../images/default/s.gif" height="1" width="' + iblock_indent +'"/>' +
36 '<img class="elbow" src="../images/default/tree/elbow-end.gif"/>'+data.name+
42 implementors : function(data)
44 if (!data.childClasses || typeof(data.childClasses[data.name]) == 'undefined') {
47 var linkSymbol = this.linkSymbol;
48 //var linkSymbol = this.linkSymbol;
49 var output = '<ul class="inheritance res-block"> ';
51 var iterArray = function(ar) {
52 for(var i = 0; i < ar.length; i++) {
53 output += '<li>' +linkSymbol(ar[i]) ; // a href...
54 if (typeof(data.childClasses[ar[i]]) != 'undefined') {
56 iterArray(data.childClasses[ar[i]]);
64 iterArray(data.childClasses[data.name]);
66 return output + '</ul>'
70 doc_children : function(data)
72 if (!data.tree_children || typeof(data.tree_children) {
75 var linkSymbol = this.linkSymbol;
76 //var linkSymbol = this.linkSymbol;
77 var output = '<ul class="inheritance res-block"> ';
79 var iterArray = function(ar) {
80 for(var i = 0; i < ar.length; i++) {
81 output += '<li>' +linkSymbol(ar[i]) ; // a href...
82 if (typeof(data.childClasses[ar[i]]) != 'undefined') {
84 iterArray(data.childClasses[ar[i]]);
92 iterArray(data.childClasses[data.name]);
94 return output + '</ul>'
99 config : function(dtag)
102 var output = '<a name="'+dtag.memberOf+'-cfg-'+dtag.name+'"></a>';
103 output += '<div class="fixedFont"><b class="itemname"> ' + dtag.name + '</b> : ' +
104 (dtag.type.length ? this.linkSymbol(dtag.type) : "" ) + '</div>';
106 output += '<div class="mdesc"><div class="short">'+this.resolveLinks(this.summarize(dtag.desc))+'</div></div>';
108 output += '<div class="mdesc"><div class="long">' + this.resolveLinks(dtag.desc)+ ' ' +
109 (dtag.values && dtag.values.length ? ("<BR/>Possible Values: " +
110 dtag.values.map(function(v) {
111 return v.length ? v : "<B>Empty</B>";
114 Roo.log(JSON.stringify(output));
118 methodsSort : function(data)
124 if (data.name.length &&
130 data.isInherited = false;
131 data.isConstructor = true;
132 ownMethods.push(data); // should push ctor???
135 var msorted = data.methods.sort(this.makeSortby("name"));
145 if (data.isSingleton) {
147 if ($.isStatic && $.memberOf != data.name) { // it's a singleton - can not inherit static methods.
151 $.isInherited = ($.memberOf != data.name);
157 if (($.memberOf != data.name) && $.isStatic){
161 $.isInherited = ($.memberOf != data.name);
173 //if (/@hide/.test($.desc)) {
176 // it's a signleton class - can not have dynamic methods..
177 if (data.isSingleton) {
180 if (($.memberOf != data.name) && $.isStatic){
184 $.isInherited = ($.memberOf != data.alias);
197 method : function(member) {
199 var output = '<a name="' + member.memberOf +'.' + member.name + '"></a>' +
200 '<div class="fixedFont"> <span class="attributes">';
202 if (member.isConstructor) {
206 if (member.isPrivate) output += "<private> ";
207 if (member.isInner) output += "<inner> ";
208 if (member.isStatic || member.isSingleton) { //|| data.comment.getTag("instanceOf").length) {
209 output += member.memberOf + ".";
212 output += '</span><b class="itemname">' + member.name + '</b>';
214 output += this.makeSignature(member.params);
215 if (member.returns && member.returns.length) {
217 for(var i = 0;i< member.returns.length;i++) {
218 var item = member.returns[i];
219 output += (i > 0 ? ' or ' : '') +
220 this.linkSymbol(item.type);
225 output += '</div> <div class="mdesc">';
226 if (!member.isConstructor) {
227 output+= '<div class="short">'+this.resolveLinks(this.summarize(member.desc)) +'</div>';
230 output+= '<div class="short">Create a new '+member.memberOf +'</div>';
232 output +='<div class="long">';
233 if (!member.isConstructor) {
234 output+= this.resolveLinks(member.desc) ;
235 if (member.example.length) {
236 output += '<pre class="code">'+member.example+'</pre>';
240 output+= 'Create a new '+member.memberOf;
241 // example and desc.. are normally on the 'top'...
243 if (member.params.length) {
246 output+= '<dl class="detailList"> <dt class="heading">Parameters:</dt>';
247 for(var i = 0; i < member.params.length ; i++) {
248 var item = member.params[i];
251 '<span class="fixedFont">' + this.linkSymbol(item.type) + '</span> ' :
253 )+ '<b>'+item.name+'</b>';
254 if (item.isOptional) {
255 output+='<i>Optional ';
256 if (item.defaultValue.length) {
257 output+='Default: '+item.defaultValue;
261 output +='</dt><dd>'+this.resolveLinks(item.desc)+'</dd>';
265 if (member.isDeprecated || (member.deprecated && member.deprecated.length)) {
266 output+= '<dl class="detailList"><dt class="heading">Deprecated:</dt><dt>' +
267 +member.deprecated+'</dt></dl>';
271 if (member.since && member.since.length) {
272 output+= '<dl class="detailList"><dt class="heading">Since:</dt><dt>' +
273 +member.since+'</dt></dl>';
276 <if test="member.exceptions.length">
277 <dl class="detailList">
278 <dt class="heading">Throws:</dt>
279 <for each="item" in="member.exceptions">
281 {+((item.type)?"<span class=\"fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
283 <dd>{+resolveLinks(item.desc)+}</dd>
288 if (member.returns && member.returns.length) {
289 output += '<dl class="detailList"><dt class="heading">Returns:</dt>';
290 for (var i =0; i < member.returns.length; i++) {
291 var item = member.returns[i];
292 output+= '<dd>' + this.linkSymbol( item.type ) + ' ' + this.resolveLinks(item.desc) + '</dd></dl>';
298 <if test="member.requires.length">
299 <dl class="detailList">
300 <dt class="heading">Requires:</dt>
301 <for each="item" in="member.requires">
302 <dd>{+ resolveLinks(item) +}</dd>
307 if (member.see && member.see.length) {
308 output+= '<dl class="detailList"><dt class="heading">See:</dt><dt>' +
309 '<dd>' + this.linkSymbol( member.see ) +'</dd></dl>';
311 output +='</div></div>';
317 event : function(member)
321 var output = '<a name="' + member.memberOf +'-event-' + member.name + '"></a>' +
322 '<div class="fixedFont"> ';
325 output += '<b class="itemname">'+member.name+'</b>' +this.makeSignature(member.params) + '</div>';
327 output += '<div class="mdesc">';
328 output += '<div class="short">' +this.resolveLinks(this.summarize(member.desc))+ '</div>';
331 output += '<div class="long">' + this.resolveLinks(member.desc);
333 if (member.example.length) {
334 output +='<pre class="code">'+member.example+'</pre>';
336 if (member.params.length) {
339 output+= '<dl class="detailList"> <dt class="heading">Parameters:</dt>';
340 for(var i = 0; i < member.params.length ; i++) {
341 var item = member.params[i];
344 '<span class="fixedFont">' + this.linkSymbol(item.type) + '</span> ' :
346 )+ '<b>'+item.name+'</b>';
347 if (item.isOptional) {
348 output+='<i>Optional ';
349 if (item.defaultValue.length) {
350 output+='Default: '+item.defaultValue;
354 output +='</dt><dd>'+this.resolveLinks(item.desc)+'</dd>';
358 if ((member.deprecated && member.deprecated.length) || member.isDeprecated) {
359 output+= '<dl class="detailList"><dt class="heading">Deprecated:</dt><dt>' +
360 +member.deprecated+'</dt></dl>';
364 if (member.since && member.since.length) {
365 output+= '<dl class="detailList"><dt class="heading">Since:</dt><dt>' +
366 +member.since+'</dt></dl>';
369 <if test="member.exceptions.length">
370 <dl class="detailList">
371 <dt class="heading">Throws:</dt>
372 <for each="item" in="member.exceptions">
374 {+((item.type)?"<span class=\"fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
376 <dd>{+resolveLinks(item.desc)+}</dd>
381 if (member.returns && member.returns.length) {
382 output += '<dl class="detailList"><dt class="heading">Returns:</dt>';
383 for (var i =0; i < member.returns.length; i++) {
384 var item = member.returns[i];
385 output+= '<dd>' + this.linkSymbol( item.type ) + ' ' + this.resolveLinks(item.desc) + '</dd></dl>';
391 <if test="member.requires.length">
392 <dl class="detailList">
393 <dt class="heading">Requires:</dt>
394 <for each="item" in="member.requires">
395 <dd>{+ resolveLinks(item) +}</dd>
400 if (member.see && member.see.length) {
401 output+= '<dl class="detailList"><dt class="heading">See:</dt><dt>' +
402 '<dd>' + this.linkSymbol( member.see ) +'</dd></dl>';
404 output +='</div></div>';
418 makeSignature : function(params)
421 if (!params.length) return "()";
422 var linkSymbol = this.linkSymbol;
423 var signature = " (" +
426 return $.name.indexOf(".") == -1; // don't show config params in signature
430 $.defaultValue = typeof($.defaultValue) == 'undefined' ? false : $.defaultValue;
433 ($.isOptional ? "[" : "") +
436 (typeof($.type) == 'object' ) ? 'Function' : $.type
439 "<B><i>" +$.name + "</i></B>" +
440 ($.defaultValue ? "=" +item.defaultValue : "") +
441 ($.isOptional ? "]" : "");
451 resolveLinks : function(str)
453 if (!str || typeof(str) == 'undefined') {
457 // gtk specific. now..
458 // @ -> bold.. - they are arguments..
460 str = str.replace(/@([a-z_]+)/gi,
461 function(match, symbolName) {
462 return '<b>' + symbolName + '</b>';
466 str = str.replace(/%([a-z_]+)/gi,
467 function(match, symbolName) {
468 return '<b>' + symbolName + '</b>';
472 str = str.replace(/#([a-z_]+)/gi,
473 function(match, symbolName) {
474 return '<b>' + symbolName + '</b>';
475 // this should do a lookup!!!!
476 /// it could use data in the signature to find out..
477 //return new Link().toSymbol(Template.data.ns + '.' + symbolName);
481 //Roo.log(JSON.stringify(str));
482 str = str.replace(/[ \t]+\n/gi, '\n');
483 str = str.replace(/\n\n+/gi, '<br/><br/>');
484 //str = str.replace(/\n/gi, '<br/>');
485 var linkSymbol = this.linkSymbol;
486 str = str.replace(/\{@link ([^} ]+) ?\}/gi,
487 function(match, symbolName) {
488 return linkSymbol(symbolName);
494 summarize : function(desc)
496 if (typeof desc != "undefined") {
497 // finds the first fulls stop... (and we remove '<' html...)
498 return desc.match(/([\w\W]+?[\.|:])[^a-z0-9]/i)?
499 RegExp.$1.split('<')[0].replace("\n", " ") : desc.split("\n")[0];
503 linkSymbol : function(str)
506 var ar = str.split('<');
508 for(var i = ar.length-1; i > -1; i--) {
509 var bit = ar[i].split('>').shift();
511 out = '<' + out + '>';
513 out = '<span class=\"fixedFont\"><a href="#' + bit+ '">' + bit + '</a>' + out + '</span>';
518 makeSortby : function(attribute) {
519 return function(a, b) {
520 if (a[attribute] != undefined && b[attribute] != undefined) {
521 a = a[attribute]; //.toLowerCase();
522 b = b[attribute];//.toLowerCase();
523 if (a < b) return -1;