[ Index ] |
|
Code source de Kupu-1.3.5 |
1 /***************************************************************************** 2 * 3 * Copyright (c) 2003-2005 Kupu Contributors. All rights reserved. 4 * 5 * This software is distributed under the terms of the Kupu 6 * License. See LICENSE.txt for license text. For a list of Kupu 7 * Contributors see CREDITS.txt. 8 * 9 *****************************************************************************/ 10 11 // $Id: kupubasetools.js 6120 2004-08-22 23:23:42Z roku $ 12 13 TableTool.prototype.setTableRowRepeat = function() { 14 var selNode = this.editor.getSelectedNode(); 15 var row = this.editor.getNearestParentOfType(selNode, 'tr'); 16 if (!row) { 17 this.editor.logMessage(_('Not inside a row!'), 1); 18 return; 19 }; 20 row.setAttribute('repeatable', 'repeatable'); 21 row.className = 'repeatable'; 22 this.editor.logMessage(_('Row repeated')); 23 this.updateState(selNode); 24 }; 25 26 TableTool.prototype.delTableRowRepeat = function() { 27 var selNode = this.editor.getSelectedNode(); 28 var row = this.editor.getNearestParentOfType(selNode, 'tr'); 29 if (!row) { 30 this.editor.logMessage(_('Not inside a row!'), 1); 31 return; 32 }; 33 row.removeAttribute('repeatable'); 34 row.className = ''; 35 row.removeAttribute('class'); 36 this.editor.logMessage(_('Row repeat turned off')); 37 this.updateState(selNode); 38 }; 39 40 function CNFTableToolBox(addtabledivid, edittabledivid, newrowsinputid, 41 newcolsinputid, makeheaderinputid, classselectid, alignselectid, addtablebuttonid, 42 addrowbuttonid, delrowbuttonid, setrowrepeatbuttonid, delrowrepeatbuttonid, 43 addcolbuttonid, delcolbuttonid, fixbuttonid, 44 fixallbuttonid, toolboxid, plainclass, activeclass) { 45 46 this.addtablediv = getFromSelector(addtabledivid); 47 this.edittablediv = getFromSelector(edittabledivid); 48 this.newrowsinput = getFromSelector(newrowsinputid); 49 this.newcolsinput = getFromSelector(newcolsinputid); 50 this.makeheaderinput = getFromSelector(makeheaderinputid); 51 this.classselect = getFromSelector(classselectid); 52 this.alignselect = getFromSelector(alignselectid); 53 this.addtablebutton = getFromSelector(addtablebuttonid); 54 this.addrowbutton = getFromSelector(addrowbuttonid); 55 this.delrowbutton = getFromSelector(delrowbuttonid); 56 this.setrowrepeatbutton = getFromSelector(setrowrepeatbuttonid); 57 this.delrowrepeatbutton = getFromSelector(delrowrepeatbuttonid); 58 this.addcolbutton = getFromSelector(addcolbuttonid); 59 this.delcolbutton = getFromSelector(delcolbuttonid); 60 this.fixbutton = getFromSelector(fixbuttonid); 61 this.fixallbutton = getFromSelector(fixallbuttonid); 62 this.toolboxel = getFromSelector(toolboxid); 63 this.plainclass = plainclass; 64 this.activeclass = activeclass; 65 66 this.initialize = function(tool, editor) { 67 /* attach the event handlers */ 68 this.tool = tool; 69 this.editor = editor; 70 // build the select list of table classes if configured 71 if (this.editor.config.table_classes) { 72 var classes = this.editor.config.table_classes['class']; 73 while (this.classselect.hasChildNodes()) { 74 this.classselect.removeChild(this.classselect.firstChild); 75 }; 76 for (var i=0; i < classes.length; i++) { 77 var classname = classes[i]; 78 var option = document.createElement('option'); 79 var content = document.createTextNode(classname); 80 option.appendChild(content); 81 option.setAttribute('value', classname); 82 this.classselect.appendChild(option); 83 }; 84 }; 85 addEventHandler(this.addtablebutton, "click", this.addTable, this); 86 addEventHandler(this.addrowbutton, "click", this.tool.addTableRow, this.tool); 87 addEventHandler(this.delrowbutton, "click", this.tool.delTableRow, this.tool); 88 addEventHandler(this.setrowrepeatbutton, "click", this.tool.setTableRowRepeat, this.tool); 89 addEventHandler(this.delrowrepeatbutton, "click", this.tool.delTableRowRepeat, this.tool); 90 addEventHandler(this.addcolbutton, "click", this.tool.addTableColumn, this.tool); 91 addEventHandler(this.delcolbutton, "click", this.tool.delTableColumn, this.tool); 92 addEventHandler(this.alignselect, "change", this.setColumnAlign, this); 93 addEventHandler(this.classselect, "change", this.setTableClass, this); 94 addEventHandler(this.fixbutton, "click", this.tool.fixTable, this.tool); 95 addEventHandler(this.fixallbutton, "click", this.tool.fixAllTables, this.tool); 96 this.addtablediv.style.display = "block"; 97 this.edittablediv.style.display = "none"; 98 this.editor.logMessage(_('Table tool initialized')); 99 }; 100 101 this.updateState = function(selNode) { 102 /* update the state (add/edit) and update the pulldowns (if required) */ 103 var table = this.editor.getNearestParentOfType(selNode, 'table'); 104 if (table) { 105 this.addtablediv.style.display = "none"; 106 this.edittablediv.style.display = "block"; 107 108 var align = this.tool._getColumnAlign(selNode); 109 selectSelectItem(this.alignselect, align); 110 selectSelectItem(this.classselect, table.className); 111 if (this.toolboxel) { 112 this.toolboxel.className = this.activeclass; 113 }; 114 var row = this.editor.getNearestParentOfType(selNode, 'tr'); 115 var isRepeatable = row.getAttribute('repeatable'); 116 if (isRepeatable) { 117 this.setrowrepeatbutton.style.display = 'none'; 118 this.delrowrepeatbutton.style.display = 'inline'; 119 } else { 120 this.setrowrepeatbutton.style.display = 'inline'; 121 this.delrowrepeatbutton.style.display = 'none'; 122 }; 123 } else { 124 this.edittablediv.style.display = "none"; 125 this.addtablediv.style.display = "block"; 126 this.alignselect.selectedIndex = 0; 127 this.classselect.selectedIndex = 0; 128 if (this.toolboxel) { 129 this.toolboxel.className = this.plainclass; 130 }; 131 }; 132 }; 133 }; 134 135 CNFTableToolBox.prototype = new TableToolBox;
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 15:30:41 2007 | par Balluche grâce à PHPXref 0.7 |