formInDialog in the find mode

If I show a formInDialog in the find mode by clicking a button, the find mode automatically returns to browse mode.
the application.showFormInDialog automatically trigger that.

Please see my methods:

method mod_functions_utils_datePicker

var fieldName = application.getMethodTriggerElementName();
var frmName = application.getMethodTriggerFormName();
var sourceFrmObj = forms[frmName];

var fieldNameArr   = fieldName.split("$");
fieldName = fieldNameArr[0];
var datePickerType = fieldNameArr[1];

globals.mod_functions_datePickerObj = new Object();
var datePickerObj = globals.mod_functions_datePickerObj;

datePickerObj.fieldName = fieldName;
datePickerObj.datePickerType = datePickerType;
datePickerObj.sourceFrmObj = sourceFrmObj;

if (datePickerObj.datePickerType == "single") {
   application.showFormInDialog(forms.mod_functions_showSingleDate,  -1,  -1,  254,  264,  "Choose date",  false,  false,  false);
}
else if (datePickerObj.datePickerType == "range") {
   application.showFormInDialog(forms.mod_functions_showRangeDate,  -1,  -1,  500,  262,  "Choose date range",  false,  false,  false);
}


//*** work around executing this method in find mode
if(false) { 
   controller.search();
}

method mod_functions_utils_datePickerSet

var btnName = application.getMethodTriggerElementName();
var datePickerObj = globals.mod_functions_datePickerObj;
var sourceFrmObj = datePickerObj.sourceFrmObj;

if (datePickerObj.datePickerType == "single") {
   if (btnName == "cancel") {
      application.closeFormDialog();
      return;
   }
   var frmObj = forms.mod_functions_showSingleDate;
   var jCalendar1 = frmObj.elements.jCalendar1;
   var dateSelected = new Date(jCalendar1.date.getYear() + 1900, 
                               jCalendar1.date.getMonth(), 
                               jCalendar1.date.getDate());
   //plugins.dialogs.showErrorDialog( "", jCalendar1.date.getYear());
   sourceFrmObj[datePickerObj.fieldName] = dateSelected;
   application.closeFormDialog();
}
else if (datePickerObj.datePickerType == "range") {
   if (btnName == "cancel") {
      application.closeFormDialog();
      return;
   }
   var frmObj = forms.mod_functions_showRangeDate;
   var jCalendar1 = frmObj.elements.jCalendar1;
   var jCalendar2 = frmObj.elements.jCalendar2;
   var dateSelected1 = new Date(jCalendar1.date.getYear() + 1900, 
                                jCalendar1.date.getMonth(), 
                                jCalendar1.date.getDate());
   var dateSelected2 = new Date(jCalendar2.date.getYear() + 1900, 
                                jCalendar2.date.getMonth(), 
                                jCalendar2.date.getDate());

   var dateString = utils.dateFormat(dateSelected1, 'dd-MM-yyyy') + "..." + 
                      utils.dateFormat(dateSelected2, 'dd-MM-yyyy') + "|dd-MM-yyyy";
    
   sourceFrmObj[datePickerObj.fieldName] = dateString;
   application.closeFormDialog();
}


//*** work around executing this method in find mode
if(false) { 
   controller.search();
}

Servoy Developer
Version 3.0b3-build 364
Java version 1.5.0_04-b05 (Windows XP)

Please help me on this. I guess this is a serious bug and quite simple for servoy guys to fix it. Please let me know there is a fix in the next beta.

Thanks a lot!!