Rev 1075 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/** FCKeditor - The text editor for internet* Copyright (C) 2003-2006 Frederico Caldeira Knabben** Licensed under the terms of the GNU Lesser General Public License:* http://www.opensource.org/licenses/lgpl-license.php** For further information visit:* http://www.fckeditor.net/** "Support Open Source software. What about a donation today?"** File Name: fckstylecommand.js* FCKStyleCommand Class: represents the "Style" command.** File Authors:* Frederico Caldeira Knabben (fredck@fckeditor.net)*/var FCKStyleCommand = function(){this.Name = 'Style' ;// Load the Styles defined in the XML file.this.StylesLoader = new FCKStylesLoader() ;this.StylesLoader.Load( FCKConfig.StylesXmlPath ) ;this.Styles = this.StylesLoader.Styles ;}FCKStyleCommand.prototype.Execute = function( styleName, styleComboItem ){FCKUndo.SaveUndoStep() ;if ( styleComboItem.Selected )styleComboItem.Style.RemoveFromSelection() ;elsestyleComboItem.Style.ApplyToSelection() ;FCKUndo.SaveUndoStep() ;FCK.Focus() ;FCK.Events.FireEvent( "OnSelectionChange" ) ;}FCKStyleCommand.prototype.GetState = function(){if ( !FCK.EditorDocument )return FCK_TRISTATE_DISABLED ;var oSelection = FCK.EditorDocument.selection ;if ( FCKSelection.GetType() == 'Control' ){var e = FCKSelection.GetSelectedElement() ;if ( e )return this.StylesLoader.StyleGroups[ e.tagName ] ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;}return FCK_TRISTATE_OFF ;}FCKStyleCommand.prototype.GetActiveStyles = function(){var aActiveStyles = new Array() ;if ( FCKSelection.GetType() == 'Control' )this._CheckStyle( FCKSelection.GetSelectedElement(), aActiveStyles, false ) ;elsethis._CheckStyle( FCKSelection.GetParentElement(), aActiveStyles, true ) ;return aActiveStyles ;}FCKStyleCommand.prototype._CheckStyle = function( element, targetArray, checkParent ){if ( ! element )return ;if ( element.nodeType == 1 ){var aStyleGroup = this.StylesLoader.StyleGroups[ element.tagName ] ;if ( aStyleGroup ){for ( var i = 0 ; i < aStyleGroup.length ; i++ ){if ( aStyleGroup[i].IsEqual( element ) )targetArray[ targetArray.length ] = aStyleGroup[i] ;}}}if ( checkParent )this._CheckStyle( element.parentNode, targetArray, checkParent ) ;}