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