/**
  * Processes the finish action of this step. This will write the model to the system
  * @return null
  */
 public function finish()
 {
     $defineModel = $this->wizard->getValue(self::FIELD_DEFINE_MODEL);
     $modelTable = $this->wizard->getModelTable();
     $modelClass = $this->wizard->getVariable(BuilderWizard::VARIABLE_MODEL_CLASS);
     $dataClass = $this->wizard->getVariable(BuilderWizard::VARIABLE_DATA_CLASS);
     try {
         $modelBuilder = new ModelBuilder();
         $model = $modelBuilder->createModel($modelTable, $modelClass, $dataClass);
         $modelBuilder->registerModel($model, $defineModel);
         $request = $this->wizard->getRequest();
         $response = $this->wizard->getResponse();
         $this->wizard->reset();
         $response->setRedirect($this->wizard->getCancelUrl());
     } catch (Exception $exception) {
         Zibo::getInstance()->runEvent(Zibo::EVENT_LOG, $exception->getMessage(), $exception->getTraceAsString());
         $this->exception = $exception;
     }
     return null;
 }
 /**
  * Action to order the fields of a model
  * @param string $modelName Name of the model
  * @return null
  */
 public function orderFieldsAction($modelName)
 {
     $basePath = $this->request->getBasePath();
     $orderForm = new ModelFieldOrderForm($basePath . '/' . self::ACTION_ORDER_FIELDS . '/' . $modelName);
     if (!$orderForm->isSubmitted()) {
         $this->request->setRedirect($basePath);
         return;
     }
     $model = ModelManager::getInstance()->getModel($modelName);
     $modelTable = $model->getMeta()->getModelTable();
     $fieldOrder = $orderForm->getOrder();
     try {
         $modelTable->orderFields($fieldOrder);
         $modelBuilder = new ModelBuilder();
         $modelBuilder->registerModel($model);
         $this->addInformation(self::TRANSLATION_ORDER_FIELDS_SUCCESS);
     } catch (Exception $exception) {
         Zibo::getInstance()->runEvent(Zibo::EVENT_LOG, $exception->getMessage(), $exception->getTraceAsString());
         $this->addError(self::TRANSLATION_ORDER_FIELDS_ERROR, array('error' => $exception->getMessage()));
     }
     $this->response->setRedirect($basePath . '/' . self::ACTION_DETAIL . '/' . $modelName);
 }