data.info[id] = this.getValue();\r
};\r
\r
+ function tableColumns( table )\r
+ {\r
+ var cols = 0, maxCols = 0;\r
+ for ( var i = 0, row, rows = table.$.rows.length; i < rows; i++ )\r
+ {\r
+ row = table.$.rows[ i ], cols = 0;\r
+ for ( var j = 0, cell, cells = row.cells.length; j < cells; j++ )\r
+ {\r
+ cell = row.cells[ j ];\r
+ cols += cell.colSpan;\r
+ }\r
+\r
+ cols > maxCols && ( maxCols = cols );\r
+ }\r
+\r
+ return maxCols;\r
+ }\r
+\r
function tableDialog( editor, command )\r
{\r
var makeElement = function( name )\r
},\r
setup : function( selectedTable )\r
{\r
- this.setValue( selectedTable.$.rows[0].cells.length);\r
+ this.setValue( tableColumns( selectedTable ) );\r
},\r
commit : commitValue\r
},\r
for ( var row = 0 ; row < selectedTable.$.rows.length ; row++ )\r
{\r
// If just one cell isn't a TH then it isn't a header column\r
- if ( selectedTable.$.rows[row].cells[0].nodeName.toLowerCase() != 'th' )\r
+ var headCell = selectedTable.$.rows[row].cells[0];\r
+ if ( headCell && headCell.nodeName.toLowerCase() != 'th' )\r
{\r
dialog.hasColumnHeaders = false;\r
break;\r
id : 'txtWidth',\r
controlStyle : 'width:5em',\r
label : editor.lang.common.width,\r
+ title : editor.lang.common.cssLengthTooltip,\r
'default' : 500,\r
getValue : defaultToPixel,\r
validate : CKEDITOR.dialog.validate.cssLength( editor.lang.common.invalidCssLength.replace( '%1', editor.lang.common.width ) ),\r
id : 'txtHeight',\r
controlStyle : 'width:5em',\r
label : editor.lang.common.height,\r
+ title : editor.lang.common.cssLengthTooltip,\r
'default' : '',\r
getValue : defaultToPixel,\r
validate : CKEDITOR.dialog.validate.cssLength( editor.lang.common.invalidCssLength.replace( '%1', editor.lang.common.height ) ),\r