/**
  * Set widget data.
  *
  * @param CoreForm $form    Form object.
  * @param Package  $package Package object.
  * @param array    $data    Post data.
  *
  * @return void
  */
 protected function _setWidgetData(CoreForm $form, Package $package, $data)
 {
     if (!$form->hasEntity('widget')) {
         return;
     }
     $widget = $form->getEntity('widget');
     $widget->name = ucfirst($widget->name);
     $widget->admin_form = $widget->admin_form == 'form_class' ? $data['form_class'] : $widget->admin_form;
     $widget->description = !empty($data['description']) ? $data['description'] : ucfirst($widget->name) . ' widget.';
     $widget->save();
     /**
      * Setup dependency.
      */
     if ($widget->module) {
         $package->data = ['module' => $widget->module, 'widget_id' => $widget->id];
         $module = $this->_getPackage(Manager::PACKAGE_TYPE_MODULE, $widget->module);
         $module->addData('widgets', ['name' => $widget->name, 'module' => $module->name, 'description' => $widget->description, 'is_paginated' => $widget->is_paginated, 'is_acl_controlled' => $widget->is_acl_controlled, 'admin_form' => $widget->admin_form, 'enabled' => (bool) $widget->enabled], true);
         $module->save();
         $dependency = new PackageDependency();
         $dependency->package_id = $package->id;
         $dependency->dependency_id = $module->id;
         $dependency->save();
     } else {
         $package->addData('widget_id', $widget->id);
     }
     $package->save();
 }