• Main Page
  • Modules
  • Classes
  • Files
  • File List

classes/controllers/grid/files/fileList/SelectableFileListGridHandlerImplementation.inc.php

00001 <?php
00015 import('classes.controllers.grid.files.fileList.FileListGridHandlerImplementation');
00016 
00017 class SelectableFileListGridHandlerImplementation extends FileListGridHandlerImplementation {
00018 
00026    function SelectableFileListGridHandlerImplementation(&$gridHandler, $stageId, $capabilities) {
00027       parent::FileListGridHandlerImplementation($gridHandler, $stageId, $capabilities);
00028    }
00029 
00030 
00031    //
00032    // Extend methods from SubmissionFilesGridHandlerImplementation
00033    //
00037    function authorize(&$request, &$args, $roleAssignments) {
00038       $gridHandler =& $this->getGridHandler();
00039 
00040       $selectionPolicy =& $gridHandler->getSelectionPolicy($request, $args, $roleAssignments);
00041       if (!is_null($selectionPolicy)) {
00042          $gridHandler->addPolicy($selectionPolicy);
00043       }
00044 
00045       parent::authorize($request, $args, $roleAssignments);
00046    }
00047 
00048 
00049    //
00050    // Overriden methods from FileListGridHandlerImplementation
00051    //
00055    function initialize(&$request) {
00056       $gridHandler =& $this->getGridHandler();
00057 
00058       // Add checkbox column to the grid.
00059       import('controllers.grid.files.fileList.FileSelectionGridColumn');
00060       $gridHandler->addColumn(new FileSelectionGridColumn($gridHandler->getSelectName()));
00061 
00062       parent::initialize($request);
00063    }
00064 
00065 
00066    //
00067    // Public methods
00068    //
00072    function getRequestArgs($requestArgs) {
00073       $gridHandler =& $this->getGridHandler();
00074 
00075       $return = array_merge($requestArgs, $gridHandler->getSelectionArgs());
00076       return $return;
00077    }
00078 
00082    function &loadData(&$submissionFiles) {
00083       $gridHandler =& $this->getGridHandler();
00084 
00085       $selectedFiles =& $gridHandler->getSelectedFileIds($submissionFiles);
00086       $submissionFiles =& $this->setSelectedFlag($submissionFiles, $selectedFiles);
00087 
00088       return $submissionFiles;
00089    }
00090 
00097    function &setSelectedFlag(&$submissionFiles, &$selectedFiles) {
00098       foreach($submissionFiles as $fileId => $submissionFileData) {
00099          assert(isset($submissionFileData['submissionFile']));
00100          $monographFile =& $submissionFileData['submissionFile']; /* @var $monographFile MonographFile */
00101          $submissionFiles[$fileId]['selected'] = in_array(
00102             $monographFile->getFileIdAndRevision(),
00103             $selectedFiles
00104          );
00105          unset($monographFile);
00106       }
00107       return $submissionFiles;
00108    }
00109 
00110 }
00111 
00112 ?>

Generated on Mon Sep 17 2012 13:58:55 for Open Monograph Press by  doxygen 1.7.1