private function _duplicate($from_field_id, $to_field_id, $by_reference)
 {
     //duplicate users info, if any
     $dao = new Tracker_FormElement_Field_List_Bind_UsersDao();
     $dao->duplicate($from_field_id, $to_field_id);
     //duplicate Static info, if any
     $dao = new Tracker_FormElement_Field_List_Bind_StaticDao();
     $dao->duplicate($from_field_id, $to_field_id);
     $value_mapping = array();
     //duplicate Static value, if any
     $dao = new Tracker_FormElement_Field_List_Bind_Static_ValueDao();
     foreach ($dao->searchByFieldId($from_field_id, 0) as $row) {
         if ($id = $dao->duplicate($row['id'], $to_field_id, $by_reference)) {
             $value_mapping[$row['id']] = $id;
         }
     }
     //duplicate Ugroups value, if any
     $dao = $this->getUgroupsValueDao();
     foreach ($dao->searchByFieldId($from_field_id) as $row) {
         if ($id = $dao->duplicate($row['id'], $to_field_id)) {
             $value_mapping[$row['id']] = $id;
         }
     }
     $dao = new Tracker_FormElement_Field_List_Bind_DefaultvalueDao();
     $dao->duplicate($from_field_id, $to_field_id, $value_mapping);
     $dao = new Tracker_FormElement_Field_List_BindDecoratorDao();
     $dao->duplicate($from_field_id, $to_field_id, $value_mapping);
     return $value_mapping;
 }
 /**
  * Delete a decorator
  */
 public static function delete($field_id, $value_id)
 {
     $dao = new Tracker_FormElement_Field_List_BindDecoratorDao();
     $dao->delete($field_id, $value_id);
 }