/**
  * Creates from the model a \MUtil_Html_TableElement that can display multiple items.
  *
  * Allows overruling
  *
  * @param \MUtil_Model_ModelAbstract $model
  * @return \MUtil_Html_TableElement
  */
 public function getShowTable(\MUtil_Model_ModelAbstract $model)
 {
     $bridge = $model->getBridgeFor('itemTable', array('class' => $this->class));
     $bridge->setColumnCount($this->bridgeColumns)->setMode($this->bridgeMode);
     if (($this->bridgeMode = \MUtil_Model_Bridge_BridgeAbstract::MODE_SINGLE_ROW) && $model->hasDependencies()) {
         // Trigger the dependencies
         $bridge->getRow();
     }
     $this->setShowTableHeader($bridge, $model);
     $this->setShowTableFooter($bridge, $model);
     $this->addShowTableRows($bridge, $model);
     if (!$bridge->getRepeater()) {
         $bridge->setRepeater($this->getRepeater($model));
     }
     return $bridge->getTable();
 }
 /**
  * Creates from the model a \MUtil_Html_TableElement that can display multiple items.
  *
  * Allows overruling
  *
  * @param \MUtil_Model_ModelAbstract $model
  * @return \MUtil_Html_TableElement
  */
 public function getBrowseTable(\MUtil_Model_ModelAbstract $model)
 {
     $bridge = $model->getBridgeFor('table');
     if ($this->caption) {
         $bridge->caption($this->caption);
     }
     if ($this->onEmpty) {
         $bridge->setOnEmpty($this->onEmpty);
     } else {
         $bridge->getOnEmpty()->raw('…');
     }
     if ($this->baseUrl) {
         $bridge->setBaseUrl($this->baseUrl);
     }
     $this->addBrowseTableColumns($bridge, $model);
     return $bridge->getTable();
 }
 /**
  * Create a form for filtering and validation, populating it
  * with elements.
  *
  * @return \MUtil_Form
  */
 protected function _makeTargetForm()
 {
     $form = $this->_createTargetForm();
     $form->setTranslator($this->translate);
     $bridge = $this->_targetModel->getBridgeFor('form', $form);
     foreach ($this->getFieldsTranslations() as $sourceName => $targetName) {
         if ($this->_targetModel->get($targetName, 'label')) {
             $options = $this->_targetModel->get($targetName, 'multiOptions');
             if ($options) {
                 $filter = new \MUtil_Filter_LooseArrayFilter($options, $this->_targetModel->get($targetName, 'extraValueKeys'));
                 $element = $bridge->add($targetName);
                 if ($element && method_exists($element, 'addFilter')) {
                     $element->addFilter($filter);
                 }
             } else {
                 $bridge->add($targetName);
             }
         } else {
             $bridge->addHidden($targetName);
         }
     }
     return $form;
 }