summaryrefslogtreecommitdiff
path: root/editor/ui/dialogs/content/EdInsertTable.js
diff options
context:
space:
mode:
Diffstat (limited to 'editor/ui/dialogs/content/EdInsertTable.js')
-rw-r--r--editor/ui/dialogs/content/EdInsertTable.js220
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;
-}