From: <gem...@li...> - 2011-11-02 08:14:57
|
Revision: 163 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=163&view=rev Author: mennodekker Date: 2011-11-02 08:14:50 +0000 (Wed, 02 Nov 2011) Log Message: ----------- Performance improvement for huge tabforms Modified Paths: -------------- trunk/library/classes/Gems/Form/TableForm.php Modified: trunk/library/classes/Gems/Form/TableForm.php =================================================================== --- trunk/library/classes/Gems/Form/TableForm.php 2011-11-01 14:40:39 UTC (rev 162) +++ trunk/library/classes/Gems/Form/TableForm.php 2011-11-02 08:14:50 UTC (rev 163) @@ -61,25 +61,28 @@ /** * Get a ViewHelper or ZendX decorator to add in front of the decorator chain * - * @param array $decorators + * @param Zend_Form_Element $element * @return null|Zend_Form_Decorator_Abstract */ - private function _getImportantDecorator($decorators) { + private function _getImportantDecorator($element) { $dec1 = null; - if (isset($decorators['Zend_Form_Decorator_ViewHelper'])) { - $dec1 = $decorators['Zend_Form_Decorator_ViewHelper']; - } elseif (isset($decorators['Zend_Form_Decorator_File'])) { - $dec1 = $decorators['Zend_Form_Decorator_File']; + if ($dec1 = $element->getDecorator('ViewHelper')) { + return $dec1; + } elseif ($dec1 = $element->getDecorator('UiWidgetElement')) { + return $dec1; + } elseif ($dec1 = $element->getDecorator('File')) { + return $dec1; } else { + $decorators = $element->getDecorators(); foreach($decorators as $name=>$decorator) { if (substr($name, 0, 5) == 'ZendX') { $dec1 = $decorator; break; } } + return $dec1; } - return $dec1; } /** @@ -126,8 +129,7 @@ //Now add the right decorators to the elements $groupElements = $group->getElements(); foreach ($groupElements as $element) { - $decorators = $element->getDecorators(); - $dec1 = $this->_getImportantDecorator($decorators); + $dec1 = $this->_getImportantDecorator($element); $decorators = array( array('Description', array('class'=>'description')), 'Errors', @@ -170,8 +172,7 @@ $element = $this->getElement($name); } - $decorators = $element->getDecorators(); - $dec1 = $this->_getImportantDecorator($decorators); + $dec1 = $this->_getImportantDecorator($element); if ($element instanceof MUtil_Form_Element_Html) { //Colspan 2 @@ -244,4 +245,4 @@ } return $this; } -} +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |