From: Jan T. <de...@us...> - 2002-02-05 23:08:14
|
Update of /cvsroot/net-script/netscript2/src/tools/IPdoc In directory usw-pr-cvs1:/tmp/cvs-serv17562 Modified Files: NSDoclet.pm Log Message: * made look javadoc-like * fixed (???) infinite loop Index: NSDoclet.pm =================================================================== RCS file: /cvsroot/net-script/netscript2/src/tools/IPdoc/NSDoclet.pm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NSDoclet.pm 2002/02/05 00:30:37 1.1 --- NSDoclet.pm 2002/02/05 23:08:10 1.2 *************** *** 44,48 **** sub renderHead { my ($this, $title) = @_; ! "<html><head><title>$title</title></head><body>"; } --- 44,48 ---- sub renderHead { my ($this, $title) = @_; ! "<html><head><title>$title</title></head><body bgcolor=\"#ffffff\">"; } *************** *** 71,77 **** --- 71,82 ---- my @classlist = (); my $parent = $class -> parent();; + my %theClasses = (); + while (defined($parent)) { + last if $theClasses{$parent -> name()}; unshift(@classlist, $parent); + $theClasses{$parent ->name()} = $parent ->name(); $parent = $parent -> parent(); + } push (@classlist, $class); *************** *** 83,89 **** $result .= " " x $indent; $result .="|___+- "; ! $result .="<a href=\"".$parent -> relativeFileName()."\">" if $parent -> relativeFileName(); $result .= $parent -> name(); ! $result .= "</a>" if $parent -> relativeFileName(); $result .= "\n"; $indent += 4; --- 88,94 ---- $result .= " " x $indent; $result .="|___+- "; ! $result .="<a href=\"".$class -> relativeFileName().$parent->fullFileName()."\">" if $parent -> fullFileName(); $result .= $parent -> name(); ! $result .= "</a>" if $parent -> fullFileName(); $result .= "\n"; $indent += 4; *************** *** 98,101 **** --- 103,119 ---- } $result .= "<h1>Class $classname</h1><small>extends $parentName</small><br><br>"; + + my @subclasses = @{$class -> subClasses()}; + + $result .= "<b>Direct known subclasses: </b>" if scalar @subclasses; + for (@subclasses) { + my $scName = $_ -> name(); + my $scHref = $class -> relativeFileName() . $_ -> fullFileName(); + $result .= "<a href=\"$scHref\">$scName</a>, "; + } + # remove trailing comma + $result =~ s/, $//; + + $result .= "<br><br>"; $result .= $class -> comment() ."<br><br>"; $result .= "<br><br>". $this -> renderParams($class -> params()); *************** *** 176,183 **** $result; } - ! --- 194,273 ---- $result; } ! #/** ! # Renders a package information for the given package. This is plainly ! # a list of all classes in this package. ! # @param a list reference containing all known classes ! # @param the package name for which the information should be rendered ! # @return the rendered string ! #*/ ! sub renderPackage { ! my ($this, $listRef, $packageName) = @_; ! my @list = @{$listRef}; ! ! my $result = "<html><body bgcolor=\"#ffffff\"><h3>$packageName</h3>"; ! for (@list) { ! my $href = $_ -> fullFileName(); ! my $name = $_ -> name(); ! my $regex = '^'.$packageName.'::[^:]+$'; ! if ($name =~ /$regex/) { ! $regex = $packageName."::"; ! $name =~ s/$regex//; ! $result .= "<a href=\"$href\" target=\"mainFrame\">$name</a><br>"; ! } ! } ! $result .= "</body></html>"; ! $result; ! } + #/** + # Renders a list of all packages. + # @param a list reference containing all packages + # @param the filename format string for the package + # files (eg. pkg_[PKNAME].html) + # @return the rendered string + #*/ + sub renderPackageList { + my ($this, $listRef, $fmtString) = @_; + my $result = "<html><body bgcolor=\"#ffffff\"><h3>All Packages</h3>"; + + for (@{$listRef}) { + my $name = $_; + $name =~ s/:/_/g; + my $href = $fmtString; + $href =~ s/\[PKNAME\]/$name/e; + $result .= "<a href=\"$href\" target=\"pkgFrame\">$_</a><br>"; + } + $result .= "</body></html>"; + $result; + } + + #/** + # Renders the Frameset. + # @param filename for the main frame + # @param filename for the all packages frame + # @param filename for the package contents frame + # @return the rendered frameset + #*/ + sub renderFrameset { + my ($this, $main, $pkg, $pkgcnt) = @_; + my $result = "<html><frameset cols=\"20%,80%\"><frameset rows=\"30%,70%\">"; + $result .= "<frame src=\"$pkg\" name=\"allPkgFrame\">"; + $result .= "<frame src=\"$pkgcnt\" name = \"pkgFrame\">"; + $result .= "</frameset>"; + $result .= "<frame src=\"$main\" name=\"mainFrame\">"; + $result .= "</frameset></html>"; + $result; + } + #/** + # Renders the main Page. + # @param a title + # @return the rendered string + #*/ + sub renderMainPage { + my ($this, $title) = @_; + my $result = "<html><body bgcolor=\"#ffffff\"><h1>$title</h1></body></html>"; + $result; + } |