public function testCreation() { $arrayData = $this->getArrayData(); $gridModel = new GridWidgetModel(new ArrayDataSource($arrayData)); $gridWidget = new GridWidget($gridModel, $this->getGridViewModelBuilder()); $gridWidget->addColumn(new GridWidgetColumn("valueA", "Valor A", new GridWidgetColumnModel("valueA"), $this->getGridWidgetColumnViewModelBuilder(), $this->getGridWidgetColumnCellViewModelBuilder())); $gridWidget->addColumn(new GridWidgetColumn("valueB", "Valor B", new GridWidgetColumnModel("valueB"), $this->getGridWidgetColumnViewModelBuilder(), $this->getGridWidgetColumnCellViewModelBuilder())); }
public function build() { if (is_null($this->getModel())) { throw new \Exception("El GridWidgetBuilder necesita que se le especifique un objecto que implemente GridWidgetModelInterface para poder construir un GridWidget"); } $gridWidget = new GridWidget($this->getModel(), $this->getViewModelBuilder()); foreach ($this->getColumns() as $column) { $gridWidget->addColumn($column); } return $gridWidget; }
protected function buildInternal(GridWidget $widget) { $viewModel = new WidgetViewModel(); $viewModel->setTemplate('@BluegrassBluesWidget/html.html.twig'); $viewModel->setBlockName('bluegrass_blues_grid_widget'); $viewModel->set('count', $widget->count()); /** * Configuro las columnas del ViewModel */ $columns = array(); foreach ($widget->getColumns() as $column) { $columns[] = $this->buildColumnViewModel($widget, $column); } $viewModel->set('columns', $columns); /** * Configuro los items del ViewModel */ $items = array(); foreach ($widget as $itemModel) { $items[] = $this->buildItemViewModel($widget, $itemModel); } $viewModel->set('rows', $items); return $viewModel; }