public static function getInstance()
 {
     if (self::$instance === null) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 protected function buildFrom() {
     $this->_selectBuilder->from->add(Gpf_Db_Table_ActiveViews::getName(), 'av');
     $this->_selectBuilder->from->addLeftJoin(Gpf_Db_Table_Views::getName(), 'v', 'av.'.Gpf_Db_Table_ActiveViews::ACTIVEVIEWID.' = v.'.Gpf_Db_Table_Views::ID);
     $this->_selectBuilder->where->add('av.'.Gpf_Db_Table_ActiveViews::ACCOUNTUSERID, '=', Gpf_Session::getAuthUser()->getUserData()->get(Gpf_Db_Table_Users::ID));
     
     $whereCond = new Gpf_SqlBuilder_CompoundWhereCondition();
     $whereCond->add('v.'.Gpf_Db_Table_Views::ACCOUNTUSERID, '!=', '', 'OR');
     $whereCond->add('av.'.Gpf_Db_Table_ActiveViews::ACTIVEVIEWID, '=', Gpf_View_ViewService::DEFAULT_VIEW_ID, 'OR');
     
     $this->_selectBuilder->where->addCondition($whereCond);
 }
    protected function saveView(Gpf_Db_View $view, Gpf_Rpc_Form $form) {
        $view->set('accountuserid', $this->getUserId());
        $view->set('viewtype', $form->getFieldValue('gridcode'));
        $view->save();
        $view->load();
        
        $viewId = $view->get(Gpf_Db_Table_Views::ID);
        $viewColumns = Gpf_Db_Table_ViewColumns::getInstance();
        $viewColumns->deleteAll($viewId);
        $rorder = 0;
        $columns = new Gpf_Data_RecordSet();
        $columns->loadFromArray($form->getFieldValue('columns'));

        foreach ($columns as $column) {
            $viewColumn = new Gpf_Db_ViewColumn();
            $viewColumn->set('viewid', $viewId);
            $viewColumn->set('name', $column->get('id'));
            $viewColumn->set('sorted', $column->get('sorted'));
            $viewColumn->set('width', $column->get('width'));
            $viewColumn->set('rorder', $rorder++);
            $viewColumn->save();
        }
        $form->setInfoMessage($this->_('View %s saved',$form->getFieldValue('name')));
        $form->setField('Id',$view->getId());
        $activeViewsTable = Gpf_Db_Table_ActiveViews::getInstance();
        $activeViewsTable->saveActiveView($view->get("viewtype"), $viewId);
    }
 function init()
 {
     $this->setTable(Gpf_Db_Table_ActiveViews::getInstance());
     parent::init();
 }