/pigeoncms/Plugins/fckeditor/editor/_source/commandclasses/fcktablecommand.js

http://pigeoncms.googlecode.com/ · JavaScript · 106 lines · 78 code · 5 blank · 23 comment · 11 complexity · 4dba000fa0c6ec986bacc73886a6fc6e MD5 · raw file

  1. /*
  2. * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3. * Copyright (C) 2003-2009 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. }