/**
  * Add records to the list.
  */
 protected function processAll($filepath, $preview = false)
 {
     $iterator = $this->getSource()->getIterator();
     $results = new BetterBulkLoader_Result();
     foreach ($iterator as $record) {
         if ($id = $this->processRecord($record, $this->columnMap, $results, $preview)) {
             $this->list->add($id);
         }
     }
     return $results;
 }
 /**
  * Handles the given action context.
  * 
  * @param GridField $gridField  GridField to handle action for
  * @param string    $actionName Name of the action to handle
  * @param array     $arguments  Arguments
  * @param array     $data       Post data to handle
  * 
  * @return string
  * 
  * @author Sebastian Diel <*****@*****.**>
  * @since 14.03.2013
  */
 public function handleAction(GridField $gridField, $actionName, $arguments, $data)
 {
     if ($actionName == 'addsubobject') {
         $recordID = $data['SubObjectParentID'];
         $subObjectID = $data[$gridField->getModelClass() . 'SubObjects'][$recordID];
         $list = $gridField->getList();
         $parent = DataObject::get($gridField->getModelClass())->byID($recordID);
         $subObject = DataObject::get($this->targetClassName)->byID($subObjectID);
         if ($subObject instanceof $this->targetClassName && $subObject->exists()) {
             $this->subList->add($subObject);
         }
     } elseif ($actionName == 'removesubobject' || $actionName == 'activatesubobject' || $actionName == 'deactivatesubobject' || $actionName == 'defaultsubobject' || $actionName == 'undefaultsubobject') {
         $recordID = $data['SubObjectParentID'];
         $subObjectID = $data['SubObjectID'];
         $list = $gridField->getList();
         $parent = DataObject::get($gridField->getModelClass())->byID($recordID);
         $subObject = DataObject::get($this->targetClassName)->byID($subObjectID);
         if ($subObject instanceof $this->targetClassName && $subObject->exists()) {
             if ($actionName == 'defaultsubobject' || $actionName == 'undefaultsubobject') {
                 $this->subList->add($subObject, array('IsDefault' => $actionName == 'defaultsubobject'));
             } elseif ($actionName == 'activatesubobject' || $actionName == 'deactivatesubobject') {
                 $this->subList->add($subObject, array('IsActive' => $actionName == 'activatesubobject'));
             } elseif ($actionName == 'removesubobject') {
                 $this->subList->remove($subObject);
             }
         }
     }
 }