2 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3 For licensing, see LICENSE.html or http://ckeditor.com/license
7 * @fileOverview The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.
13 CKEDITOR
.plugins
.add( 'div',
15 requires
: [ 'editingblock', 'domiterator', 'styles' ],
17 init : function( editor
)
19 var lang
= editor
.lang
.div
;
21 editor
.addCommand( 'creatediv', new CKEDITOR
.dialogCommand( 'creatediv' ) );
22 editor
.addCommand( 'editdiv', new CKEDITOR
.dialogCommand( 'editdiv' ) );
23 editor
.addCommand( 'removediv',
25 exec : function( editor
)
27 var selection
= editor
.getSelection(),
28 ranges
= selection
&& selection
.getRanges(),
30 bookmarks
= selection
.createBookmarks(),
34 function findDiv( node
)
36 var path
= new CKEDITOR
.dom
.elementPath( node
),
37 blockLimit
= path
.blockLimit
,
38 div
= blockLimit
.is( 'div' ) && blockLimit
;
40 if ( div
&& !div
.data( 'cke-div-added' ) )
43 div
.data( 'cke-div-added' );
47 for ( var i
= 0 ; i
< ranges
.length
; i
++ )
50 if ( range
.collapsed
)
51 findDiv( selection
.getStartElement() );
54 walker
= new CKEDITOR
.dom
.walker( range
);
55 walker
.evaluator
= findDiv
;
60 for ( i
= 0 ; i
< toRemove
.length
; i
++ )
61 toRemove
[ i
].remove( true );
63 selection
.selectBookmarks( bookmarks
);
67 editor
.ui
.addButton( 'CreateDiv',
73 if ( editor
.addMenuItems
)
88 command
: 'removediv',
94 if ( editor
.contextMenu
)
96 editor
.contextMenu
.addListener( function( element
, selection
)
98 if ( !element
|| element
.isReadOnly() )
101 var elementPath
= new CKEDITOR
.dom
.elementPath( element
),
102 blockLimit
= elementPath
.blockLimit
;
104 if ( blockLimit
&& blockLimit
.getAscendant( 'div', true ) )
107 editdiv
: CKEDITOR
.TRISTATE_OFF
,
108 removediv
: CKEDITOR
.TRISTATE_OFF
117 CKEDITOR
.dialog
.add( 'creatediv', this.path
+ 'dialogs/div.js' );
118 CKEDITOR
.dialog
.add( 'editdiv', this.path
+ 'dialogs/div.js' );