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 config : function(dtag)
45 var output = '<a name="'+dtag.memberOf+'-cfg-'+dtag.name+'"></a>';
46 output += '<div class="fixedFont"><b class="itemname"> ' + dtag.name + '</b> : ' +
47 (dtag.type.length ? this.linkSymbol(dtag.type) : "" ) + '</div>';
49 output += '<div class="mdesc"><div class="short">'+this.resolveLinks(this.summarize(dtag.desc))+'</div></div>';
51 output += '<div class="mdesc"><div class="long">' + this.resolveLinks(dtag.desc)+ ' ' +
52 (dtag.values.length ? ("<BR/>Possible Values: " +
53 dtag.values.map(function(v) {
54 return v.length ? v : "<B>Empty</B>";
57 Roo.log(JSON.stringify(output));
61 methodsSort : function(data)
67 if (data.name.length &&
72 data.isInherited = false;
73 data.isConstructor = true;
74 ownMethods.push(data); // should push ctor???
77 var msorted = data.methods.sort(this.makeSortby("name"));
84 //if (/@hide/.test($.desc)) { == not needed - done in the backend
88 //if (!$.isEvent && (data.comment.getTag("instanceOf").length || data.comment.getTag("singleton").length)) {
90 // not sure if we should just ignore signletons???
91 //if (!data.isSingleton) {
97 if (data.isSingleton) {
99 if ($.isStatic && $.memberOf != data.name) { // it's a singleton - can not inherit static methods.
103 $.isInherited = ($.memberOf != data.name);
109 if (($.memberOf != data.name) && $.isStatic){
113 $.isInherited = ($.memberOf != data.name);
125 //if (/@hide/.test($.desc)) {
128 // it's a signleton class - can not have dynamic methods..
129 if (data.isSingleton) {
132 if (($.memberOf != data.name) && $.isStatic){
136 $.isInherited = ($.memberOf != data.alias);
149 method : function(member) {
151 var output = '<a name="' + member.memberOf +'.' + member.name + '"></a>' +
152 '<div class="fixedFont"> <span class="attributes">';
154 if (member.isConstructor) {
158 if (member.isPrivate) output += "<private> ";
159 if (member.isInner) output += "<inner> ";
160 if (member.isStatic || member.isSingleton) { //|| data.comment.getTag("instanceOf").length) {
161 output += member.memberOf + ".";
164 output += '</span><b class="itemname">' + member.name + '</b>';
166 output += this.makeSignature(member.params);
167 if (member.returns.length) {
169 for(var i = 0;i< member.returns.length;i++) {
170 var item = member.returns[i];
171 output += (i > 0 ? ' or ' : '') +
172 this.linkSymbol(item.type);
177 output += '</div> <div class="mdesc">';
178 if (!member.isConstructor) {
179 output+= '<div class="short">'+this.resolveLinks(this.summarize(member.desc)) +'</div>';
182 output+= '<div class="short">Create a new '+member.memberOf +'</div>';
184 output +='<div class="long">';
185 if (!member.isConstructor) {
186 output+= this.resolveLinks(member.desc) ;
187 if (member.example.length) {
188 output += '<pre class="code">'+member.example+'</pre>';
192 output+= 'Create a new '+member.memberOf;
193 // example and desc.. are normally on the 'top'...
195 if (member.params.length) {
198 output+= '<dl class="detailList"> <dt class="heading">Parameters:</dt>';
199 for(var i = 0; i < member.params.length ; i++) {
200 var item = member.params[i];
203 '<span class="fixedFont">' + this.linkSymbol(item.type) + '</span> ' :
205 )+ '<b>'+item.name+'</b>';
206 if (item.isOptional) {
207 output+='<i>Optional ';
208 if (item.defaultValue.length) {
209 output+='Default: '+item.defaultValue;
213 output +='</dt><dd>'+this.resolveLinks(item.desc)+'</dd>';
217 if (member.deprecated.length) {
218 output+= '<dl class="detailList"><dt class="heading">Deprecated:</dt><dt>' +
219 +member.deprecated+'</dt></dl>';
223 if (member.since.length) {
224 output+= '<dl class="detailList"><dt class="heading">Since:</dt><dt>' +
225 +member.since+'</dt></dl>';
228 <if test="member.exceptions.length">
229 <dl class="detailList">
230 <dt class="heading">Throws:</dt>
231 <for each="item" in="member.exceptions">
233 {+((item.type)?"<span class=\"fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
235 <dd>{+resolveLinks(item.desc)+}</dd>
240 if (member.returns.length) {
241 output += '<dl class="detailList"><dt class="heading">Returns:</dt>';
242 for (var i =0; i < member.returns.length; i++) {
243 var item = member.returns[i];
244 output+= '<dd>' + this.linkSymbol( item.type ) + ' ' + this.resolveLinks(item.desc) + '</dd></dl>';
250 <if test="member.requires.length">
251 <dl class="detailList">
252 <dt class="heading">Requires:</dt>
253 <for each="item" in="member.requires">
254 <dd>{+ resolveLinks(item) +}</dd>
259 if (member.see.length) {
260 output+= '<dl class="detailList"><dt class="heading">See:</dt><dt>' +
261 '<dd>' + this.linkSymbol( member.see ) +'</dd></dl>';
263 output +='</div></div>';
269 event : function(member)
273 var output = '<a name="' + member.memberOf +'-event-' + member.name + '"></a>' +
274 '<div class="fixedFont"> ';
277 output += '<b class="itemname">'+member.name+'</b>' +this.makeSignature(member.params) + '</div>';
279 output += '<div class="mdesc">';
280 output += '<div class="short">' +this.resolveLinks(this.summarize(member.desc))+ '</div>';
283 output += '<div class="long">' + this.resolveLinks(member.desc);
285 if (member.example.length) {
286 output +='<pre class="code">'+member.example+'</pre>';
288 if (member.params.length) {
291 output+= '<dl class="detailList"> <dt class="heading">Parameters:</dt>';
292 for(var i = 0; i < member.params.length ; i++) {
293 var item = member.params[i];
296 '<span class="fixedFont">' + this.linkSymbol(item.type) + '</span> ' :
298 )+ '<b>'+item.name+'</b>';
299 if (item.isOptional) {
300 output+='<i>Optional ';
301 if (item.defaultValue.length) {
302 output+='Default: '+item.defaultValue;
306 output +='</dt><dd>'+this.resolveLinks(item.desc)+'</dd>';
310 if (member.deprecated.length) {
311 output+= '<dl class="detailList"><dt class="heading">Deprecated:</dt><dt>' +
312 +member.deprecated+'</dt></dl>';
316 if (member.since.length) {
317 output+= '<dl class="detailList"><dt class="heading">Since:</dt><dt>' +
318 +member.since+'</dt></dl>';
321 <if test="member.exceptions.length">
322 <dl class="detailList">
323 <dt class="heading">Throws:</dt>
324 <for each="item" in="member.exceptions">
326 {+((item.type)?"<span class=\"fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
328 <dd>{+resolveLinks(item.desc)+}</dd>
333 if (member.returns.length) {
334 output += '<dl class="detailList"><dt class="heading">Returns:</dt>';
335 for (var i =0; i < member.returns.length; i++) {
336 var item = member.returns[i];
337 output+= '<dd>' + this.linkSymbol( item.type ) + ' ' + this.resolveLinks(item.desc) + '</dd></dl>';
343 <if test="member.requires.length">
344 <dl class="detailList">
345 <dt class="heading">Requires:</dt>
346 <for each="item" in="member.requires">
347 <dd>{+ resolveLinks(item) +}</dd>
352 if (member.see.length) {
353 output+= '<dl class="detailList"><dt class="heading">See:</dt><dt>' +
354 '<dd>' + this.linkSymbol( member.see ) +'</dd></dl>';
356 output +='</div></div>';
370 makeSignature : function(params)
373 if (!params.length) return "()";
374 var linkSymbol = this.linkSymbol;
375 var signature = " (" +
378 return $.name.indexOf(".") == -1; // don't show config params in signature
382 $.defaultValue = typeof($.defaultValue) == 'undefined' ? false : $.defaultValue;
385 ($.isOptional ? "[" : "") +
388 (typeof($.type) == 'object' ) ? 'Function' : $.type
391 "<B><i>" +$.name + "</i></B>" +
392 ($.defaultValue ? "=" +item.defaultValue : "") +
393 ($.isOptional ? "]" : "");
403 resolveLinks : function(str)
405 if (!str || typeof(str) == 'undefined') {
409 // gtk specific. now..
410 // @ -> bold.. - they are arguments..
412 str = str.replace(/@([a-z_]+)/gi,
413 function(match, symbolName) {
414 return '<b>' + symbolName + '</b>';
418 str = str.replace(/%([a-z_]+)/gi,
419 function(match, symbolName) {
420 return '<b>' + symbolName + '</b>';
424 str = str.replace(/#([a-z_]+)/gi,
425 function(match, symbolName) {
426 return '<b>' + symbolName + '</b>';
427 // this should do a lookup!!!!
428 /// it could use data in the signature to find out..
429 //return new Link().toSymbol(Template.data.ns + '.' + symbolName);
433 //Roo.log(JSON.stringify(str));
434 str = str.replace(/[ \t]+\n/gi, '\n');
435 str = str.replace(/\n\n+/gi, '<br/><br/>');
436 //str = str.replace(/\n/gi, '<br/>');
437 var linkSymbol = this.linkSymbol;
438 str = str.replace(/\{@link ([^} ]+) ?\}/gi,
439 function(match, symbolName) {
440 return linkSymbol(symbolName);
446 summarize : function(desc)
448 if (typeof desc != "undefined") {
449 // finds the first fulls stop... (and we remove '<' html...)
450 return desc.match(/([\w\W]+?[\.|:])[^a-z0-9]/i)?
451 RegExp.$1.split('<')[0].replace("\n", " ") : desc.split("\n")[0];
455 linkSymbol : function(str)
457 return '<span class=\"fixedFont\"><a href="#' + str + '">' + str + '</a></span>';
459 makeSortby : function(attribute) {
460 return function(a, b) {
461 if (a[attribute] != undefined && b[attribute] != undefined) {
462 a = a[attribute]; //.toLowerCase();
463 b = b[attribute];//.toLowerCase();
464 if (a < b) return -1;