source: trunk/filemanager/tp/ckeditor/_source/core/dom/document.js @ 2000

Revision 2000, 4.8 KB checked in by amuller, 14 years ago (diff)

Ticket #597 - Implementação do módulo gerenciador de arquivos

Line 
1/*
2Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
3For licensing, see LICENSE.html or http://ckeditor.com/license
4*/
5
6/**
7 * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
8 *              represents a DOM document.
9 */
10
11/**
12 * Represents a DOM document.
13 * @constructor
14 * @augments CKEDITOR.dom.domObject
15 * @param {Object} domDocument A native DOM document.
16 * @example
17 * var document = new CKEDITOR.dom.document( document );
18 */
19CKEDITOR.dom.document = function( domDocument )
20{
21        CKEDITOR.dom.domObject.call( this, domDocument );
22};
23
24// PACKAGER_RENAME( CKEDITOR.dom.document )
25
26CKEDITOR.dom.document.prototype = new CKEDITOR.dom.domObject();
27
28CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype,
29        /** @lends CKEDITOR.dom.document.prototype */
30        {
31                /**
32                 * Appends a CSS file to the document.
33                 * @param {String} cssFileUrl The CSS file URL.
34                 * @example
35                 * <b>CKEDITOR.document.appendStyleSheet( '/mystyles.css' )</b>;
36                 */
37                appendStyleSheet : function( cssFileUrl )
38                {
39                        if ( this.$.createStyleSheet )
40                                this.$.createStyleSheet( cssFileUrl );
41                        else
42                        {
43                                var link = new CKEDITOR.dom.element( 'link' );
44                                link.setAttributes(
45                                        {
46                                                rel             :'stylesheet',
47                                                type    : 'text/css',
48                                                href    : cssFileUrl
49                                        });
50
51                                this.getHead().append( link );
52                        }
53                },
54
55                createElement : function( name, attribsAndStyles )
56                {
57                        var element = new CKEDITOR.dom.element( name, this );
58
59                        if ( attribsAndStyles )
60                        {
61                                if ( attribsAndStyles.attributes )
62                                        element.setAttributes( attribsAndStyles.attributes );
63
64                                if ( attribsAndStyles.styles )
65                                        element.setStyles( attribsAndStyles.styles );
66                        }
67
68                        return element;
69                },
70
71                createText : function( text )
72                {
73                        return new CKEDITOR.dom.text( text, this );
74                },
75
76                focus : function()
77                {
78                        this.getWindow().focus();
79                },
80
81                /**
82                 * Gets and element based on its id.
83                 * @param {String} elementId The element id.
84                 * @returns {CKEDITOR.dom.element} The element instance, or null if not found.
85                 * @example
86                 * var element = <b>CKEDITOR.document.getById( 'myElement' )</b>;
87                 * alert( element.getId() );  // "myElement"
88                 */
89                getById : function( elementId )
90                {
91                        var $ = this.$.getElementById( elementId );
92                        return $ ? new CKEDITOR.dom.element( $ ) : null;
93                },
94
95                getByAddress : function( address, normalized )
96                {
97                        var $ = this.$.documentElement;
98
99                        for ( var i = 0 ; $ && i < address.length ; i++ )
100                        {
101                                var target = address[ i ];
102
103                                if ( !normalized )
104                                {
105                                        $ = $.childNodes[ target ];
106                                        continue;
107                                }
108
109                                var currentIndex = -1;
110
111                                for (var j = 0 ; j < $.childNodes.length ; j++ )
112                                {
113                                        var candidate = $.childNodes[ j ];
114
115                                        if ( normalized === true &&
116                                                        candidate.nodeType == 3 &&
117                                                        candidate.previousSibling &&
118                                                        candidate.previousSibling.nodeType == 3 )
119                                        {
120                                                continue;
121                                        }
122
123                                        currentIndex++;
124
125                                        if ( currentIndex == target )
126                                        {
127                                                $ = candidate;
128                                                break;
129                                        }
130                                }
131                        }
132
133                        return $ ? new CKEDITOR.dom.node( $ ) : null;
134                },
135
136                getElementsByTag : function( tagName, namespace )
137                {
138                        if ( !CKEDITOR.env.ie && namespace )
139                                tagName = namespace + ':' + tagName;
140                        return new CKEDITOR.dom.nodeList( this.$.getElementsByTagName( tagName ) );
141                },
142
143                /**
144                 * Gets the &lt;head&gt; element for this document.
145                 * @returns {CKEDITOR.dom.element} The &lt;head&gt; element.
146                 * @example
147                 * var element = <b>CKEDITOR.document.getHead()</b>;
148                 * alert( element.getName() );  // "head"
149                 */
150                getHead : function()
151                {
152                        var head = this.$.getElementsByTagName( 'head' )[0];
153                        head = new CKEDITOR.dom.element( head );
154
155                        return (
156                        /** @ignore */
157                        this.getHead = function()
158                                {
159                                        return head;
160                                })();
161                },
162
163                /**
164                 * Gets the &lt;body&gt; element for this document.
165                 * @returns {CKEDITOR.dom.element} The &lt;body&gt; element.
166                 * @example
167                 * var element = <b>CKEDITOR.document.getBody()</b>;
168                 * alert( element.getName() );  // "body"
169                 */
170                getBody : function()
171                {
172                        var body = new CKEDITOR.dom.element( this.$.body );
173
174                        return (
175                        /** @ignore */
176                        this.getBody = function()
177                                {
178                                        return body;
179                                })();
180                },
181
182                getDocumentElement : function()
183                {
184                        var documentElement = new CKEDITOR.dom.element( this.$.documentElement );
185
186                        return (
187                        /** @ignore */
188                        this.getDocumentElement = function()
189                                {
190                                        return documentElement;
191                                })();
192                },
193
194                /**
195                 * Gets the window object that holds this document.
196                 * @returns {CKEDITOR.dom.window} The window object.
197                 * @example
198                 */
199                getWindow : function()
200                {
201                        var win = new CKEDITOR.dom.window( this.$.parentWindow || this.$.defaultView );
202
203                        return (
204                        /** @ignore */
205                        this.getWindow = function()
206                                {
207                                        return win;
208                                })();
209                }
210        });
Note: See TracBrowser for help on using the repository browser.