fcktablecommand.js
上传用户:ah_jiwei
上传日期:2022-07-24
资源大小:54044k
文件大小:3k
源码类别:

数据库编程

开发平台:

Visual C++

  1. /*
  2.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  * Copyright (C) 2003-2007 Frederico Caldeira Knabben
  4.  *
  5.  * == BEGIN LICENSE ==
  6.  *
  7.  * Licensed under the terms of any of the following licenses at your
  8.  * choice:
  9.  *
  10.  *  - GNU General Public License Version 2 or later (the "GPL")
  11.  *    http://www.gnu.org/licenses/gpl.html
  12.  *
  13.  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14.  *    http://www.gnu.org/licenses/lgpl.html
  15.  *
  16.  *  - Mozilla Public License Version 1.1 or later (the "MPL")
  17.  *    http://www.mozilla.org/MPL/MPL-1.1.html
  18.  *
  19.  * == END LICENSE ==
  20.  *
  21.  * FCKPastePlainTextCommand Class: represents the
  22.  * "Paste as Plain Text" command.
  23.  */
  24. var FCKTableCommand = function( command )
  25. {
  26. this.Name = command ;
  27. }
  28. FCKTableCommand.prototype.Execute = function()
  29. {
  30. FCKUndo.SaveUndoStep() ;
  31. if ( ! FCKBrowserInfo.IsGecko )
  32. {
  33. switch ( this.Name )
  34. {
  35. case 'TableMergeRight' : 
  36. return FCKTableHandler.MergeRight() ;
  37. case 'TableMergeDown' :
  38. return FCKTableHandler.MergeDown() ;
  39. }
  40. }
  41. switch ( this.Name )
  42. {
  43. case 'TableInsertRowAfter' :
  44. return FCKTableHandler.InsertRow( false ) ;
  45. case 'TableInsertRowBefore' :
  46. return FCKTableHandler.InsertRow( true ) ;
  47. case 'TableDeleteRows' :
  48. return FCKTableHandler.DeleteRows() ;
  49. case 'TableInsertColumnAfter' :
  50. return FCKTableHandler.InsertColumn( false ) ;
  51. case 'TableInsertColumnBefore' :
  52. return FCKTableHandler.InsertColumn( true ) ;
  53. case 'TableDeleteColumns' :
  54. return FCKTableHandler.DeleteColumns() ;
  55. case 'TableInsertCellAfter' :
  56. return FCKTableHandler.InsertCell( null, false ) ;
  57. case 'TableInsertCellBefore' :
  58. return FCKTableHandler.InsertCell( null, true ) ;
  59. case 'TableDeleteCells' :
  60. return FCKTableHandler.DeleteCells() ;
  61. case 'TableMergeCells' :
  62. return FCKTableHandler.MergeCells() ;
  63. case 'TableHorizontalSplitCell' :
  64. return FCKTableHandler.HorizontalSplitCell() ;
  65. case 'TableVerticalSplitCell' :
  66. return FCKTableHandler.VerticalSplitCell() ;
  67. case 'TableDelete' :
  68. return FCKTableHandler.DeleteTable() ;
  69. default :
  70. return alert( FCKLang.UnknownCommand.replace( /%1/g, this.Name ) ) ;
  71. }
  72. }
  73. FCKTableCommand.prototype.GetState = function()
  74. {
  75. if ( FCK.EditorDocument != null && FCKSelection.HasAncestorNode( 'TABLE' ) )
  76. {
  77. switch ( this.Name )
  78. {
  79. case 'TableHorizontalSplitCell' :
  80. case 'TableVerticalSplitCell' :
  81. if ( FCKTableHandler.GetSelectedCells().length == 1 )
  82. return FCK_TRISTATE_OFF ;
  83. else
  84. return FCK_TRISTATE_DISABLED ;
  85. case 'TableMergeCells' :
  86. if ( FCKTableHandler.CheckIsSelectionRectangular() 
  87. && FCKTableHandler.GetSelectedCells().length > 1 )
  88. return FCK_TRISTATE_OFF ;
  89. else
  90. return FCK_TRISTATE_DISABLED ;
  91. case 'TableMergeRight' :
  92. return FCKTableHandler.GetMergeRightTarget() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
  93. case 'TableMergeDown' :
  94. return FCKTableHandler.GetMergeDownTarget() ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
  95. default :
  96. return FCK_TRISTATE_OFF ;
  97. }
  98. }
  99. else
  100. return FCK_TRISTATE_DISABLED; 
  101. }