From af832a5a9018c7dcc2f24111d82049902269fc53 Mon Sep 17 00:00:00 2001 From: xue <> Date: Wed, 18 Oct 2006 01:38:47 +0000 Subject: merge from 3.0 branch till 1463. --- buildscripts/chmbuilder/classes/pages/ClassDoc.php | 228 +++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 buildscripts/chmbuilder/classes/pages/ClassDoc.php (limited to 'buildscripts/chmbuilder/classes/pages/ClassDoc.php') diff --git a/buildscripts/chmbuilder/classes/pages/ClassDoc.php b/buildscripts/chmbuilder/classes/pages/ClassDoc.php new file mode 100644 index 00000000..733cfc5b --- /dev/null +++ b/buildscripts/chmbuilder/classes/pages/ClassDoc.php @@ -0,0 +1,228 @@ +_classes=unserialize(file_get_contents($dataFile)); + + if(($className=$this->Request['class'])!==null && isset($this->_classes[$className])) + { + $this->Class=$this->_classes[$className]; + $this->Class['Name']=$className; + $this->Title='PRADO - Documentation of '.$className; + } + else + $this->Response->redirect('/docs/classdoc/'); + } + + public function getAncestors() + { + $ancestors=array(); + $thisClass=$this->Class; + while(true) + { + $parentClass=$thisClass['ParentClass']; + if(isset($this->_classes[$parentClass])) + { + $ancestors[]=$parentClass; + $thisClass=$this->_classes[$parentClass]; + } + else + break; + } + $ancestors=array_reverse($ancestors); + $s=''; + foreach($ancestors as $ancestor) + $s.="$ancestor »\n"; + if($s!=='') + $s="
\nInheritance: $s
\n"; + return $s; + } + + public function getProperties() + { + $class=$this->Class; + $className=$this->Class['Name']; + $s=''; + foreach($class['Properties'] as $name=>$property) + { + $inherited=strcasecmp($property['class'],$className)!==0; + $rowclass=$inherited?'doc-inherited':'doc-native'; + $s.="\n"; + $access=''; + if($property['readonly']) + $access.='R'; + if($property['protected']) + $access.='P'; + if($access==='') + $access=' '; + $s.="$access\n"; + + if($inherited) + { + $parentClass=$property['class']; + if(isset($this->_classes[$parentClass])) + { + $url="../manual/CHMdefaultConverter/{$this->_classes[$parentClass]['Package']}/{$parentClass}.html#methodget{$name}"; + $s.="$name\n"; + } + else + $s.="$name\n"; + } + else + { + $url="../manual/CHMdefaultConverter/{$class['Package']}/{$className}.html#methodget{$name}"; + $s.="$name\n"; + } + + $type=$property['type']; + if(isset($this->_classes[$type])) + { + $url="$type.html"; + $s.="$type\n"; + } + else + $s.="$type\n"; + + $comments=rtrim($property['comments'],'.').'.'; + if($inherited) + { + $parentClass=$property['class']; + if(isset($this->_classes[$parentClass])) + { + $url="$parentClass.html"; + $comments.=" (inherited from $parentClass)"; + } + else + $comments.=" (inherited from {$parentClass})"; + } + $s.="$comments\n"; + $s.="\n"; + } + + $header="\n NameTypeDescription\n\n"; + return $s===''?'':"
\n\n$header$s
\n
\n"; + } + + public function getEvents() + { + $class=$this->Class; + $className=$this->Class['Name']; + $s=''; + foreach($class['Events'] as $name=>$event) + { + $inherited=strcasecmp($event['class'],$className)!==0; + $rowclass=$inherited?'doc-inherited':'doc-native'; + $s.="\n"; + + $methodName=$name; + $methodName[0]='o'; + if($inherited) + { + $parentClass=$event['class']; + if(isset($this->_classes[$parentClass])) + { + $url="../manual/CHMdefaultConverter/{$this->_classes[$parentClass]['Package']}/{$parentClass}.html#method{$methodName}"; + $s.="$name\n"; + } + else + $s.="$name\n"; + } + else + { + $url="../manual/CHMdefaultConverter/{$class['Package']}/{$className}.html#method{$methodName}"; + $s.="$name\n"; + } + + $comments=rtrim($event['comments'],'.').'.'; + if($inherited) + { + $parentClass=$event['class']; + if(isset($this->_classes[$parentClass])) + { + $url="$parentClass.html"; + $comments.=" (inherited from $parentClass)"; + } + else + $comments.=" (inherited from {$parentClass})"; + } + $s.="$comments\n"; + $s.="\n"; + } + $header="\nNameDescription\n\n"; + return $s===''?'':"
\n\n$header$s
\n
\n"; + } + + public function getMethods() + { + $class=$this->Class; + $className=$this->Class['Name']; + $s=''; + foreach($class['Methods'] as $name=>$method) + { + $inherited=strcasecmp($method['class'],$className)!==0; + $rowclass=$inherited?'doc-inherited':'doc-native'; + $s.="\n"; + $access=''; + if($method['static']) + $access.='S'; + if($method['protected']) + $access.='P'; + if($access==='') + $access=' '; + $s.="$access\n"; + + if($inherited) + { + $parentClass=$method['class']; + if(isset($this->_classes[$parentClass])) + { + $url="../manual/CHMdefaultConverter/{$this->_classes[$parentClass]['Package']}/{$parentClass}.html#method{$name}"; + $s.="$name\n"; + } + else + $s.="$name\n"; + } + else + { + $url="../manual/CHMdefaultConverter/{$class['Package']}/{$className}.html#method{$name}"; + $s.="$name\n"; + } + + $comments=rtrim($method['comments'],'.').'.'; + if($inherited) + { + $parentClass=$method['class']; + if(isset($this->_classes[$parentClass])) + { + $url="$parentClass.html"; + $comments.=" (inherited from $parentClass)"; + } + else + $comments.=" (inherited from {$parentClass})"; + } + $s.="$comments\n"; + $s.="\n"; + } + $header="\n NameDescription\n\n"; + return $s===''?'':"
\n\n$header$s
\n
\n"; + } + + public function getDerived() + { + $class=$this->Class; + $s=''; + foreach($class['ChildClasses'] as $childName) + $s.="
  • $childName
  • \n"; + return $s===''?'':"
    \n\n
    \n"; + } + +} + +?> -- cgit v1.2.3