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
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
00051
00055 function initialize(&$request) {
00056 $gridHandler =& $this->getGridHandler();
00057
00058
00059 import('controllers.grid.files.fileList.FileSelectionGridColumn');
00060 $gridHandler->addColumn(new FileSelectionGridColumn($gridHandler->getSelectName()));
00061
00062 parent::initialize($request);
00063 }
00064
00065
00066
00067
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'];
00101 $submissionFiles[$fileId]['selected'] = in_array(
00102 $monographFile->getFileIdAndRevision(),
00103 $selectedFiles
00104 );
00105 unset($monographFile);
00106 }
00107 return $submissionFiles;
00108 }
00109
00110 }
00111
00112 ?>