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