diff options
Diffstat (limited to 'editor/ui/dialogs/content/EdInsertTable.js')
-rw-r--r-- | editor/ui/dialogs/content/EdInsertTable.js | 220 |
1 files changed, 0 insertions, 220 deletions
diff --git a/editor/ui/dialogs/content/EdInsertTable.js b/editor/ui/dialogs/content/EdInsertTable.js deleted file mode 100644 index fbbad4cc5..000000000 --- a/editor/ui/dialogs/content/EdInsertTable.js +++ /dev/null @@ -1,220 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -//Cancel() is in EdDialogCommon.js - -var gTableElement = null; -var gRows; -var gColumns; -var gActiveEditor; - -// dialog initialization code -function Startup() -{ - gActiveEditor = GetCurrentTableEditor(); - if (!gActiveEditor) - { - dump("Failed to get active editor!\n"); - window.close(); - return; - } - - try { - gTableElement = gActiveEditor.createElementWithDefaults("table"); - } catch (e) {} - - if(!gTableElement) - { - dump("Failed to create a new table!\n"); - window.close(); - return; - } - gDialog.rowsInput = document.getElementById("rowsInput"); - gDialog.columnsInput = document.getElementById("columnsInput"); - gDialog.widthInput = document.getElementById("widthInput"); - gDialog.borderInput = document.getElementById("borderInput"); - gDialog.widthPixelOrPercentMenulist = document.getElementById("widthPixelOrPercentMenulist"); - gDialog.OkButton = document.documentElement.getButton("accept"); - - // Make a copy to use for AdvancedEdit - globalElement = gTableElement.cloneNode(false); - try { - if (Services.prefs.getBoolPref("editor.use_css") && IsHTMLEditor() - && !(gActiveEditor.flags & Components.interfaces.nsIPlaintextEditor.eEditorMailMask)) - { - // only for Composer and not for htmlmail - globalElement.setAttribute("style", "text-align: left;"); - } - } catch (e) {} - - // Initialize all widgets with image attributes - InitDialog(); - - // Set initial number to 2 rows, 2 columns: - // Note, these are not attributes on the table, - // so don't put them in InitDialog(), - // else the user's values will be trashed when they use - // the Advanced Edit dialog - gDialog.rowsInput.value = 2; - gDialog.columnsInput.value = 2; - - // If no default value on the width, set to 100% - if (gDialog.widthInput.value.length == 0) - { - gDialog.widthInput.value = "100"; - gDialog.widthPixelOrPercentMenulist.selectedIndex = 1; - } - - SetTextboxFocusById("rowsInput"); - - SetWindowLocation(); -} - -// Set dialog widgets with attribute data -// We get them from globalElement copy so this can be used -// by AdvancedEdit(), which is shared by all property dialogs -function InitDialog() -{ - // Get default attributes set on the created table: - // Get the width attribute of the element, stripping out "%" - // This sets contents of menu combobox list - // 2nd param = null: Use current selection to find if parent is table cell or window - gDialog.widthInput.value = InitPixelOrPercentMenulist(globalElement, null, "width", "widthPixelOrPercentMenulist", gPercent); - gDialog.borderInput.value = globalElement.getAttribute("border"); -} - -function ChangeRowOrColumn(id) -{ - // Allow only integers - forceInteger(id); - - // Enable OK only if both rows and columns have a value > 0 - var enable = gDialog.rowsInput.value.length > 0 && - gDialog.rowsInput.value > 0 && - gDialog.columnsInput.value.length > 0 && - gDialog.columnsInput.value > 0; - - SetElementEnabled(gDialog.OkButton, enable); - SetElementEnabledById("AdvancedEditButton1", enable); -} - - -// Get and validate data from widgets. -// Set attributes on globalElement so they can be accessed by AdvancedEdit() -function ValidateData() -{ - gRows = ValidateNumber(gDialog.rowsInput, null, 1, gMaxRows, null, null, true) - if (gValidationError) - return false; - - gColumns = ValidateNumber(gDialog.columnsInput, null, 1, gMaxColumns, null, null, true) - if (gValidationError) - return false; - - // Set attributes: NOTE: These may be empty strings (last param = false) - ValidateNumber(gDialog.borderInput, null, 0, gMaxPixels, globalElement, "border", false); - // TODO: Deal with "BORDER" without value issue - if (gValidationError) return false; - - ValidateNumber(gDialog.widthInput, gDialog.widthPixelOrPercentMenulist, - 1, gMaxTableSize, globalElement, "width", false); - if (gValidationError) - return false; - - return true; -} - - -function onAccept() -{ - if (ValidateData()) - { - gActiveEditor.beginTransaction(); - try { - gActiveEditor.cloneAttributes(gTableElement, globalElement); - - // Create necessary rows and cells for the table - var tableBody = gActiveEditor.createElementWithDefaults("tbody"); - if (tableBody) - { - gTableElement.appendChild(tableBody); - - // Create necessary rows and cells for the table - for (var i = 0; i < gRows; i++) - { - var newRow = gActiveEditor.createElementWithDefaults("tr"); - if (newRow) - { - tableBody.appendChild(newRow); - for (var j = 0; j < gColumns; j++) - { - var newCell = gActiveEditor.createElementWithDefaults("td"); - if (newCell) - { - newRow.appendChild(newCell); - } - } - } - } - } - // Detect when entire cells are selected: - // Get number of cells selected - var tagNameObj = { value: "" }; - var countObj = { value: 0 }; - var element = gActiveEditor.getSelectedOrParentTableElement(tagNameObj, countObj); - var deletePlaceholder = false; - - if (tagNameObj.value == "table") - { - //Replace entire selected table with new table, so delete the table - gActiveEditor.deleteTable(); - } - else if (tagNameObj.value == "td") - { - if (countObj.value >= 1) - { - if (countObj.value > 1) - { - // Assume user wants to replace a block of - // contiguous cells with a table, so - // join the selected cells - gActiveEditor.joinTableCells(false); - - // Get the cell everything was merged into - element = gActiveEditor.getFirstSelectedCell(); - - // Collapse selection into just that cell - gActiveEditor.selection.collapse(element,0); - } - - if (element) - { - // Empty just the contents of the cell - gActiveEditor.deleteTableCellContents(); - - // Collapse selection to start of empty cell... - gActiveEditor.selection.collapse(element,0); - // ...but it will contain a <br> placeholder - deletePlaceholder = true; - } - } - } - - // true means delete selection when inserting - gActiveEditor.insertElementAtSelection(gTableElement, true); - - if (deletePlaceholder && gTableElement && gTableElement.nextSibling) - { - // Delete the placeholder <br> - gActiveEditor.deleteNode(gTableElement.nextSibling); - } - } catch (e) {} - - gActiveEditor.endTransaction(); - - SaveWindowLocation(); - return true; - } - return false; -} |