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

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: fcktoolbarpanelbutton.js
  12.  *  FCKToolbarPanelButton Class: represents a special button in the toolbar
  13.  *  that shows a panel when pressed.
  14.  * 
  15.  * File Authors:
  16.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  17.  */
  18. var FCKToolbarPanelButton = function( commandName, label, tooltip, style )
  19. {
  20. this.Command = FCKCommands.GetCommand( commandName ) ;
  21. this.Label = label ? label : commandName ;
  22. this.Tooltip = tooltip ? tooltip : ( label ? label : commandName) ;
  23. this.Style = style ? style : FCK_TOOLBARITEM_ONLYICON ;
  24. this.State = FCK_UNKNOWN ;
  25. }
  26. FCKToolbarPanelButton.prototype.Click = function(e)
  27. {
  28. // For Mozilla we must stop the event propagation to avoid it hiding 
  29. // the panel because of a click outside of it.
  30. if ( e )
  31. {
  32. e.stopPropagation() ;
  33. FCKPanelEventHandlers.OnDocumentClick( e ) ;
  34. }
  35. if ( this.State != FCK_TRISTATE_DISABLED )
  36. {
  37. this.Command.Execute(0, this.DOMDiv.offsetHeight, this.DOMDiv) ;
  38. // this.FCKToolbarButton.HandleOnClick( this, e ) ;
  39. }
  40. return false ;
  41. }
  42. FCKToolbarPanelButton.prototype.CreateInstance = function( parentToolbar )
  43. {
  44. this.DOMDiv = document.createElement( 'div' ) ;
  45. this.DOMDiv.className = 'TB_Button_Off' ;
  46. this.DOMDiv.FCKToolbarButton = this ;
  47. var sHtml =
  48. '<table title="' + this.Tooltip + '" cellspacing="0" cellpadding="0" border="0" unselectable="on">' +
  49. '<tr>' ;
  50. if ( this.Style != FCK_TOOLBARITEM_ONLYTEXT ) 
  51. sHtml += '<td class="TB_Icon" unselectable="on"><img src="' + FCKConfig.SkinPath + 'toolbar/' + this.Command.Name.toLowerCase() + '.gif" width="21" height="21" unselectable="on"></td>' ;
  52. if ( this.Style != FCK_TOOLBARITEM_ONLYICON ) 
  53. sHtml += '<td class="TB_Text" unselectable="on" nowrap>' + this.Label + '</td>' ;
  54. sHtml +=
  55. '<td class="TB_ButtonArrow" unselectable="on"><img src="' + FCKConfig.SkinPath + 'images/toolbar.buttonarrow.gif" width="5" height="3"></td>' +
  56. '</tr>' +
  57. '</table>' ;
  58. this.DOMDiv.innerHTML = sHtml ;
  59. var oCell = parentToolbar.DOMRow.insertCell(-1) ;
  60. oCell.appendChild( this.DOMDiv ) ;
  61. this.RefreshState() ;
  62. }
  63. // The Panel Button works like a normal button so the refresh state functions
  64. // defined for the normal button can be reused here.
  65. FCKToolbarPanelButton.prototype.RefreshState = FCKToolbarButton.prototype.RefreshState ;
  66. FCKToolbarPanelButton.prototype.Enable = FCKToolbarButton.prototype.Enable ;
  67. FCKToolbarPanelButton.prototype.Disable = FCKToolbarButton.prototype.Disable ;