getDisplayFields()}
* @see {@link GridFieldDataColumns}.
*
* @param GridField $gridField
* @param array - List reference of all column names.
*/
public function augmentColumns($gridField, &$columns);
/**
* Names of all columns which are affected by this component.
*
* @param GridField $gridField
* @return array
*/
public function getColumnsHandled($gridField);
/**
* HTML for the column, content of the
element.
*
* @param GridField $gridField
* @param DataObject $record - Record displayed in this row
* @param string $columnName
* @return string - HTML for the column. Return NULL to skip.
*/
public function getColumnContent($gridField, $record, $columnName);
/**
* Attributes for the element containing the content returned by {@link getColumnContent()}.
*
* @param GridField $gridField
* @param DataObject $record displayed in this row
* @param string $columnName
* @return array
*/
public function getColumnAttributes($gridField, $record, $columnName);
/**
* Additional metadata about the column which can be used by other components,
* e.g. to set a title for a search column header.
*
* @param GridField $gridField
* @param string $columnName
* @return array - Map of arbitrary metadata identifiers to their values.
*/
public function getColumnMetadata($gridField, $columnName);
}
/**
* An action is defined by two things: an action name, and zero or more named
* arguments.
*
* There is no built-in notion of a record-specific or column-specific action,
* but you may choose to define an argument such as ColumnName or RecordID in
* order to implement these.
*
* Does not provide interface elements to call those actions.
*
* @see {@link GridField_FormAction}.
*
* @package framework
* @subpackage fields-gridfield
*/
interface GridField_ActionProvider extends GridFieldComponent {
/**
* Return a list of the actions handled by this action provider.
*
* Used to identify the action later on through the $actionName parameter
* in {@link handleAction}.
*
* There is no namespacing on these actions, so you need to ensure that
* they don't conflict with other components.
*
* @param GridField
* @return Array with action identifier strings.
*/
public function getActions($gridField);
/**
* Handle an action on the given {@link GridField}.
*
* Calls ALL components for every action handled, so the component needs
* to ensure it only accepts actions it is actually supposed to handle.
*
* @param GridField
* @param String Action identifier, see {@link getActions()}.
* @param Array Arguments relevant for this
* @param Array All form data
*/
public function handleAction(GridField $gridField, $actionName, $arguments, $data);
}
/**
* Can modify the data list.
*
* For example, a paginating component can apply a limit, or a sorting
* component can apply a sort.
*
* Generally, the data manipulator will make use of to {@link GridState}
* variables to decide how to modify the {@link DataList}.
*
* @package framework
* @subpackage fields-gridfield
*/
interface GridField_DataManipulator extends GridFieldComponent {
/**
* Manipulate the {@link DataList} as needed by this grid modifier.
*
* @param GridField
* @param SS_List
* @return DataList
*/
public function getManipulatedData(GridField $gridField, SS_List $dataList);
}
/**
* Sometimes an action isn't enough: you need to provide additional support
* URLs for the {@link GridField}.
*
* These URLs may return user-visible content, for example a pop-up form for
* editing a record's details, or they may be support URLs for front-end
* functionality.
*
* For example a URL that will return JSON-formatted data for a javascript
* grid control.
*
* @package framework
* @subpackage fields-gridfield
*/
interface GridField_URLHandler extends GridFieldComponent {
/**
* Return URLs to be handled by this grid field, in an array the same form
* as $url_handlers.
*
* Handler methods will be called on the component, rather than the
* {@link GridField}.
*/
public function getURLHandlers($gridField);
}
/**
* A component which is used to handle when a {@link GridField} is saved into
* a record.
*
* @package framework
* @subpackage fields-gridfield
*/
interface GridField_SaveHandler extends GridFieldComponent {
/**
* Called when a grid field is saved - i.e. the form is submitted.
*
* @param GridField $field
* @param DataObjectInterface $record
*/
public function handleSave(GridField $grid, DataObjectInterface $record);
}
|