Index: globals.js =================================================================== --- globals.js (revision 84) +++ globals.js (working copy) @@ -8,6 +8,7 @@ * OS dependent button-reverse patch by Harjo Kompagnie * Many JSDoc (Servoy 6.0/6.1) fixes by Sanneke Aleman * RuntimeForm support in FIMD by Sanneke Aleman + * 2012.Oct.14 Patch for form in dialog not creating proper form by Tom Parry * * @properties={typeid:35,uuid:"EFF9564C-DBDB-4087-A9DF-A56826FE2CC7",variableType:-4} */ @@ -81,7 +82,9 @@ //Create requested blueprint if (!forms[_sFormName]) { - var _oForm = solutionModel.newForm(_sFormName, forms[_sBaseFormName].controller.getDataSource(), _sStyleSheet, false, _nWidth, _nHeight); + var base_form = solutionModel.getForm(_sBaseFormName);//tp assumes not null! + var ds = base_form.dataSource;//tp + var _oForm = solutionModel.newForm(_sFormName, ds, _sStyleSheet, false, _nWidth, _nHeight); _oForm.extendsForm = _sBaseFormName; //Store pointer to otherwise private method on the form, to be used when hiding the form @@ -112,8 +115,9 @@ if (_aArgs[0] instanceof RuntimeForm) _aArgs[0] = _aArgs[0].controller.getName() if (_sDlgType == 'FIMD') { - dialogWindow = application.createWindow("W_" + _sUniqueName, JSWindow.MODAL_DIALOG); - dialogWindow.setLocation(_aArgs[1] | JSWindow.DEFAULT, _aArgs[2] || JSWindow.DEFAULT); + var win_name = "W_" + _sUniqueName;//tp + dialogWindow = application.createWindow(win_name, JSWindow.MODAL_DIALOG);//tp + dialogWindow.setLocation(_aArgs[1] || JSWindow.DEFAULT, _aArgs[2] || JSWindow.DEFAULT);//tp changed single | to double || if (_aArgs[5]) { dialogWindow.title = _aArgs[5]; } else { @@ -121,18 +125,19 @@ } dialogWindow.resizable = (_aArgs[6] == null ? true : _aArgs[6]); dialogWindow.showTextToolbar(_aArgs[7] == null ? false : _aArgs[7]); - forms[_aArgs[0]]['windowName'] = "W_" + _sUniqueName; + forms[_aArgs[0]]['windowName'] = win_name; if (application.getApplicationType() == APPLICATION_TYPES.WEB_CLIENT) { var _nWidth = (_aArgs[3] == null || _aArgs[3] == JSWindow.DEFAULT) ? solutionModel.getForm(_aArgs[0]).width : _aArgs[3]; var _nHeight = (_aArgs[4] == null || _aArgs[4] == JSWindow.DEFAULT) ? solutionModel.getForm(_aArgs[0]).getBodyPart().height : _aArgs[4]; - newFormBluePrint(_sUniqueName, 'dialogs_fimd', _nWidth, _nHeight); + var _extended = 'X_' + _sUniqueName;//tp + newFormBluePrint(_extended, 'dialogs_fimd', _nWidth, _nHeight);//tp /** @type {RuntimeForm}*/ - var form = forms[_sUniqueName]; + var form = forms[_extended];//tp form.continuation = new Continuation(); // saves the current methodStack into variable x, so it can be continued later on - form.windowName = "W_" + _sUniqueName; - form.setupForm(_aArgs[0], _nWidth, _nHeight); + form.windowName = win_name;//tp + form.setupForm(_sUniqueName, _nWidth, _nHeight);//tp // Need to add 22 pixels to the width with the original (built-in) servoy stylesheet or else you get scrollbars. You may want to adjust this value when you use a custom (override) stylesheet dialogWindow.setSize(_nWidth + _nWidthPadding, _nHeight); @@ -350,8 +355,8 @@ /** * Show a Form In Modal Dialog - * - * @param {String||RuntimeForm} formName + * NOTE:2012.Oct.11 T.Parry changed from @param {String||RuntimeForm} to @param {String|RuntimeForm} formName + * @param {String|RuntimeForm} formName * @param {Number} [left] * @param {Number} [top] * @param {Number} [width] Index: forms/dialogs_base.js =================================================================== --- forms/dialogs_base.js (revision 84) +++ forms/dialogs_base.js (working copy) @@ -7,7 +7,7 @@ /** * @type {String} - * @properties={typeid:35,uuid:"6F681452-1E7D-4320-AC85-9CFBB4B12030",variableType:12} + * @properties={typeid:35,uuid:"6F681452-1E7D-4320-AC85-9CFBB4B12030"} */ var returnValue = ''; @@ -37,7 +37,7 @@ /** * @type {String} * - * @properties={typeid:35,uuid:"EC0A188F-684C-4DCC-817B-AA573B9DD8FA",variableType:12} + * @properties={typeid:35,uuid:"EC0A188F-684C-4DCC-817B-AA573B9DD8FA"} */ var windowName; @@ -94,7 +94,7 @@ */ function setupButtons(buttonArray, redraw, dialogWidth, dialogHeight) { var _oForm = solutionModel.getForm(controller.getName()), - _oMethod = solutionModel.getForm("dialogs_base").getFormMethod('onButtonAction'), + _oMethod = solutionModel.getForm("dialogs_base").getMethod('onButtonAction'), //tp changed .getFormMethod (deprecated) to .getMethod _oBtn, _nBtnMinWidth = 80, _nBtnWidth, // = _nBtnMinWidth, Index: forms/dialogs_fimd.js =================================================================== --- forms/dialogs_fimd.js (revision 84) +++ forms/dialogs_fimd.js (working copy) @@ -1,4 +1,7 @@ /** + * @param {String} _sFormName + * @param {Number} _nWidth + * @param {Number} _nHeight * @properties={typeid:24,uuid:"D81D27BA-0DFB-41A5-9251-47C3EDA9F260"} */ function setupForm(_sFormName, _nWidth, _nHeight) { @@ -19,4 +22,4 @@ function onHide(event) { elements.tplMain.removeAllTabs(); // workaround for an issue in 5.2.8 and below. Should be fixed in 5.2.9 return _super.onHide(event) -} +} \ No newline at end of file