/**
  * Visit a flow organizer and return the resultant GUI component [a container].
  * 
  * @param object FlowOrganizerSiteComponent
  * @return object Component
  * @access public
  * @since 4/3/06
  */
 public function visitFlowOrganizer(FlowOrganizerSiteComponent $organizer)
 {
     $numCells = $organizer->getTotalNumberOfCells();
     if ($organizer->getNumRows() == 0) {
         $cellsPerPage = $numCells;
     } else {
         $cellsPerPage = $organizer->getNumColumns() * $organizer->getNumRows();
     }
     $childGuiComponents = array();
     foreach ($organizer->getSortedSubcomponents() as $child) {
         if ($child) {
             $childGuiComponent = $child->acceptVisitor($this);
             // Filter out false entries returned due to lack of authorization
             if ($childGuiComponent) {
                 $childGuiComponents[] = $childGuiComponent;
             }
         }
     }
     if (count($childGuiComponents)) {
         $resultPrinter = new ArrayResultPrinter($childGuiComponents, $organizer->getNumColumns(), $cellsPerPage);
         $resultPrinter->setRenderDirection($organizer->getDirection());
         $resultPrinter->setNamespace('pages_' . $organizer->getId());
         $resultPrinter->addLinksStyleProperty(new MarginTopSP("10px"));
         return $resultPrinter->getLayout();
     } else {
         return null;
     }
 }