ForwardFW
[ class tree: ForwardFW ] [ index: ForwardFW ] [ all elements ]

Source for file Screen.php

Documentation is available at Screen.php

  1. <?php
  2. declare(encoding "utf-8");
  3. /**
  4.  * This file is part of ForwardFW a web application framework.
  5.  *
  6.  * This library is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU General Public
  8.  * License as published by the Free Software Foundation; either
  9.  * version 2.1 of the License, or (at your option) any later version.
  10.  *
  11.  * This library is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14.  * General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public
  17.  * License along with this library; if not, write to the Free Software
  18.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.  *
  20.  * PHP version 5
  21.  *
  22.  * @category   Application
  23.  * @package    ForwardFW
  24.  * @subpackage Controller
  25.  * @author     Alexander Opitz <opitz.alexander@primacom.net>
  26.  * @copyright  2009 The Authors
  27.  * @license    http://www.gnu.org/copyleft/gpl.html GNU General Public License
  28.  * @version    SVN: $Id: $
  29.  * @link       http://forwardfw.sourceforge.net
  30.  * @since      File available since Release 0.0.1
  31.  */
  32.  
  33. /**
  34.  *
  35.  */
  36. require_once 'ForwardFW/Controller/View.php';
  37. require_once 'ForwardFW/Interface/Application.php';
  38. require_once 'ForwardFW/Interface/Screen.php';
  39.  
  40. /**
  41.  * This class is a basic Screen class.
  42.  *
  43.  * @category   Application
  44.  * @package    ForwardFW
  45.  * @subpackage Controller
  46.  * @author     Alexander Opitz <opitz.alexander@primacom.net>
  47.  * @license    http://www.gnu.org/copyleft/gpl.html GNU General Public License
  48.  * @link       http://forwardfw.sourceforge.net
  49.  */
  50.     implements ForwardFW_Interface_Screen
  51. {
  52.     /**
  53.      * The View which should be used.
  54.      *
  55.      * @var ArrayObject of ForwardFW_Controller_View
  56.      */
  57.     private $views;
  58.  
  59.     /**
  60.      * Constructor
  61.      *
  62.      * @param ForwardFW_Interface_Application $_application The running application.
  63.      *
  64.      * @return void 
  65.      */
  66.     public function __construct(ForwardFW_Interface_Application $_application)
  67.     {
  68.         parent::__construct($_application);
  69.         $this->views = new ArrayObject();
  70.         $this->strView 'ForwardFW_Controller_View';
  71.     }
  72.  
  73.     /**
  74.      * Processes the Screen.
  75.      *
  76.      * @return string result of View
  77.      */
  78.     public function process()
  79.     {
  80.         $this->application->getResponse()->addLog('Processing ' get_class($this));
  81.         $this->controlInput();
  82.         $this->processInput();
  83.         $this->controlView();
  84.         return $this->processView();
  85.     }
  86.  
  87.     /**
  88.      * Control the user input, if available.
  89.      *
  90.      * @return boolean True if all user input was accepted.
  91.      */
  92.     public function controlInput()
  93.     {
  94.         return true;
  95.     }
  96.  
  97.  
  98.     /**
  99.      * Do some processing with user Input.
  100.      *
  101.      * @return boolean True if processing was succesfully.
  102.      */
  103.     public function processInput()
  104.     {
  105.         return true;
  106.     }
  107.  
  108.     /**
  109.      * Loads Data for views and defines which views to use.
  110.      * strView is used.
  111.      *
  112.      * @return boolean True if screen wants to be viewed. Necessary for MultiApps.
  113.      */
  114.     public function controlView()
  115.     {
  116.         $view $this->loadView($this->strView);
  117.         $this->addView($view);
  118.         parent::controlView();
  119.         return true;
  120.     }
  121.  
  122.     /**
  123.      * Processes the View.
  124.      *
  125.      * @return string what to view
  126.      */
  127.     public function processView()
  128.     {
  129.         $templater ForwardFW_Templater::factory($this->application);
  130.         foreach ($this->views as $view{
  131.             $templater->setVar(
  132.                 'VIEW_' strtoupper($view->strViewName),
  133.                 $view->process()
  134.             );
  135.         }
  136.         return parent::processView();
  137.     }
  138.  
  139.     /**
  140.      * Adds a view to the list of views.
  141.      *
  142.      * @param ForwardFW_Controller_View $view The view to add.
  143.      *
  144.      * @return ForwardFW_Controller_Screen This Screen.
  145.      */
  146.     protected function addView(ForwardFW_Controller_View $view)
  147.     {
  148.         $this->views->append($view);
  149.         return $this;
  150.     }
  151.  
  152.     /**
  153.      * Loads the view by its Name.
  154.      *
  155.      * @param String $strView Name of the View.
  156.      *
  157.      * @return ForwardFW_Controller_View The instance of the view.
  158.      */
  159.     protected function loadView($strView)
  160.     {
  161.         $strFile str_replace('_''/'$strView'.php';
  162.         include_once $strFile;
  163.         $view new $strView($this->application);
  164.         return $view;
  165.     }
  166.  
  167.     /**
  168.      * Returns the list of views to show.
  169.      *
  170.      * @return ArrayObject of ForwardFW_Controller_View The list of views.
  171.      */
  172.     public function getViews()
  173.     {
  174.         return $this->views;
  175.     }
  176. }
  177. ?>

Documentation generated on Sun, 30 Jan 2011 20:46:45 +0100 by phpDocumentor 1.4.3