function insert(&$obj)
 {
     // set dirty to detail in force.
     // detail never dirty before because detail has only
     // primary key(binder_id).
     $detail =& $obj->getVar('detail');
     if ($detail->isNew()) {
         $detail->setDirty();
     }
     return parent::insert($obj);
 }
 function XNPModelCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnpmodel');
 }
 function XNPSimulatorCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnpsimulator');
 }
 function XNPConferenceCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnpconference');
 }
 function XNPMemoCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnpmemo');
 }
 function XNPDataCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnpdata');
 }
 function XNPBookCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnpbook');
 }
 function XNPPresentationCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnppresentation');
 }
 function XNPToolCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnptool');
 }
 /**
  * return url to show item detail.
  * @access public
  * 
  */
 function getItemDetailUrl($item_id)
 {
     $handler = new XooNIpsItemInfoCompoHandler($this->db);
     return $handler->getItemDetailUrl($item_id);
 }
 function XNPFilesCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnpfiles');
 }
 function XNPPaperCompoHandler(&$db)
 {
     parent::XooNIpsItemInfoCompoHandler($db, 'xnppaper');
 }