Source for file AJScript.php

Documentation is available at AJScript.php

  1. <?php
  2. /**
  3.  *  
  4.  */
  5.  
  6. /**
  7.  * Javascript helper
  8.  *
  9.  * Provides static methods for generating commonly-used javascript.
  10.  * Because AJScript's methods are static, this class need not be instantiated.
  11.  *
  12.  * @package Alia
  13.  * @subpackage Core
  14.  * @version $id$
  15.  * @copyright
  16.  * @author Jordan CM Wambaugh <jordan@wambaugh.org>
  17.  * @license
  18.  */
  19. class AJScript{
  20.     
  21.     public static function convert($string){
  22.         $params func_get_args();
  23.         array_shift($params);
  24.         foreach ($params as $k=>$param){
  25.             if($param instanceof AWidget){
  26.                 throw new Exception("parameter $k is not an instance of AObject!");
  27.             }
  28.             $count =1;
  29.             $stringstr_replace('?',$param->getObjectID(),    $string,$count);
  30.         }
  31.     }
  32.     
  33.     public static function object(AObject $object){
  34.         return ("document.getElementById('".$object->getObjectID()."')");
  35.     }
  36.     
  37.     public static function formElementValue(AObject $object){
  38.         return ("document.getElementById('".$object->getObjectID()."').value");
  39.     }
  40.     
  41.     
  42.     /**
  43.      * generates javascript for emiting a signal from an object
  44.      *
  45.      * @param unknown_type $signal 
  46.      * @param AObject $object 
  47.      * @param null|array|string$params the parameter(s) to be passed with the signal
  48.      * @return unknown 
  49.      */
  50.     public static function emit($signal,AObject $object,$params null){
  51.         $paramText='';
  52.         if($params!==null){
  53.             //if params was passed as a single string, convert to an array
  54.             if(is_string($params)){
  55.                 $params array($params);
  56.             }
  57.             
  58.             $paramText=", new Array(";
  59.             $count 0;
  60.             foreach ($params as $param){
  61.                 if($count++ > 0){
  62.                     $paramText.=',';
  63.                 }
  64.                 $paramText.=$param;
  65.             }
  66.             $paramText.=")";
  67.         }
  68.         $buffer "Alia.emit('".$object->getObjectID()."', '$signal'$paramText);";
  69.         return $buffer;    
  70.     }
  71.     
  72.     
  73.     public static function renderConnection($connection){
  74.         $buffer='';
  75.         /*echo "<pre>";
  76.         print_r($connection->getSource());
  77.         echo "</pre>";*/
  78.         $target="";
  79.         if(is_object($connection->getTarget())){
  80.             $target $connection->getTarget()->getObjectID();
  81.         }
  82.         $script "null";
  83.         if($connection->getJavascript()){
  84.             $script='function(params){'.$connection->getJavascript().'}';
  85.         }
  86.         $buffer.="\n".'Alia.addConnection(new AConnection("'.$connection->getSource()->getObjectID().'", "'.$connection->getSignalName().'", "'.$target.'", "'.$connection->getSlotMethod().'","'.$connection->getConnectionID().'",'.$script.'));';
  87.         return $buffer;
  88.     }
  89.     
  90.     public static function alert($text){
  91.         $text str_replace("\"","\\\"",$text);
  92.         return "alert(\"$text\");";
  93.     }
  94.     
  95.     public static function updateDiv($div$innerHTML){
  96.         $innerHTML str_replace(array("'","\n"),array("\'",""),$innerHTML);
  97.         return "Alia.replaceElementWithHTML(document.getElementById('$div'),'$innerHTML');";
  98.     }
  99.     
  100.     
  101. }

Documentation generated on Fri, 11 Jul 2008 13:28:40 -0400 by phpDocumentor 1.4.2