first commit
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file classes/controllers/grid/GridColumn.php
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @class GridColumn
|
||||
*
|
||||
* @ingroup controllers_grid
|
||||
*
|
||||
* @brief The GridColumn class represents a column within a grid. It is used to
|
||||
* format the data presented in a particular column, which is provided by the
|
||||
* GridRow implementation, and to handle user operations on that column (such
|
||||
* as clicking a checkbox).
|
||||
*
|
||||
* For general information on grids, see GridHandler.
|
||||
*/
|
||||
|
||||
namespace PKP\controllers\grid;
|
||||
|
||||
class GridColumn extends GridBodyElement
|
||||
{
|
||||
public const COLUMN_ALIGNMENT_LEFT = 'left';
|
||||
public const COLUMN_ALIGNMENT_CENTER = 'center';
|
||||
public const COLUMN_ALIGNMENT_RIGHT = 'right';
|
||||
|
||||
/** @var string the column title i18n key */
|
||||
public $_title;
|
||||
|
||||
/** @var string the column title (translated) */
|
||||
public $_titleTranslated;
|
||||
|
||||
/** @var string the controller template for the cells in this column */
|
||||
public $_template;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string $id Grid column identifier
|
||||
* @param string $title Locale key for grid column title
|
||||
* @param string $titleTranslated Optional translated grid title
|
||||
* @param string $template Optional template filename for grid column, including path
|
||||
* @param GridCellProvider $cellProvider Optional grid cell provider for this column
|
||||
* @param array $flags Optional set of flags for this grid column
|
||||
*/
|
||||
public function __construct(
|
||||
$id = '',
|
||||
$title = null,
|
||||
$titleTranslated = null,
|
||||
$template = null,
|
||||
$cellProvider = null,
|
||||
$flags = []
|
||||
) {
|
||||
// Use default template if none specified
|
||||
if ($template === null) {
|
||||
$template = 'controllers/grid/gridCell.tpl';
|
||||
}
|
||||
|
||||
parent::__construct($id, $cellProvider, $flags);
|
||||
|
||||
$this->_title = $title;
|
||||
$this->_titleTranslated = $titleTranslated;
|
||||
$this->_template = $template;
|
||||
}
|
||||
|
||||
//
|
||||
// Setters/Getters
|
||||
//
|
||||
/**
|
||||
* Get the column title
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTitle()
|
||||
{
|
||||
return $this->_title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the column title (already translated)
|
||||
*
|
||||
* @param string $title
|
||||
*/
|
||||
public function setTitle($title)
|
||||
{
|
||||
$this->_title = $title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the column title (already translated)
|
||||
*/
|
||||
public function setTitleTranslated($titleTranslated)
|
||||
{
|
||||
$this->_titleTranslated = $titleTranslated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the translated column title
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLocalizedTitle()
|
||||
{
|
||||
if ($this->_titleTranslated) {
|
||||
return $this->_titleTranslated;
|
||||
}
|
||||
return __($this->_title);
|
||||
}
|
||||
|
||||
/**
|
||||
* get the column's cell template
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getTemplate()
|
||||
{
|
||||
return $this->_template;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the column's cell template
|
||||
*
|
||||
* @param string $template
|
||||
*/
|
||||
public function setTemplate($template)
|
||||
{
|
||||
$this->_template = $template;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see GridBodyElement::getCellProvider()
|
||||
*/
|
||||
public function getCellProvider()
|
||||
{
|
||||
if (is_null(parent::getCellProvider())) {
|
||||
// provide a sensible default cell provider
|
||||
$cellProvider = new ArrayGridCellProvider();
|
||||
$this->setCellProvider($cellProvider);
|
||||
}
|
||||
|
||||
return parent::getCellProvider();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get cell actions for this column.
|
||||
*
|
||||
* NB: Subclasses have to override this method to
|
||||
* actually provide cell-specific actions. The default
|
||||
* implementation returns an empty array.
|
||||
*
|
||||
* @param \PKP\controllers\grid\GridRow $row The row for which actions are
|
||||
* being requested.
|
||||
*
|
||||
* @return array An array of LinkActions for the cell.
|
||||
*/
|
||||
public function getCellActions($request, $row, $position = GridHandler::GRID_ACTION_POSITION_DEFAULT)
|
||||
{
|
||||
// The default implementation returns an empty array
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
if (!PKP_STRICT_MODE) {
|
||||
class_alias('\PKP\controllers\grid\GridColumn', '\GridColumn');
|
||||
foreach ([
|
||||
'COLUMN_ALIGNMENT_LEFT',
|
||||
'COLUMN_ALIGNMENT_CENTER',
|
||||
'COLUMN_ALIGNMENT_RIGHT',
|
||||
] as $constantName) {
|
||||
define($constantName, constant('\GridColumn::' . $constantName));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user