ordered.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * @fileoverview
  3. * OL을 삽입하는 '번호매기기' Source,
  4. * Class Trex.Tool.OrderedList와 configuration을 포함
  5. *
  6. */
  7. TrexConfig.addTool(
  8. "ordered",
  9. {
  10. sync: _TRUE,
  11. status: _TRUE
  12. }
  13. );
  14. Trex.Tool.OrderedList = Trex.Class.create({
  15. $const: {
  16. __Identity: 'ordered'
  17. },
  18. $extend: Trex.Tool,
  19. $mixins: [Trex.I.ListExecution],
  20. oninitialized: function() {
  21. var _tool = this;
  22. var _canvas = this.canvas;
  23. var _toolbar = this.toolbar;
  24. var _toolHandler = function() {
  25. _toolbar.tools["unordered"].button.normalState();
  26. /*if(_toolbar.tools["ordered"].button.isPushed()){
  27. return _FALSE;
  28. }*/
  29. _canvas.execute(function(processor) {
  30. var _bNode = processor.findNode('%listhead');
  31. if (_bNode) {
  32. if ($tom.kindOf(_bNode, "ol")) {
  33. _tool.executeOffList(processor);
  34. } else {
  35. _tool.executeToList(processor, "ol", {});
  36. }
  37. } else {
  38. _tool.executeToList(processor, "ol", {});
  39. }
  40. });
  41. };
  42. /* button & menu weave */
  43. this.weave.bind(this)(
  44. /* button */
  45. new Trex.Button(this.buttonCfg),
  46. /* menu */
  47. _NULL,
  48. /* handler */
  49. _toolHandler
  50. );
  51. var _cachedProperty = _NULL;
  52. _canvas.observeJob(Trex.Ev.__CANVAS_PANEL_QUERY_STATUS, function() {
  53. var _data = _canvas.query(function(processor) {
  54. return processor.queryCommandState('insertorderedlist');
  55. });
  56. if(_cachedProperty == _data) {
  57. return;
  58. }
  59. _tool.button.setState(_data);
  60. _cachedProperty = _data;
  61. });
  62. this.bindKeyboard({ // ctrl + o
  63. ctrlKey: _TRUE,
  64. altKey: _TRUE,
  65. keyCode: 79
  66. }, _toolHandler);
  67. }
  68. });