fckstylecommand.js
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:2k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. /*
  2.  * FCKeditor - The text editor for internet
  3.  * Copyright (C) 2003-2005 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.  * File Name: fckstylecommand.js
  12.  *  FCKStyleCommand Class: represents the "Style" command.
  13.  * 
  14.  * File Authors:
  15.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  16.  */
  17. var FCKStyleCommand = function()
  18. {
  19. this.Name = 'Style' ;
  20. // Load the Styles defined in the XML file.
  21. this.StylesLoader = new FCKStylesLoader() ;
  22. this.StylesLoader.Load( FCKConfig.StylesXmlPath ) ;
  23. this.Styles = this.StylesLoader.Styles ;
  24. }
  25. FCKStyleCommand.prototype.Execute = function( styleName, styleComboItem )
  26. {
  27. if ( styleComboItem.Selected )
  28. styleComboItem.Style.RemoveFromSelection() ;
  29. else
  30. styleComboItem.Style.ApplyToSelection() ;
  31. FCK.Focus() ;
  32. FCK.Events.FireEvent( "OnSelectionChange" ) ;
  33. }
  34. FCKStyleCommand.prototype.GetState = function()
  35. {
  36. var oSelection = FCK.EditorDocument.selection ;
  37. if ( FCKSelection.GetType() == 'Control' )
  38. {
  39. var e = FCKSelection.GetSelectedElement() ;
  40. if ( e )
  41. return this.StylesLoader.StyleGroups[ e.tagName ] ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
  42. else
  43. FCK_TRISTATE_OFF ;
  44. }
  45. else
  46. return FCK_TRISTATE_OFF ;
  47. }
  48. FCKStyleCommand.prototype.GetActiveStyles = function()
  49. {
  50. var aActiveStyles = new Array() ;
  51. if ( FCKSelection.GetType() == 'Control' )
  52. this._CheckStyle( FCKSelection.GetSelectedElement(), aActiveStyles, false ) ;
  53. else
  54. this._CheckStyle( FCKSelection.GetParentElement(), aActiveStyles, true ) ;
  55. return aActiveStyles ;
  56. }
  57. FCKStyleCommand.prototype._CheckStyle = function( element, targetArray, checkParent )
  58. {
  59. if ( ! element )
  60. return ;
  61. if ( element.nodeType == 1 )
  62. {
  63. var aStyleGroup = this.StylesLoader.StyleGroups[ element.tagName ] ;
  64. if ( aStyleGroup )
  65. {
  66. for ( var i = 0 ; i < aStyleGroup.length ; i++ )
  67. {
  68. if ( aStyleGroup[i].IsEqual( element ) )
  69. targetArray[ targetArray.length ] = aStyleGroup[i] ;
  70. }
  71. }
  72. }
  73. if ( checkParent )
  74. this._CheckStyle( element.parentNode, targetArray, checkParent ) ;
  75. }