N°6041 - Introduce dynamic register of fields and renderers in Console form renderers

This commit is contained in:
Molkobain
2023-03-09 10:54:22 +01:00
parent 9023e338a5
commit 482261845c
4 changed files with 94 additions and 15 deletions

View File

@@ -428,6 +428,7 @@ return array(
'Combodo\\iTop\\Renderer\\Bootstrap\\FieldRenderer\\BsSimpleFieldRenderer' => $baseDir . '/sources/Renderer/Bootstrap/FieldRenderer/BsSimpleFieldRenderer.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\FieldRenderer\\BsSubFormFieldRenderer' => $baseDir . '/sources/Renderer/Bootstrap/FieldRenderer/BsSubFormFieldRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\ConsoleBlockRenderer' => $baseDir . '/sources/Renderer/Console/ConsoleBlockRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\ConsoleFieldRendererMappings' => $baseDir . '/sources/Renderer/Console/ConsoleFieldRendererMappings.php',
'Combodo\\iTop\\Renderer\\Console\\ConsoleFormRenderer' => $baseDir . '/sources/Renderer/Console/ConsoleFormRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\FieldRenderer\\ConsoleSelectObjectFieldRenderer' => $baseDir . '/sources/Renderer/Console/FieldRenderer/ConsoleSelectObjectFieldRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\FieldRenderer\\ConsoleSimpleFieldRenderer' => $baseDir . '/sources/Renderer/Console/FieldRenderer/ConsoleSimpleFieldRenderer.php',

View File

@@ -793,6 +793,7 @@ class ComposerStaticInit7f81b4a2a468a061c306af5e447a9a9f
'Combodo\\iTop\\Renderer\\Bootstrap\\FieldRenderer\\BsSimpleFieldRenderer' => __DIR__ . '/../..' . '/sources/Renderer/Bootstrap/FieldRenderer/BsSimpleFieldRenderer.php',
'Combodo\\iTop\\Renderer\\Bootstrap\\FieldRenderer\\BsSubFormFieldRenderer' => __DIR__ . '/../..' . '/sources/Renderer/Bootstrap/FieldRenderer/BsSubFormFieldRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\ConsoleBlockRenderer' => __DIR__ . '/../..' . '/sources/Renderer/Console/ConsoleBlockRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\ConsoleFieldRendererMappings' => __DIR__ . '/../..' . '/sources/Renderer/Console/ConsoleFieldRendererMappings.php',
'Combodo\\iTop\\Renderer\\Console\\ConsoleFormRenderer' => __DIR__ . '/../..' . '/sources/Renderer/Console/ConsoleFormRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\FieldRenderer\\ConsoleSelectObjectFieldRenderer' => __DIR__ . '/../..' . '/sources/Renderer/Console/FieldRenderer/ConsoleSelectObjectFieldRenderer.php',
'Combodo\\iTop\\Renderer\\Console\\FieldRenderer\\ConsoleSimpleFieldRenderer' => __DIR__ . '/../..' . '/sources/Renderer/Console/FieldRenderer/ConsoleSimpleFieldRenderer.php',

View File

@@ -0,0 +1,92 @@
<?php
/*
* @copyright Copyright (C) 2010-2023 Combodo SARL
* @license http://opensource.org/licenses/AGPL-3.0
*/
namespace Combodo\iTop\Renderer\Console;
use Combodo\iTop\Form\Field\DateTimeField;
use Combodo\iTop\Form\Field\DurationField;
use Combodo\iTop\Form\Field\HiddenField;
use Combodo\iTop\Form\Field\LabelField;
use Combodo\iTop\Form\Field\RadioField;
use Combodo\iTop\Form\Field\SelectField;
use Combodo\iTop\Form\Field\SelectObjectField;
use Combodo\iTop\Form\Field\StringField;
use Combodo\iTop\Form\Field\SubFormField;
use Combodo\iTop\Form\Field\TextAreaField;
use Combodo\iTop\Renderer\Console\FieldRenderer\ConsoleSelectObjectFieldRenderer;
use Combodo\iTop\Renderer\Console\FieldRenderer\ConsoleSimpleFieldRenderer;
use Combodo\iTop\Renderer\Console\FieldRenderer\ConsoleSubFormFieldRenderer;
use iFieldRendererMappingsExtension;
/**
* Class ConsoleFieldRendererMappings
*
* @author Guillaume Lajarige <guillaume.lajarige@combodo.com>
* @package Combodo\iTop\Renderer\Console
* @since 3.1.0 N°6041
*/
class ConsoleFieldRendererMappings implements iFieldRendererMappingsExtension
{
/**
* @inheritDoc
*/
public static function RegisterSupportedFields(): array
{
return [
[
HiddenField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
[
LabelField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
[
StringField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
[
SelectField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
[
TextAreaField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
[
RadioField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
[
DurationField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
[
SelectObjectField::class,
ConsoleFormRenderer::class,
ConsoleSelectObjectFieldRenderer::class,
],
[
SubFormField::class,
ConsoleFormRenderer::class,
ConsoleSubFormFieldRenderer::class,
],
[
DateTimeField::class,
ConsoleFormRenderer::class,
ConsoleSimpleFieldRenderer::class,
],
];
}
}

View File

@@ -24,19 +24,4 @@ use Combodo\iTop\Renderer\FormRenderer;
class ConsoleFormRenderer extends FormRenderer
{
const DEFAULT_RENDERER_NAMESPACE = 'Combodo\\iTop\\Renderer\\Console\\FieldRenderer\\';
public function __construct(Form $oForm)
{
parent::__construct($oForm);
$this->AddSupportedField('HiddenField', 'ConsoleSimpleFieldRenderer');
$this->AddSupportedField('LabelField', 'ConsoleSimpleFieldRenderer');
$this->AddSupportedField('StringField', 'ConsoleSimpleFieldRenderer');
$this->AddSupportedField('SelectField', 'ConsoleSimpleFieldRenderer');
$this->AddSupportedField('TextAreaField', 'ConsoleSimpleFieldRenderer');
$this->AddSupportedField('RadioField', 'ConsoleSimpleFieldRenderer');
$this->AddSupportedField('DurationField', 'ConsoleSimpleFieldRenderer');
$this->AddSupportedField('SelectObjectField', 'ConsoleSelectObjectFieldRenderer');
$this->AddSupportedField('SubFormField', 'ConsoleSubFormFieldRenderer');
$this->AddSupportedField('DateTimeField', 'ConsoleSimpleFieldRenderer');
}
}