source: companies/serpro/expressoMail1_2/js/fckeditor/editor/_source/internals/fckselection_gecko.js @ 903

Revision 903, 3.4 KB checked in by niltonneto, 15 years ago (diff)

Importacao inicial do Expresso do Serpro

Line 
1/*
2 * FCKeditor - The text editor for internet
3 * Copyright (C) 2003-2006 Frederico Caldeira Knabben
4 *
5 * Licensed under the terms of the GNU Lesser General Public License:
6 *              http://www.opensource.org/licenses/lgpl-license.php
7 *
8 * For further information visit:
9 *              http://www.fckeditor.net/
10 *
11 * "Support Open Source software. What about a donation today?"
12 *
13 * File Name: fckselection_gecko.js
14 *      Active selection functions. (Gecko specific implementation)
15 *
16 * File Authors:
17 *              Frederico Caldeira Knabben (fredck@fckeditor.net)
18 */
19
20// Get the selection type (like document.select.type in IE).
21FCKSelection.GetType = function()
22{
23//      if ( ! this._Type )
24//      {
25                // By default set the type to "Text".
26                this._Type = 'Text' ;
27
28                // Check if the actual selection is a Control (IMG, TABLE, HR, etc...).
29                var oSel ;
30                try { oSel = FCK.EditorWindow.getSelection() ; }
31                catch (e) {}
32               
33                if ( oSel && oSel.rangeCount == 1 )
34                {
35                        var oRange = oSel.getRangeAt(0) ;
36                        if ( oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 && oRange.startContainer.nodeType != Node.TEXT_NODE )
37                                this._Type = 'Control' ;
38                }
39//      }
40        return this._Type ;
41}
42
43// Retrieves the selected element (if any), just in the case that a single
44// element (object like and image or a table) is selected.
45FCKSelection.GetSelectedElement = function()
46{
47        if ( this.GetType() == 'Control' )
48        {
49                var oSel = FCK.EditorWindow.getSelection() ;
50                return oSel.anchorNode.childNodes[ oSel.anchorOffset ] ;
51        }
52}
53
54FCKSelection.GetParentElement = function()
55{
56        if ( this.GetType() == 'Control' )
57                return FCKSelection.GetSelectedElement().parentNode ;
58        else
59        {
60                var oSel = FCK.EditorWindow.getSelection() ;
61                if ( oSel )
62                {
63                        var oNode = oSel.anchorNode ;
64
65                        while ( oNode && oNode.nodeType != 1 )
66                                oNode = oNode.parentNode ;
67
68                        return oNode ;
69                }
70        }
71}
72
73FCKSelection.SelectNode = function( element )
74{
75//      FCK.Focus() ;
76
77        var oRange = FCK.EditorDocument.createRange() ;
78        oRange.selectNode( element ) ;
79
80        var oSel = FCK.EditorWindow.getSelection() ;
81        oSel.removeAllRanges() ;
82        oSel.addRange( oRange ) ;
83}
84
85FCKSelection.Collapse = function( toStart )
86{
87        var oSel = FCK.EditorWindow.getSelection() ;
88       
89        if ( toStart == null || toStart === true )
90                oSel.collapseToStart() ;
91        else
92                oSel.collapseToEnd() ;
93}
94
95// The "nodeTagName" parameter must be Upper Case.
96FCKSelection.HasAncestorNode = function( nodeTagName )
97{
98        var oContainer = this.GetSelectedElement() ;
99        if ( ! oContainer && FCK.EditorWindow )
100        {
101                try             { oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ; }
102                catch(e){}
103        }
104
105        while ( oContainer )
106        {
107                if ( oContainer.nodeType == 1 && oContainer.tagName == nodeTagName ) return true ;
108                oContainer = oContainer.parentNode ;
109        }
110
111        return false ;
112}
113
114// The "nodeTagName" parameter must be Upper Case.
115FCKSelection.MoveToAncestorNode = function( nodeTagName )
116{
117        var oNode ;
118
119        var oContainer = this.GetSelectedElement() ;
120        if ( ! oContainer )
121                oContainer = FCK.EditorWindow.getSelection().getRangeAt(0).startContainer ;
122
123        while ( oContainer )
124        {
125                if ( oContainer.tagName == nodeTagName )
126                        return oContainer ;
127                oContainer = oContainer.parentNode ;
128        }
129        return null ;
130}
131
132FCKSelection.Delete = function()
133{
134        // Gets the actual selection.
135        var oSel = FCK.EditorWindow.getSelection() ;
136
137        // Deletes the actual selection contents.
138        for ( var i = 0 ; i < oSel.rangeCount ; i++ )
139        {
140                oSel.getRangeAt(i).deleteContents() ;
141        }
142
143        return oSel ;
144}
Note: See TracBrowser for help on using the repository browser.