/**
  * Method to auto-populate the model state.
  * Note: Calling getState in this method will result in recursion.
  *
  * @return    void
  */
 protected function populateState()
 {
     // Initialise variables.
     $app = JFactory::getApplication();
     $table = $this->getTable();
     $key = $table->getKeyName();
     // Get the pk of the record from the request.
     $pk = JRequest::getInt($key);
     $this->setState($this->getName() . '.id', $pk);
     if ($pk) {
         $table = $this->getTable();
         if ($table->load($pk)) {
             $project = (int) $table->project_id;
             $this->setState($this->getName() . '.project', $project);
             PFApplicationHelper::setActiveProject($project);
             $item_id = (int) $table->item_id;
             $this->setState($this->getName() . '.item_id', $item_id);
             $context = $table->context;
             $this->setState($this->getName() . '.context', $context);
         }
     } else {
         $item_id = JRequest::getUInt('filter_item_id', 0);
         $this->setState($this->getName() . '.item_id', $item_id);
         $context = JRequest::getCmd('filter_context', '');
         $this->setState($this->getName() . '.context', $context);
         $project = (int) PFApplicationHelper::getActiveProject('filter_project');
         if ($project) {
             $this->setState($this->getName() . '.project', $project);
             PFApplicationHelper::setActiveProject($project);
         }
     }
     // Load the parameters.
     $value = JComponentHelper::getParams($this->option);
     $this->setState('params', $value);
 }