public function setObjectorder($parameters = array())
 {
     $id = $parameters['id'];
     $gridid = $parameters['gridid'];
     $popup = new popupController();
     $grid = new mygrid($gridid);
     $model = $grid->getModel();
     $linkmodel = $grid->getModel();
     $object = $model->getfromId($id);
     if (count($object) == 1) {
         $object = $object[0];
         $view = new ui($this);
         $form = new form($parameters);
         $form->addField(new hiddenField('gridid', $gridid));
         $form->addField(new hiddenField('id', $id));
         $form->addField(new textField('order', 'Order', $object->_get($grid->getOrderfield()), array('required', 'numeric', 'range:1<->' . $model->getMax($grid->getOrderfield(), $grid->getConditions()))));
         if ($form->validate()) {
             $curlink = $object;
             if ($object->_get($grid->getOrderfield()) > $form->getFieldvalue('order')) {
                 $cond = array($grid->getOrderfield() => array('mode' => 'BETWEEN', 'value' => $form->getFieldvalue('order'), 'topvalue' => $object->_get($grid->getOrderfield())));
                 $links = $linkmodel->get(array('AND' => array($cond, $grid->getConditions())));
                 try {
                     foreach ($links as $link) {
                         $link->setOrder($link->getOrder() + 1);
                         $linkmodel->save($link);
                     }
                     $curlink->setOrder($form->getFieldvalue('order'));
                     $linkmodel->save($curlink);
                 } catch (Exception $e) {
                     $popup->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De wijziging is niet doorgevoerd! Raadpleeg de informaticadienst.'));
                     return false;
                 }
             } elseif ($object->_get($grid->getOrderfield()) < $form->getFieldvalue('order')) {
                 $cond = array($grid->getOrderfield() => array('mode' => 'BETWEEN', 'value' => $object->_get($grid->getOrderfield()), 'topvalue' => $form->getFieldvalue('order')));
                 $links = $linkmodel->get(array('AND' => array($cond, $grid->getConditions())));
                 try {
                     foreach ($links as $link) {
                         $link->setOrder($link->getOrder() - 1);
                         $linkmodel->save($link);
                     }
                     $curlink->setOrder($form->getFieldvalue('order'));
                     $linkmodel->save($curlink);
                 } catch (Exception $e) {
                     $popup->createflash(array('name' => 'error', 'type' => 'error', 'content' => 'De wijziging is niet doorgevoerd! Raadpleeg de informaticadienst.'));
                     return false;
                 }
             } else {
                 $popup->createflash(array('name' => 'warning', 'type' => 'warning', 'content' => 'De nieuwe plaats was dezelfde als de oude plaats. Er is dus niets gewijzigd.'));
                 $this->response->assign('gridextra_' . $gridid, 'innerHTML', '');
                 return false;
             }
             $popup->createflash(array('name' => 'success', 'type' => 'success', 'content' => 'De wijziging is goed doorgevoerd.'));
             $gridcontr = new mygridController();
             $gridcontr->reloadgrid($gridid);
             $this->response->assign('gridextra_' . $gridid, 'innerHTML', '');
         } elseif (!$form->isSent()) {
             $view->assign('form', $form);
             $view->assign('closeextra', new ajaxrequest('mygrid', 'closeextra', array('id' => 'gridextra_' . $gridid)));
             $this->response->assign('gridextra_' . $gridid, 'innerHTML', $view->fetch($parameters['viewprefix'] . 'mygrid_setobjectorder.tpl'));
         }
     }
 }