JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
154080f63d0e974ec1d818e7143027c1ab64f53c
[ckeditor.git] / _source / plugins / table / plugin.js
1 /*\r
2 Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
3 For licensing, see LICENSE.html or http://ckeditor.com/license\r
4 */\r
5 \r
6 CKEDITOR.plugins.add( 'table',\r
7 {\r
8         requires : [ 'dialog' ],\r
9         init : function( editor )\r
10         {\r
11                 var table = CKEDITOR.plugins.table,\r
12                         lang = editor.lang.table;\r
13 \r
14                 editor.addCommand( 'table', new CKEDITOR.dialogCommand( 'table' ) );\r
15                 editor.addCommand( 'tableProperties', new CKEDITOR.dialogCommand( 'tableProperties' ) );\r
16 \r
17                 editor.ui.addButton( 'Table',\r
18                         {\r
19                                 label : lang.toolbar,\r
20                                 command : 'table'\r
21                         });\r
22 \r
23                 CKEDITOR.dialog.add( 'table', this.path + 'dialogs/table.js' );\r
24                 CKEDITOR.dialog.add( 'tableProperties', this.path + 'dialogs/table.js' );\r
25 \r
26                 // If the "menu" plugin is loaded, register the menu items.\r
27                 if ( editor.addMenuItems )\r
28                 {\r
29                         editor.addMenuItems(\r
30                                 {\r
31                                         table :\r
32                                         {\r
33                                                 label : lang.menu,\r
34                                                 command : 'tableProperties',\r
35                                                 group : 'table',\r
36                                                 order : 5\r
37                                         },\r
38 \r
39                                         tabledelete :\r
40                                         {\r
41                                                 label : lang.deleteTable,\r
42                                                 command : 'tableDelete',\r
43                                                 group : 'table',\r
44                                                 order : 1\r
45                                         }\r
46                                 } );\r
47                 }\r
48 \r
49                 editor.on( 'doubleclick', function( evt )\r
50                         {\r
51                                 var element = evt.data.element;\r
52 \r
53                                 if ( element.is( 'table' ) )\r
54                                         evt.data.dialog = 'tableProperties';\r
55                         });\r
56 \r
57                 // If the "contextmenu" plugin is loaded, register the listeners.\r
58                 if ( editor.contextMenu )\r
59                 {\r
60                         editor.contextMenu.addListener( function( element, selection )\r
61                                 {\r
62                                         if ( !element || element.isReadOnly() )\r
63                                                 return null;\r
64 \r
65                                         var isTable = element.hasAscendant( 'table', 1 );\r
66 \r
67                                         if ( isTable )\r
68                                         {\r
69                                                 return {\r
70                                                         tabledelete : CKEDITOR.TRISTATE_OFF,\r
71                                                         table : CKEDITOR.TRISTATE_OFF\r
72                                                 };\r
73                                         }\r
74 \r
75                                         return null;\r
76                                 } );\r
77                 }\r
78         }\r
79 } );\r