// Panel Methods _________________________________________________ function XseedPanel () { } XseedPanel.prototype.clear = function (pPanel) { try { var wRecordStatus; var wRowId; var wField; var wFieldArray = panel.getSubFields( pPanel ); // Disable panel fields for (i = 0; i < wFieldArray.length; i++) { wField = wFieldArray[i]; setProperty(wField, "value", ""); wField.setAttribute("originalValue", ""); } var wPanel = getElement(pPanel); if (wPanel.getAttribute("originalClass") == "DBPanel") { wRecordStatus = getElement(wPanel.id + "_recordStatus"); wRowId = getElement(wPanel.id + "_rowid"); if (wRecordStatus.value == "DELETE") { panel.resetBorderColor(wPanel); } wRecordStatus.value = ""; wRowId.value = ""; } else if (wPanel.getAttribute("originalClass") == "DBCollection") { var wOccurs = parseInt( get(wPanel.id + "_occurs") ); for (var i = 0; i < wOccurs; i++) { wRecordStatus = getElement(wPanel.id + "_panel_" + i + "_recordStatus"); wRowId = getElement(wPanel.id + "_panel_" + i + "_rowid"); if (wRecordStatus.value == "DELETE") { panel.resetBorderColor(wPanel.id + "_panel_" + i); } wRecordStatus.value = ""; wRowId.value = ""; } } } catch (Err) { fatalMsg(Err, "panel.clear"); } } // Transforma um objeto ArrayLike em Array - É similiar a copyArray() do XseedRts.js XseedPanel.prototype.toArray = function (pArrayLike) { try { var wArray = []; for (var i = 0; i < pArrayLike.length; ++i) { wArray.push(pArrayLike[i]); } return wArray; } catch (Err) { fatalMsg(Err, "panel.toArray"); } } XseedPanel.prototype.getSubFields = function (pPanelName) { try { var wPanel; var wTagArray = new Array(); var wFieldArray = new Array(); if (typeof pPanelName == "string") { wPanel = getElement(pPanelName + "_span"); if (wPanel == null) { wPanel = getElement(pPanelName); } } else { wPanel = pPanelName; } if (wPanel == null) { alert(pPanelName + " eh igual a null!!!!!"); } // INPUT.type (button,checkbox,file,hidden,image,password,radio,reset,submit,text) // TEXTAREA.type (textarea) // SELECT.type (select-one, select-multiple) wTagArray = wTagArray.concat(this.toArray(wPanel.getElementsByTagName("INPUT"))); wTagArray = wTagArray.concat(this.toArray(wPanel.getElementsByTagName("TEXTAREA"))); wTagArray = wTagArray.concat(this.toArray(wPanel.getElementsByTagName("SELECT"))); for (var i = 0; i < wTagArray.length; ++i) { if (wTagArray[i].getAttribute("subFieldOf") != null) { wFieldArray.push(wTagArray[i]); } } return wFieldArray; } catch (Err) { fatalMsg(Err, "panel.toArray"); } } XseedPanel.prototype.setBorderColor = function (pPanel, pColor) { try { var wPanel; var wSpan; // Getting the panel object of the informed panel if (typeof pPanel == "string") { wPanel = getElement(pPanel); } else { wPanel = pPanel; } if (wPanel == null) { alert( pPanel + ", invalid Panel" ); return; } // Getting the span of the informed panel if (wPanel.getAttribute("SubPanelOf") != null) { wSpan = wPanel; } else { wSpan = getElement(wPanel.id + "_span"); } // Changing the border of the Span wSpan.style.borderColor = pColor; wSpan.style.borderStyle = "solid"; wSpan.style.borderWidth = "1px"; } catch (Err) { fatalMsg(Err, "panel.setBorderColor"); } } XseedPanel.prototype.resetBorderColor = function (pPanel) { try { var wPanel; var wSpan; // Getting the panel object of the informed panel if (typeof pPanel == "string") { wPanel = getElement(pPanel); } else { wPanel = pPanel; } if (wPanel == null) { alert( pPanel + ", invalid Panel" ); return; } // Getting the span of the informed panel if (wPanel.getAttribute("SubPanelOf") != null) { wSpan = wPanel; } else { wSpan = getElement(wPanel.id + "_span"); } // Changing the border of the Span if (wSpan.getAttribute("originalBorderColor") != null) { wSpan.style.borderColor = wSpan.getAttribute("originalBorderColor"); wSpan.style.borderStyle = "solid"; wSpan.style.borderWidth = "1px"; } else { wSpan.style.borderColor = ""; wSpan.style.borderStyle = ""; wSpan.style.borderWidth = ""; } } catch (Err) { fatalMsg(Err, "panel.resetBorderColor"); } } XseedPanel.prototype.restoreBorders = function () { try { var wRecordStatus; var wPanel; if (form.getAttribute("panelList") != null) { var wPanelList = new Array(); wPanelList = eval(form.getAttribute("panelList")); for (var wIndex in wPanelList) { wPanel = getElement(wPanelList[wIndex]); if (wPanel.getAttribute("originalClass") == "DBPanel") { wRecordStatus = getElement(wPanel.id + "_recordStatus"); if (wRecordStatus.value == "DELETE") { this.setBorderColor(wPanel, "Red"); } else { this.resetBorderColor(wPanel); } } else if (wPanel.getAttribute("originalClass") == "DBCollection") { var wOccurs = parseInt( get(wPanel.id + "_occurs") ); for (var i = 0; i < wOccurs; i++) { wRecordStatus = getElement(wPanel.id + "_panel_" + i + "_recordStatus"); if (wRecordStatus.value == "DELETE") { this.setBorderColor(wPanel.id + "_panel_" + i, "Red"); } else { this.resetBorderColor(wPanel.id + "_panel_" + i); } } } } } } catch (Err) { fatalMsg(Err, "panel.restoreBorders"); } } XseedPanel.prototype.onKeyDown = function (pThis, pEvent) { try { // Only backspace (keycode = 8) and delete (keycode = 46) will be considered if (pEvent.keyCode != 8 && pEvent.keyCode != 46) { return; } var wFormMode = getElement("form_mode"); if (pThis.getAttribute("subFieldOf") != null && wFormMode != null) { if (wFormMode.value == "PrepareQuery") { if (pThis.getAttribute("allowQuery") == "False") { alert(MSG_0203); // Field is protected against query this.cancelEvent(pEvent); pEvent.keyCode = 0; return; } var wDBPanel = getElement(pThis.getAttribute("subFieldOf")); if (wDBPanel.getAttribute("allowQuery") == "False") { alert(MSG_0207); // Panel is protected against query this.cancelEvent(pEvent); pEvent.keyCode = 0; return; } } else { var wRecordStatus = getElement(pThis.getAttribute("subFieldOf") + "_recordStatus"); if ( wRecordStatus.value == "DELETE" ) { alert(MSG_0204); // Field is protected against delete this.cancelEvent(pEvent); pEvent.keyCode = 0; return; } // Allow Insert and Allow Update validation var wRowId = getElement(pThis.getAttribute("subFieldOf") + "_rowid"); var wDBPanel = getElement(pThis.getAttribute("subFieldOf")); if ( wRowId.value == "" ) { if (pThis.getAttribute("allowInsert") == "False") { alert(MSG_0201); // Field is protected against insert this.cancelEvent(pEvent); pEvent.keyCode = 0; return; } if (wDBPanel.getAttribute("allowInsert") == "False") { alert(MSG_0205); // Panel is protected against insert this.cancelEvent(pEvent); pEvent.keyCode = 0; return; } } else { if (pThis.getAttribute("allowUpdate") == "False") { alert(MSG_0202); // Field is protected against update this.cancelEvent(pEvent); pEvent.keyCode = 0; return; } if (wDBPanel.getAttribute("allowUpdate") == "False") { alert(MSG_0206); // Panel is protected against update this.cancelEvent(pEvent); pEvent.keyCode = 0; return; } } } } } catch (Err) { fatalMsg(Err, "panel.onKeyDown"); } } XseedPanel.prototype.onKeyUp = function (pThis, pEvent) { try { /* var F2 = 113; var F4 = 115; var F7 = 118; var F8 = 119; var F12 = 123; var UP = 38; var DOWN = 40; var ESC = 27 var wLastKeyCode = document.form.getAttribute("LastKeyCode"); var wActiveControl = getElement( get("form_activeControl") ); if (wActiveControl != null && wActiveControl.getAttribute("subFieldOf") != null) { switch(wLastKeyCode) { case F2: case F4: case F7: case F8: case F12: case UP: case DOWN: if (wActiveControl.value != wActiveControl.getAttribute("OriginalValue")) { this.onChange(wActiveControl); } break; } } switch(wLastKeyCode) { case F2: form_prepareInsert(); break; case F4: form_prepareDelete(); break; case F7: form_prepareQuery(); break; case F8: form_executeQuery(); break; case F12: case ESC: form_discardChanges(); break; case UP: form_previousRecord(); break; case DOWN: form_nextRecord(); break; } */ } catch (Err) { fatalMsg(Err, "panel.onKeyUp"); } } XseedPanel.prototype.cancelEvent = function (pEvent) { try { if (document.all) { pEvent.returnValue = false; } else { pEvent.preventDefault(); } } catch (Err) { fatalMsg(Err, "xseed.onPaste"); } } var panel = new XseedPanel();