예제 #1
0
 /**
  * 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];
 }
 public function testBuildColumnsConfiguration()
 {
     $configurationBuilder = new Tx_PtExtlist_Domain_Configuration_ConfigurationBuilder($this->settings, 'test');
     $columnConfigCollection = $configurationBuilder->buildColumnsConfiguration();
     $this->assertTrue(is_a($columnConfigCollection, 'Tx_PtExtlist_Domain_Configuration_Columns_ColumnConfigCollection'));
 }