source: sandbox/3.0/phpgwapi/js/ckeditor/_source/plugins/div/plugin.js @ 2862

Revision 2862, 2.9 KB checked in by rodsouza, 14 years ago (diff)

Ticket #663 - Atualizando e centralizando o CKEditor (v. 3.2.1)

Line 
1/*
2Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5
6/**
7 * @fileOverview The "div" plugin. It wraps the selected block level elements with a 'div' element with specified styles and attributes.
8 *
9 */
10
11(function()
12{
13        CKEDITOR.plugins.add( 'div',
14        {
15                requires : [ 'editingblock', 'domiterator', 'styles' ],
16
17                init : function( editor )
18                {
19                        var lang = editor.lang.div;
20
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 = [];
33
34                                                function findDiv( node )
35                                                {
36                                                        var path = new CKEDITOR.dom.elementPath( node ),
37                                                                blockLimit = path.blockLimit,
38                                                                div = blockLimit.is( 'div' ) && blockLimit;
39
40                                                        if ( div && !div.getAttribute( '_cke_div_added' ) )
41                                                        {
42                                                                toRemove.push( div );
43                                                                div.setAttribute( '_cke_div_added' );
44                                                        }
45                                                }
46
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                                                }
59
60                                                for ( i = 0 ; i < toRemove.length ; i++ )
61                                                        toRemove[ i ].remove( true );
62
63                                                selection.selectBookmarks( bookmarks );
64                                        }
65                                } );
66
67                        editor.ui.addButton( 'CreateDiv',
68                        {
69                                label : lang.toolbar,
70                                command :'creatediv'
71                        } );
72
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                                                },
84
85                                                removediv:
86                                                {
87                                                        label : lang.remove,
88                                                        command : 'removediv',
89                                                        group : 'div',
90                                                        order : 5
91                                                }
92                                        } );
93
94                                if ( editor.contextMenu )
95                                {
96                                        editor.contextMenu.addListener( function( element, selection )
97                                                {
98                                                        if ( !element )
99                                                                return null;
100
101                                                        var elementPath = new CKEDITOR.dom.elementPath( element ),
102                                                                blockLimit = elementPath.blockLimit;
103
104                                                        if ( blockLimit && blockLimit.getAscendant( 'div', true ) )
105                                                        {
106                                                                return {
107                                                                        editdiv : CKEDITOR.TRISTATE_OFF,
108                                                                        removediv : CKEDITOR.TRISTATE_OFF
109                                                                };
110                                                        }
111
112                                                        return null;
113                                                } );
114                                }
115                        }
116
117                        CKEDITOR.dialog.add( 'creatediv', this.path + 'dialogs/div.js' );
118                        CKEDITOR.dialog.add( 'editdiv', this.path + 'dialogs/div.js' );
119                }
120        } );
121})();
Note: See TracBrowser for help on using the repository browser.