Nation Notes module contributed by Z&H Healthcare.
[openemr.git] / library / custom_template / ckeditor / _source / plugins / div / plugin.js
blobbb51f57b42be9f882a5c0bf824e3abe50d08765e
1 /*
2 Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3 For licensing, see LICENSE.html or http://ckeditor.com/license
4 */
6 /**
7  * @fileOverview The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.
8  *
9  */
11 (function()
13         CKEDITOR.plugins.add( 'div',
14         {
15                 requires : [ 'editingblock', 'domiterator', 'styles' ],
17                 init : function( editor )
18                 {
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',
24                                 {
25                                         exec : function( editor )
26                                         {
27                                                 var selection = editor.getSelection(),
28                                                         ranges = selection && selection.getRanges(),
29                                                         range,
30                                                         bookmarks = selection.createBookmarks(),
31                                                         walker,
32                                                         toRemove = [];
34                                                 function findDiv( node )
35                                                 {
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' ) )
41                                                         {
42                                                                 toRemove.push( div );
43                                                                 div.data( 'cke-div-added' );
44                                                         }
45                                                 }
47                                                 for ( var i = 0 ; i < ranges.length ; i++ )
48                                                 {
49                                                         range = ranges[ i ];
50                                                         if ( range.collapsed )
51                                                                 findDiv( selection.getStartElement() );
52                                                         else
53                                                         {
54                                                                 walker = new CKEDITOR.dom.walker( range );
55                                                                 walker.evaluator = findDiv;
56                                                                 walker.lastForward();
57                                                         }
58                                                 }
60                                                 for ( i = 0 ; i < toRemove.length ; i++ )
61                                                         toRemove[ i ].remove( true );
63                                                 selection.selectBookmarks( bookmarks );
64                                         }
65                                 } );
67                         editor.ui.addButton( 'CreateDiv',
68                         {
69                                 label : lang.toolbar,
70                                 command :'creatediv'
71                         } );
73                         if ( editor.addMenuItems )
74                         {
75                                 editor.addMenuItems(
76                                         {
77                                                 editdiv :
78                                                 {
79                                                         label : lang.edit,
80                                                         command : 'editdiv',
81                                                         group : 'div',
82                                                         order : 1
83                                                 },
85                                                 removediv:
86                                                 {
87                                                         label : lang.remove,
88                                                         command : 'removediv',
89                                                         group : 'div',
90                                                         order : 5
91                                                 }
92                                         } );
94                                 if ( editor.contextMenu )
95                                 {
96                                         editor.contextMenu.addListener( function( element, selection )
97                                                 {
98                                                         if ( !element || element.isReadOnly() )
99                                                                 return null;
101                                                         var elementPath = new CKEDITOR.dom.elementPath( element ),
102                                                                 blockLimit = elementPath.blockLimit;
104                                                         if ( blockLimit && blockLimit.getAscendant( 'div', true ) )
105                                                         {
106                                                                 return {
107                                                                         editdiv : CKEDITOR.TRISTATE_OFF,
108                                                                         removediv : CKEDITOR.TRISTATE_OFF
109                                                                 };
110                                                         }
112                                                         return null;
113                                                 } );
114                                 }
115                         }
117                         CKEDITOR.dialog.add( 'creatediv', this.path + 'dialogs/div.js' );
118                         CKEDITOR.dialog.add( 'editdiv', this.path + 'dialogs/div.js' );
119                 }
120         } );
121 })();