/**
  * Build singleton instance of listHeader, a collection of header column objects
  * 
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param boolean $resetListHeader
  * @return Tx_PtExtlist_Domain_Model_List_Header_ListHeader
  */
 public function createInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, $resetListHeader = false)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     // Check whether singleton instance exists
     if (!array_key_exists($listIdentifier, $this->instances) || $this->instances[$listIdentifier] === null || $resetListHeader) {
         $defaultSortingColumn = $configurationBuilder->buildListDefaultConfig()->getSortingColumn();
         $columnConfigurationCollection = $configurationBuilder->buildColumnsConfiguration();
         $listHeader = new Tx_PtExtlist_Domain_Model_List_Header_ListHeader($configurationBuilder->getListIdentifier());
         $listIsSorted = false;
         foreach ($columnConfigurationCollection as $columnIdentifier => $singleColumnConfiguration) {
             /* @var $singleColumnConfiguration Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfig */
             $headerColumn = $this->headerColumnFactory->createInstance($singleColumnConfiguration);
             if ($singleColumnConfiguration->isAccessable()) {
                 // We set list as sorted as soon as one column has sorting-status from user / session
                 if ($headerColumn->isSortingActive()) {
                     $listIsSorted = true;
                 }
                 $listHeader->addHeaderColumn($headerColumn, $singleColumnConfiguration->getColumnIdentifier());
             }
         }
         $this->setVisibilityByColumnSelector($configurationBuilder, $listHeader);
         // Check whether we have a sorting from header columns (set by user)
         // or whether we have to set default sorting
         if (!$listIsSorted && $defaultSortingColumn && $listHeader->hasItem($defaultSortingColumn)) {
             $listHeader->getHeaderColumn($defaultSortingColumn)->setDefaultSorting($configurationBuilder->buildListDefaultConfig()->getSortingDirection());
             $listHeader->getHeaderColumn($defaultSortingColumn)->init();
         }
         $this->getPostVarsAdapterFactory->getInstance()->injectParametersInObject($listHeader);
         $listHeader->init();
         $this->instances[$listIdentifier] = $listHeader;
     }
     // We return singleton instance of listHeader
     return $this->instances[$listIdentifier];
 }
 /**
  * Factory method creates instance of breadcrumbs collection as list identifier-specific singleton
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_BreadCrumbs_BreadCrumbCollection
  */
 public function getInstanceByConfigurationBuilder(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     if (!array_key_exists($configurationBuilder->getListIdentifier(), $this->instances) || $this->instances[$configurationBuilder->getListIdentifier()] == null) {
         $filterboxCollectionFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('Tx_PtExtlist_Domain_Model_Filter_FilterboxCollectionFactory');
         /* @var $filterboxCollectionFactory Tx_PtExtlist_Domain_Model_Filter_FilterboxCollectionFactory */
         $filterboxCollection = $filterboxCollectionFactory->createInstance($configurationBuilder, false);
         $breadCrumbCollection = $this->getInstanceByFilterboxCollection($configurationBuilder, $filterboxCollection);
         $this->instances[$configurationBuilder->getListIdentifier()] = $breadCrumbCollection;
     }
     return $this->instances[$configurationBuilder->getListIdentifier()];
 }
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  */
 public function __construct(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $rendererChainSettings)
 {
     $this->configurationBuilder = $configurationBuilder;
     $this->listIdentifier = $configurationBuilder->getListIdentifier();
     $this->settings = $rendererChainSettings;
     $this->init();
 }
Beispiel #4
0
 /** @test */
 public function getFilterByFilterIdentifierReturnsExpectedFilter()
 {
     $dataBackendFactoryMock = $this->getDataBackendFactoryMockForListConfigurationAndListIdentifier($this->configurationBuilderMock->getSettings(), $this->configurationBuilderMock->getListIdentifier());
     $filterboxFactory = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_FilterboxFactory');
     /* @var $filterboxFactory Tx_PtExtlist_Domain_Model_Filter_FilterboxFactory */
     $filterboxFactory->setDataBackendFactory($dataBackendFactoryMock);
     $filterbox = $filterboxFactory->createInstance($this->configurationBuilderMock->buildFilterConfiguration()->getFilterBoxConfig('testfilterbox'));
     $this->assertSame('testfilterbox', $filterbox->getFilterByFilterIdentifier('filter1')->getFilterBoxIdentifier());
 }
 /**
  * Creates a new instance of bookmark manager for given configuration builder
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManager
  */
 protected function createNewInstanceByConfigurationBuilder(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $bookmarksConfiguration = $configurationBuilder->buildBookmarkConfiguration();
     $this->bookmarkRepository->setBookmarkStoragePid($bookmarksConfiguration->getBookmarkPid());
     $bookmarkManager = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManager', $configurationBuilder->getListIdentifier());
     /* @var $bookmarkManager Tx_PtExtlist_Domain_Model_Bookmark_BookmarkManager */
     $bookmarkManager->_injectConfigurationBuilder($configurationBuilder);
     $bookmarkManager->_injectSessionPersistenceManager($this->sessionPersistenceManagerBuilder->getInstance());
     $bookmarkManager->buildBookmarkConfig();
     $bookmarkManager->initFeUser();
     return $bookmarkManager;
 }
 /**
  * Factory method for returning a singleton instance of a column selector
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_ColumnSelector_ColumnSelector
  */
 public function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     if ($this->instances[$listIdentifier] === null) {
         $this->instances[$listIdentifier] = new Tx_PtExtlist_Domain_Model_ColumnSelector_ColumnSelector();
         $this->instances[$listIdentifier]->setConfiguration($configurationBuilder->buildColumnSelectorConfiguration());
         // Inject settings from session.
         $this->sessionPersistenceManagerBuilder->getInstance()->registerObjectAndLoadFromSession($this->instances[$listIdentifier]);
         // Inject settings from gp-vars.
         $this->getPostVarsAdapterFactory->getInstance()->injectParametersInObject($this->instances[$listIdentifier]);
     }
     return $this->instances[$listIdentifier];
 }
 /**
  * Factory method for returning a singleton instance of sorter
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return Tx_PtExtlist_Domain_Model_Sorting_Sorter
  */
 public function getInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     if ($this->instances[$listIdentifier] === null) {
         $this->instances[$listIdentifier] = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Sorting_Sorter');
         $this->instances[$listIdentifier]->_injectSorterConfig($configurationBuilder->buildSorterConfiguration());
         // At the moment we have to build list header here, as it is not registered in sorter otherwise.
         // TODO refactor this! We can register list header after sorter is build!
         $listHeaderFactory = $this->objectManager->get('Tx_PtExtlist_Domain_Model_List_Header_ListHeaderFactory');
         /* @var $listHeaderFactory Tx_PtExtlist_Domain_Model_List_Header_ListHeaderFactory */
         $listHeaderFactory->createInstance($configurationBuilder);
     }
     return $this->instances[$listIdentifier];
 }
 /**
  * @param Tx_PtExtlist_Domain_Model_Bookmark_Bookmark $bookmark
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param array $sessionData
  * @return void
  */
 public function addContentToBookmark(Tx_PtExtlist_Domain_Model_Bookmark_Bookmark $bookmark, Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $sessionData)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     $bookmarkContentArray = array();
     if (array_key_exists($listIdentifier, $sessionData)) {
         if (array_key_exists('headerColumns', $sessionData[$listIdentifier])) {
             $bookmarkContentArray[$listIdentifier]['headerColumns'] = $sessionData[$listIdentifier]['headerColumns'];
         }
         if (array_key_exists('filters', $sessionData[$listIdentifier])) {
             $bookmarkContentArray[$listIdentifier]['filters'] = $sessionData[$listIdentifier]['filters'];
         }
     }
     $bookmark->setContent(serialize($bookmarkContentArray));
 }
 /**
  * Factory method for creating filterbox collection for a given configuration builder
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param boolean $resetFilterBoxCollection
  * @return Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection
  */
 public function createInstance(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, $resetFilterBoxCollection)
 {
     if ($this->instances[$configurationBuilder->getListIdentifier()] === null || $resetFilterBoxCollection === true) {
         $filterboxConfigCollection = $configurationBuilder->buildFilterConfiguration();
         $filterboxCollection = $this->objectManager->get('Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection', $configurationBuilder);
         /* @var $filterboxCollection Tx_PtExtlist_Domain_Model_Filter_FilterboxCollection */
         foreach ($filterboxConfigCollection as $filterboxConfiguration) {
             /* @var $filterboxConfiguration Tx_PtExtlist_Domain_Configuration_Filters_FilterboxConfig */
             $filterbox = $this->filterboxFactory->createInstance($filterboxConfiguration);
             $filterboxCollection->addFilterBox($filterbox, $filterbox->getfilterboxIdentifier());
         }
         $this->instances[$configurationBuilder->getListIdentifier()] = $filterboxCollection;
     }
     return $this->instances[$configurationBuilder->getListIdentifier()];
 }
 /**
  * Constructor for configuration object
  * 
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param array $settings
  */
 public function __construct(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, array $settings = array())
 {
     $this->listIdentifier = $configurationBuilder->getListIdentifier();
     parent::__construct($configurationBuilder, $settings);
 }
 public function testGetListIdentifier()
 {
     $configurationBuilder = new Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder($this->settings, 'test');
     $this->assertEquals($configurationBuilder->getListIdentifier(), $this->settings['listIdentifier']);
 }
 /**
  * Returns data backend instance for given configuration builder
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @return \Tx_PtExtlist_Domain_DataBackend_AbstractDataBackend
  */
 public function getDataBackendInstanceByConfigurationBuilder(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $listIdentifier = $configurationBuilder->getListIdentifier();
     return $this->getDataBackendInstanceByListIdentifier($listIdentifier);
 }
 /**
  * Returns list identifier of the list to which this backend belongs to
  *
  * @return String
  */
 public function getListIdentifier()
 {
     return $this->configurationBuilder->getListIdentifier();
 }
 /**
  * (non-PHPdoc)
  *
  * @see Tx_PtExtbase_State_IdentifiableInterface::getObjectNamespace()
  */
 public function getObjectNamespace()
 {
     return $this->configurationBuilder->getListIdentifier() . '.pagerCollection';
 }
 /**
  * @see Tx_PtExtbase_State_IdentifiableInterface
  */
 public function getObjectNamespace()
 {
     return $this->configurationBuilder->getListIdentifier() . '.' . 'breadcrumbs';
 }
Beispiel #16
0
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  * @param string $filterboxIdentifier
  * @param array $filterBoxSettings
  */
 public function __construct(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder, $filterboxIdentifier, $filterBoxSettings)
 {
     Tx_PtExtbase_Assertions_Assert::isNotEmptyString($filterboxIdentifier, array('message' => 'FilterboxIdentifier must not be empty! 1277889451'));
     $this->configurationBuilder = $configurationBuilder;
     $this->listIdentifier = $configurationBuilder->getListIdentifier();
     $this->filterboxIdentifier = $filterboxIdentifier;
     $this->setOptionalSettings($filterBoxSettings);
 }
 /**
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  */
 public function __construct(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $this->listIdentifier = $configurationBuilder->getListIdentifier();
 }
 /**
  * Sets a given configuration builder as instance. Overwrites already set instance.
  *
  * @param Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder
  */
 public function set(Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder $configurationBuilder)
 {
     $this->instances[$configurationBuilder->getListIdentifier()] = $configurationBuilder;
 }