source: companies/celepar/news_admin/templates/celepar/fckeditor/editor/_source/commandclasses/fck_othercommands.js @ 763

Revision 763, 6.8 KB checked in by niltonneto, 15 years ago (diff)

Importação inicial do Expresso da Celepar

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: fck_othercommands.js
14 *      Definition of other commands that are not available internaly in the
15 *      browser (see FCKNamedCommand).
16 *
17 * File Authors:
18 *              Frederico Caldeira Knabben (fredck@fckeditor.net)
19 */
20
21// ### General Dialog Box Commands.
22var FCKDialogCommand = function( name, title, url, width, height, getStateFunction, getStateParam )
23{
24        this.Name       = name ;
25        this.Title      = title ;
26        this.Url        = url ;
27        this.Width      = width ;
28        this.Height     = height ;
29
30        this.GetStateFunction   = getStateFunction ;
31        this.GetStateParam              = getStateParam ;
32}
33
34FCKDialogCommand.prototype.Execute = function()
35{
36        FCKDialog.OpenDialog( 'FCKDialog_' + this.Name , this.Title, this.Url, this.Width, this.Height ) ;
37}
38
39FCKDialogCommand.prototype.GetState = function()
40{
41        if ( this.GetStateFunction )
42                return this.GetStateFunction( this.GetStateParam ) ;
43        else
44                return FCK_TRISTATE_OFF ;
45}
46
47// Generic Undefined command (usually used when a command is under development).
48var FCKUndefinedCommand = function()
49{
50        this.Name = 'Undefined' ;
51}
52
53FCKUndefinedCommand.prototype.Execute = function()
54{
55        alert( FCKLang.NotImplemented ) ;
56}
57
58FCKUndefinedCommand.prototype.GetState = function()
59{
60        return FCK_TRISTATE_OFF ;
61}
62
63// ### FontName
64var FCKFontNameCommand = function()
65{
66        this.Name = 'FontName' ;
67}
68
69FCKFontNameCommand.prototype.Execute = function( fontName )
70{
71        if (fontName == null || fontName == "")
72        {
73                // TODO: Remove font name attribute.
74        }
75        else
76                FCK.ExecuteNamedCommand( 'FontName', fontName ) ;
77}
78
79FCKFontNameCommand.prototype.GetState = function()
80{
81        return FCK.GetNamedCommandValue( 'FontName' ) ;
82}
83
84// ### FontSize
85var FCKFontSizeCommand = function()
86{
87        this.Name = 'FontSize' ;
88}
89
90FCKFontSizeCommand.prototype.Execute = function( fontSize )
91{
92        if ( typeof( fontSize ) == 'string' ) fontSize = parseInt(fontSize) ;
93
94        if ( fontSize == null || fontSize == '' )
95        {
96                // TODO: Remove font size attribute (Now it works with size 3. Will it work forever?)
97                FCK.ExecuteNamedCommand( 'FontSize', 3 ) ;
98        }
99        else
100                FCK.ExecuteNamedCommand( 'FontSize', fontSize ) ;
101}
102
103FCKFontSizeCommand.prototype.GetState = function()
104{
105        return FCK.GetNamedCommandValue( 'FontSize' ) ;
106}
107
108// ### FormatBlock
109var FCKFormatBlockCommand = function()
110{
111        this.Name = 'FormatBlock' ;
112}
113
114FCKFormatBlockCommand.prototype.Execute = function( formatName )
115{
116        if ( formatName == null || formatName == '' )
117                FCK.ExecuteNamedCommand( 'FormatBlock', '<P>' ) ;
118        else if ( formatName == 'div' && FCKBrowserInfo.IsGecko )
119                FCK.ExecuteNamedCommand( 'FormatBlock', 'div' ) ;
120        else
121                FCK.ExecuteNamedCommand( 'FormatBlock', '<' + formatName + '>' ) ;
122}
123
124FCKFormatBlockCommand.prototype.GetState = function()
125{
126        return FCK.GetNamedCommandValue( 'FormatBlock' ) ;
127}
128
129// ### Preview
130var FCKPreviewCommand = function()
131{
132        this.Name = 'Preview' ;
133}
134
135FCKPreviewCommand.prototype.Execute = function()
136{
137     FCK.Preview() ;
138}
139
140FCKPreviewCommand.prototype.GetState = function()
141{
142        return FCK_TRISTATE_OFF ;
143}
144
145// ### Save
146var FCKSaveCommand = function()
147{
148        this.Name = 'Save' ;
149}
150
151FCKSaveCommand.prototype.Execute = function()
152{
153        // Get the linked field form.
154        var oForm = FCK.LinkedField.form ;
155
156        if ( typeof( oForm.onsubmit ) == 'function' )
157        {
158                var bRet = oForm.onsubmit() ;
159                if ( bRet != null && bRet === false )
160                        return ;
161        }
162
163        // Submit the form.
164        oForm.submit() ;
165}
166
167FCKSaveCommand.prototype.GetState = function()
168{
169        return FCK_TRISTATE_OFF ;
170}
171
172// ### NewPage
173var FCKNewPageCommand = function()
174{
175        this.Name = 'NewPage' ;
176}
177
178FCKNewPageCommand.prototype.Execute = function()
179{
180        FCKUndo.SaveUndoStep() ;
181        FCK.SetHTML( '' ) ;
182        FCKUndo.Typing = true ;
183//      FCK.SetHTML( FCKBrowserInfo.IsGecko ? '&nbsp;' : '' ) ;
184//      FCK.SetHTML( FCKBrowserInfo.IsGecko ? GECKO_BOGUS : '' ) ;
185}
186
187FCKNewPageCommand.prototype.GetState = function()
188{
189        return FCK_TRISTATE_OFF ;
190}
191
192// ### Source button
193var FCKSourceCommand = function()
194{
195        this.Name = 'Source' ;
196}
197
198FCKSourceCommand.prototype.Execute = function()
199{
200        if ( FCKConfig.SourcePopup )    // Until v2.2, it was mandatory for FCKBrowserInfo.IsGecko.
201        {
202                var iWidth      = FCKConfig.ScreenWidth * 0.65 ;
203                var iHeight     = FCKConfig.ScreenHeight * 0.65 ;
204                FCKDialog.OpenDialog( 'FCKDialog_Source', FCKLang.Source, 'dialog/fck_source.html', iWidth, iHeight, null, null, true ) ;
205        }
206        else
207            FCK.SwitchEditMode() ;
208}
209
210FCKSourceCommand.prototype.GetState = function()
211{
212        return ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ? FCK_TRISTATE_OFF : FCK_TRISTATE_ON ) ;
213}
214
215// ### Undo
216var FCKUndoCommand = function()
217{
218        this.Name = 'Undo' ;
219}
220
221FCKUndoCommand.prototype.Execute = function()
222{
223        if ( FCKBrowserInfo.IsIE )
224                FCKUndo.Undo() ;
225        else
226                FCK.ExecuteNamedCommand( 'Undo' ) ;
227}
228
229FCKUndoCommand.prototype.GetState = function()
230{
231        if ( FCKBrowserInfo.IsIE )
232                return ( FCKUndo.CheckUndoState() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) ;
233        else
234                return FCK.GetNamedCommandState( 'Undo' ) ;
235}
236
237// ### Redo
238var FCKRedoCommand = function()
239{
240        this.Name = 'Redo' ;
241}
242
243FCKRedoCommand.prototype.Execute = function()
244{
245        if ( FCKBrowserInfo.IsIE )
246                FCKUndo.Redo() ;
247        else
248                FCK.ExecuteNamedCommand( 'Redo' ) ;
249}
250
251FCKRedoCommand.prototype.GetState = function()
252{
253        if ( FCKBrowserInfo.IsIE )
254                return ( FCKUndo.CheckRedoState() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ) ;
255        else
256                return FCK.GetNamedCommandState( 'Redo' ) ;
257}
258
259// ### Page Break
260var FCKPageBreakCommand = function()
261{
262        this.Name = 'PageBreak' ;
263}
264
265FCKPageBreakCommand.prototype.Execute = function()
266{
267//      var e = FCK.EditorDocument.createElement( 'CENTER' ) ;
268//      e.style.pageBreakAfter = 'always' ;
269
270        // Tidy was removing the empty CENTER tags, so the following solution has
271        // been found. It also validates correctly as XHTML 1.0 Strict.
272        var e = FCK.EditorDocument.createElement( 'DIV' ) ;
273        e.style.pageBreakAfter = 'always' ;
274        e.innerHTML = '<span style="DISPLAY:none">&nbsp;</span>' ;
275       
276        var oFakeImage = FCKDocumentProcessor_CreateFakeImage( 'FCK__PageBreak', e ) ;
277        oFakeImage      = FCK.InsertElement( oFakeImage ) ;
278}
279
280FCKPageBreakCommand.prototype.GetState = function()
281{
282        return 0 ; // FCK_TRISTATE_OFF
283}
284
285// FCKUnlinkCommand - by Johnny Egeland (johnny@coretrek.com)
286var FCKUnlinkCommand = function()
287{
288        this.Name = 'Unlink' ;
289}
290
291FCKUnlinkCommand.prototype.Execute = function()
292{
293        if ( FCKBrowserInfo.IsGecko )
294        {
295                var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
296                if ( oLink )
297                        FCK.Selection.SelectNode( oLink ) ;
298        }
299       
300        FCK.ExecuteNamedCommand( this.Name ) ;
301
302        if ( FCKBrowserInfo.IsGecko )
303                FCK.Selection.Collapse( true ) ;
304}
305
306FCKUnlinkCommand.prototype.GetState = function()
307{
308        return FCK.GetNamedCommandState( this.Name ) ;
309}
Note: See TracBrowser for help on using the repository browser.