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

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: fcktoolbarbutton.js
  12.  *  FCKToolbarButton Class: represents a button in the toolbar.
  13.  * 
  14.  * File Authors:
  15.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  16.  */
  17. var FCKToolbarButton = function( commandName, label, tooltip, style, sourceView, contextSensitive )
  18. {
  19. this.Command = FCKCommands.GetCommand( commandName ) ;
  20. this.Label = label ? label : commandName ;
  21. this.Tooltip = tooltip ? tooltip : ( label ? label : commandName) ;
  22. this.Style = style ? style : FCK_TOOLBARITEM_ONLYICON ;
  23. this.SourceView = sourceView ? true : false ;
  24. this.ContextSensitive = contextSensitive ? true : false ;
  25. this.IconPath = FCKConfig.SkinPath + 'toolbar/' + commandName.toLowerCase() + '.gif' ;
  26. this.State = FCK_UNKNOWN ;
  27. }
  28. FCKToolbarButton.prototype.CreateInstance = function( parentToolbar )
  29. {
  30. this.DOMDiv = document.createElement( 'div' ) ;
  31. this.DOMDiv.className = 'TB_Button_Off' ;
  32. this.DOMDiv.FCKToolbarButton = this ;
  33. var sHtml =
  34. '<table title="' + this.Tooltip + '" cellspacing="0" cellpadding="0" border="0" unselectable="on">' +
  35. '<tr>' ;
  36. if ( this.Style != FCK_TOOLBARITEM_ONLYTEXT ) 
  37. sHtml += '<td class="TB_Icon" unselectable="on"><img src="' + this.IconPath + '" width="21" height="21" unselectable="on"></td>' ;
  38. if ( this.Style != FCK_TOOLBARITEM_ONLYICON ) 
  39. sHtml += '<td class="TB_Text" unselectable="on" nowrap>' + this.Label + '</td>' ;
  40. sHtml +=
  41. '</tr>' +
  42. '</table>' ;
  43. this.DOMDiv.innerHTML = sHtml ;
  44. var oCell = parentToolbar.DOMRow.insertCell(-1) ;
  45. oCell.appendChild( this.DOMDiv ) ;
  46. this.RefreshState() ;
  47. }
  48. FCKToolbarButton.prototype.RefreshState = function()
  49. {
  50. /*
  51. TODO: Delete this commend block on stable version.
  52. // Gets the actual state.
  53. // var eState ;
  54. // if ( FCK.EditMode == FCK_EDITMODE_SOURCE && ! this.SourceView )
  55. // eState = FCK_TRISTATE_DISABLED ;
  56. // else
  57. */
  58. // Gets the actual state.
  59. var eState = this.Command.GetState() ;
  60. // If there are no state changes than do nothing and return.
  61. if ( eState == this.State ) return ;
  62. // Sets the actual state.
  63. this.State = eState ;
  64. switch ( this.State )
  65. {
  66. case FCK_TRISTATE_ON :
  67. this.DOMDiv.className = 'TB_Button_On' ;
  68. this.DOMDiv.onmouseover = FCKToolbarButton_OnMouseOnOver ;
  69. this.DOMDiv.onmouseout = FCKToolbarButton_OnMouseOnOut ;
  70. this.DOMDiv.onclick = FCKToolbarButton_OnClick ;
  71. break ;
  72. case FCK_TRISTATE_OFF :
  73. this.DOMDiv.className = 'TB_Button_Off' ;
  74. this.DOMDiv.onmouseover = FCKToolbarButton_OnMouseOffOver ;
  75. this.DOMDiv.onmouseout = FCKToolbarButton_OnMouseOffOut ;
  76. this.DOMDiv.onclick = FCKToolbarButton_OnClick ;
  77. break ;
  78. default :
  79. this.Disable() ;
  80. break ;
  81. }
  82. }
  83. function FCKToolbarButton_OnMouseOnOver()
  84. {
  85. this.className = 'TB_Button_On TB_Button_On_Over' ;
  86. }
  87. function FCKToolbarButton_OnMouseOnOut()
  88. {
  89. this.className = 'TB_Button_On' ;
  90. }
  91. function FCKToolbarButton_OnMouseOffOver()
  92. {
  93. this.className = 'TB_Button_On TB_Button_Off_Over' ;
  94. }
  95. function FCKToolbarButton_OnMouseOffOut()
  96. {
  97. this.className = 'TB_Button_Off' ;
  98. }
  99. function FCKToolbarButton_OnClick(e)
  100. {
  101. this.FCKToolbarButton.Click(e) ;
  102. return false ;
  103. }
  104. FCKToolbarButton.prototype.Click = function()
  105. {
  106. this.Command.Execute() ;
  107. }
  108. FCKToolbarButton.prototype.Enable = function()
  109. {
  110. this.RefreshState() ;
  111. }
  112. FCKToolbarButton.prototype.Disable = function()
  113. {
  114. this.State = FCK_TRISTATE_DISABLED ;
  115. this.DOMDiv.className = 'TB_Button_Disabled' ;
  116. this.DOMDiv.onmouseover = null ;
  117. this.DOMDiv.onmouseout = null ;
  118. this.DOMDiv.onclick = null ;
  119. }