JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.6.1
[ckeditor.git] / _source / plugins / tabletools / dialogs / tableCell.js
index c970727..1bfa3bf 100644 (file)
@@ -1,22 +1,19 @@
 /*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
 CKEDITOR.dialog.add( 'cellProperties', function( editor )\r
        {\r
-               var langTable = editor.lang.table;\r
-               var langCell = langTable.cell;\r
-               var langCommon = editor.lang.common;\r
-               var validate = CKEDITOR.dialog.validate;\r
-               var widthPattern = /^(\d+(?:\.\d+)?)(px|%)$/,\r
-                       heightPattern = /^(\d+(?:\.\d+)?)px$/;\r
-               var bind = CKEDITOR.tools.bind;\r
-\r
-               function spacer()\r
-               {\r
-                       return { type : 'html', html : ' ' };\r
-               }\r
+               var langTable = editor.lang.table,\r
+                       langCell = langTable.cell,\r
+                       langCommon = editor.lang.common,\r
+                       validate = CKEDITOR.dialog.validate,\r
+                       widthPattern = /^(\d+(?:\.\d+)?)(px|%)$/,\r
+                       heightPattern = /^(\d+(?:\.\d+)?)px$/,\r
+                       bind = CKEDITOR.tools.bind,\r
+                       spacer = { type : 'html', html : ' ' },\r
+                       rtl = editor.lang.dir == 'rtl';\r
 \r
                /**\r
                 *\r
@@ -28,22 +25,24 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                        var onOk = function()\r
                        {\r
                                releaseHandlers( this );\r
-                               callback( this );\r
+                               callback( this, this._.parentDialog );\r
+                               this._.parentDialog.changeFocus();\r
                        };\r
                        var onCancel = function()\r
                        {\r
                                releaseHandlers( this );\r
-                       };\r
-                       var bindToDialog = function( dialog )\r
-                       {\r
-                               dialog.on( 'ok', onOk );\r
-                               dialog.on( 'cancel', onCancel );\r
+                               this._.parentDialog.changeFocus();\r
                        };\r
                        var releaseHandlers = function( dialog )\r
                        {\r
                                dialog.removeListener( 'ok', onOk );\r
                                dialog.removeListener( 'cancel', onCancel );\r
                        };\r
+                       var bindToDialog = function( dialog )\r
+                       {\r
+                               dialog.on( 'ok', onOk );\r
+                               dialog.on( 'cancel', onCancel );\r
+                       };\r
                        editor.execCommand( dialogName );\r
                        if ( editor._.storedDialogs.colordialog )\r
                                bindToDialog( editor._.storedDialogs.colordialog );\r
@@ -73,8 +72,8 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
 \r
                return {\r
                        title : langCell.title,\r
-                       minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks ? 550 : 480,\r
-                       minHeight : CKEDITOR.env.ie ? ( CKEDITOR.env.quirks ? 180 : 150 ) : 140,\r
+                       minWidth : CKEDITOR.env.ie && CKEDITOR.env.quirks? 450 : 410,\r
+                       minHeight : CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.quirks )?  230 : 220,\r
                        contents : [\r
                                {\r
                                        id : 'info',\r
@@ -100,9 +99,8 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                {\r
                                                                                                        type : 'text',\r
                                                                                                        id : 'width',\r
-                                                                                                       label : langTable.width,\r
-                                                                                                       widths : [ '71%', '29%' ],\r
-                                                                                                       labelLayout : 'horizontal',\r
+                                                                                                       width: '100px',\r
+                                                                                                       label : langCommon.width,\r
                                                                                                        validate : validate[ 'number' ]( langCell.invalidWidth ),\r
 \r
                                                                                                        // Extra labelling of width unit type.\r
@@ -141,10 +139,8 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                {\r
                                                                                                        type : 'select',\r
                                                                                                        id : 'widthType',\r
-                                                                                                       labelLayout : 'horizontal',\r
-                                                                                                       widths : [ '0%', '100%' ],\r
                                                                                                        label : editor.lang.table.widthUnit,\r
-                                                                                                       labelStyle: 'display:none',\r
+                                                                                                       labelStyle: 'visibility:hidden',\r
                                                                                                        'default' : 'px',\r
                                                                                                        items :\r
                                                                                                        [\r
@@ -153,7 +149,7 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                        ],\r
                                                                                                        setup : function( selectedCell )\r
                                                                                                        {\r
-                                                                                                               var widthMatch = widthPattern.exec( selectedCell.$.style.width );\r
+                                                                                                               var widthMatch = widthPattern.exec( selectedCell.getStyle( 'width' ) || selectedCell.getAttribute( 'width' ) );\r
                                                                                                                if ( widthMatch )\r
                                                                                                                        this.setValue( widthMatch[2] );\r
                                                                                                        }\r
@@ -168,10 +164,9 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                {\r
                                                                                                        type : 'text',\r
                                                                                                        id : 'height',\r
-                                                                                                       label : langTable.height,\r
+                                                                                                       label : langCommon.height,\r
+                                                                                                       width: '100px',\r
                                                                                                        'default' : '',\r
-                                                                                                       widths : [ '71%', '29%' ],\r
-                                                                                                       labelLayout : 'horizontal',\r
                                                                                                        validate : validate[ 'number' ]( langCell.invalidHeight ),\r
 \r
                                                                                                        // Extra labelling of height unit type.\r
@@ -208,17 +203,15 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                {\r
                                                                                                        id : 'htmlHeightType',\r
                                                                                                        type : 'html',\r
-                                                                                                       html : langTable.widthPx\r
+                                                                                                       html : '<br />'+ langTable.widthPx\r
                                                                                                }\r
                                                                                        ]\r
                                                                                },\r
-                                                                               spacer(),\r
+                                                                               spacer,\r
                                                                                {\r
                                                                                        type : 'select',\r
                                                                                        id : 'wordWrap',\r
-                                                                                       labelLayout : 'horizontal',\r
                                                                                        label : langCell.wordWrap,\r
-                                                                                       widths : [ '50%', '50%' ],\r
                                                                                        'default' : 'yes',\r
                                                                                        items :\r
                                                                                        [\r
@@ -243,20 +236,18 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                element.removeAttribute( 'noWrap' );\r
                                                                                        }\r
                                                                                },\r
-                                                                               spacer(),\r
+                                                                               spacer,\r
                                                                                {\r
                                                                                        type : 'select',\r
                                                                                        id : 'hAlign',\r
-                                                                                       labelLayout : 'horizontal',\r
                                                                                        label : langCell.hAlign,\r
-                                                                                       widths : [ '50%', '50%' ],\r
                                                                                        'default' : '',\r
                                                                                        items :\r
                                                                                        [\r
                                                                                                [ langCommon.notSet, '' ],\r
-                                                                                               [ langTable.alignLeft, 'left' ],\r
-                                                                                               [ langTable.alignCenter, 'center' ],\r
-                                                                                               [ langTable.alignRight, 'right' ]\r
+                                                                                               [ langCommon.alignLeft, 'left' ],\r
+                                                                                               [ langCommon.alignCenter, 'center' ],\r
+                                                                                               [ langCommon.alignRight, 'right' ]\r
                                                                                        ],\r
                                                                                        setup : function( element )\r
                                                                                        {\r
@@ -280,16 +271,14 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                {\r
                                                                                        type : 'select',\r
                                                                                        id : 'vAlign',\r
-                                                                                       labelLayout : 'horizontal',\r
                                                                                        label : langCell.vAlign,\r
-                                                                                       widths : [ '50%', '50%' ],\r
                                                                                        'default' : '',\r
                                                                                        items :\r
                                                                                        [\r
                                                                                                [ langCommon.notSet, '' ],\r
-                                                                                               [ langCell.alignTop, 'top' ],\r
-                                                                                               [ langCell.alignMiddle, 'middle' ],\r
-                                                                                               [ langCell.alignBottom, 'bottom' ],\r
+                                                                                               [ langCommon.alignTop, 'top' ],\r
+                                                                                               [ langCommon.alignMiddle, 'middle' ],\r
+                                                                                               [ langCommon.alignBottom, 'bottom' ],\r
                                                                                                [ langCell.alignBaseline, 'baseline' ]\r
                                                                                        ],\r
                                                                                        setup : function( element )\r
@@ -325,7 +314,7 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                }\r
                                                                        ]\r
                                                                },\r
-                                                               spacer(),\r
+                                                               spacer,\r
                                                                {\r
                                                                        type : 'vbox',\r
                                                                        padding : 0,\r
@@ -335,8 +324,6 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                        type : 'select',\r
                                                                                        id : 'cellType',\r
                                                                                        label : langCell.cellType,\r
-                                                                                       labelLayout : 'horizontal',\r
-                                                                                       widths : [ '50%', '50%' ],\r
                                                                                        'default' : 'td',\r
                                                                                        items :\r
                                                                                        [\r
@@ -352,13 +339,11 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                selectedCell.renameNode( this.getValue() );\r
                                                                                        }\r
                                                                                },\r
-                                                                               spacer(),\r
+                                                                               spacer,\r
                                                                                {\r
                                                                                        type : 'text',\r
                                                                                        id : 'rowSpan',\r
                                                                                        label : langCell.rowSpan,\r
-                                                                                       labelLayout : 'horizontal',\r
-                                                                                       widths : [ '50%', '50%' ],\r
                                                                                        'default' : '',\r
                                                                                        validate : validate.integer( langCell.invalidRowSpan ),\r
                                                                                        setup : function( selectedCell )\r
@@ -380,8 +365,6 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                        type : 'text',\r
                                                                                        id : 'colSpan',\r
                                                                                        label : langCell.colSpan,\r
-                                                                                       labelLayout : 'horizontal',\r
-                                                                                       widths : [ '50%', '50%' ],\r
                                                                                        'default' : '',\r
                                                                                        validate : validate.integer( langCell.invalidColSpan ),\r
                                                                                        setup : function( element )\r
@@ -399,19 +382,17 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                        selectedCell.removeAttribute( 'colSpan' );\r
                                                                                        }\r
                                                                                },\r
-                                                                               spacer(),\r
+                                                                               spacer,\r
                                                                                {\r
                                                                                        type : 'hbox',\r
                                                                                        padding : 0,\r
-                                                                                       widths : [ '80%', '20%' ],\r
+                                                                                       widths : [ '60%', '40%' ],\r
                                                                                        children :\r
                                                                                        [\r
                                                                                                {\r
                                                                                                        type : 'text',\r
                                                                                                        id : 'bgColor',\r
                                                                                                        label : langCell.bgColor,\r
-                                                                                                       labelLayout : 'horizontal',\r
-                                                                                                       widths : [ '70%', '30%' ],\r
                                                                                                        'default' : '',\r
                                                                                                        setup : function( element )\r
                                                                                                        {\r
@@ -435,8 +416,13 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                {\r
                                                                                                        type : 'button',\r
                                                                                                        id : 'bgColorChoose',\r
+                                                                                                       "class" : 'colorChooser',\r
                                                                                                        label : langCell.chooseColor,\r
-                                                                                                       style : 'margin-left: 10px',\r
+                                                                                                       onLoad : function()\r
+                                                                                                       {\r
+                                                                                                               // Stick the element to the bottom (#5587)\r
+                                                                                                               this.getElement().getParent().setStyle( 'vertical-align', 'bottom' );\r
+                                                                                                       },\r
                                                                                                        onClick : function()\r
                                                                                                        {\r
                                                                                                                var self = this;\r
@@ -450,19 +436,17 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                }\r
                                                                                        ]\r
                                                                                },\r
-                                                                               spacer(),\r
+                                                                               spacer,\r
                                                                                {\r
                                                                                        type : 'hbox',\r
                                                                                        padding : 0,\r
-                                                                                       widths : [ '80%', '20%' ],\r
+                                                                                       widths : [ '60%', '40%' ],\r
                                                                                        children :\r
                                                                                        [\r
                                                                                                {\r
                                                                                                        type : 'text',\r
                                                                                                        id : 'borderColor',\r
                                                                                                        label : langCell.borderColor,\r
-                                                                                                       labelLayout : 'horizontal',\r
-                                                                                                       widths : [ '70%', '30%' ],\r
                                                                                                        'default' : '',\r
                                                                                                        setup : function( element )\r
                                                                                                        {\r
@@ -485,8 +469,14 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                                                                                {\r
                                                                                                        type : 'button',\r
                                                                                                        id : 'borderColorChoose',\r
+                                                                                                       "class" : 'colorChooser',\r
                                                                                                        label : langCell.chooseColor,\r
-                                                                                                       style : 'margin-left: 10px',\r
+                                                                                                       style : ( rtl ? 'margin-right' : 'margin-left' ) + ': 10px',\r
+                                                                                                       onLoad : function()\r
+                                                                                                       {\r
+                                                                                                               // Stick the element to the bottom (#5587)\r
+                                                                                                               this.getElement().getParent().setStyle( 'vertical-align', 'bottom' );\r
+                                                                                                       },\r
                                                                                                        onClick : function()\r
                                                                                                        {\r
                                                                                                                var self = this;\r
@@ -522,7 +512,9 @@ CKEDITOR.dialog.add( 'cellProperties', function( editor )
                                for ( var i = 0 ; i < cells.length ; i++ )\r
                                        this.commitContent( cells[ i ] );\r
 \r
+                               this._.editor.forceNextSelectionCheck();\r
                                selection.selectBookmarks( bookmarks );\r
+                               this._.editor.selectionChange();\r
                        }\r
                };\r
        } );\r