textpanel.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /**
  2. * @fileOverview
  3. * Textarea (source, text) 영역의 컨텐츠를 수정, 관리하기 위한 TextPanel 관련 Source
  4. */
  5. /**
  6. * 텍스트모드의 컨텐츠를 수정, 관리하기 위한 클래스
  7. *
  8. * @class
  9. * @extends Trex.Canvas.BasedPanel
  10. * @param {Object} canvas
  11. * @param {Object} config - canvas의 config
  12. */
  13. Trex.Canvas.TextPanel = Trex.Class.create(/** @lends Trex.Canvas.TextPanel.prototype */{
  14. /** @ignore */
  15. $extend: Trex.Canvas.TextareaPanel,
  16. /** @ignore */
  17. $const: {
  18. /** @name Trex.Canvas.TextPanel.__MODE */
  19. __MODE: Trex.Canvas.__TEXT_MODE
  20. },
  21. initialize: function(canvas, config) {
  22. this.$super.initialize(canvas, config);
  23. this.bindEvents();
  24. },
  25. bindEvents: function() {
  26. var _handlers = {
  27. keydown: function(){},
  28. keyup: function(){},
  29. mousedown: function(){},
  30. mouseup: function(){},
  31. click: function(ev) {
  32. this.canvas.fireJobs(Trex.Ev.__CANVAS_TEXT_PANEL_CLICK, ev);
  33. }
  34. };
  35. for(var _eventType in _handlers){
  36. $tx.observe(this.el, _eventType, _handlers[_eventType].bind(this), _TRUE);
  37. }
  38. },
  39. /**
  40. * panel 엘리먼트를 가지고 온다.
  41. * @function
  42. */
  43. getPanel: function(config) {
  44. var _initializedId = ((config.initializedId)? config.initializedId: "");
  45. return $must("tx_canvas_text" + _initializedId, "Trex.Canvas.TextPanel");
  46. },
  47. /**
  48. * panel 엘리먼트를 감싸고 있는 wrapper 엘리먼트를 가지고 온다.
  49. * @function
  50. */
  51. getHolder: function(config) {
  52. var _initializedId = ((config.initializedId)? config.initializedId: "");
  53. return $must("tx_canvas_text_holder" + _initializedId, "Trex.Canvas.TextPanel");
  54. }
  55. });
  56. Trex.module("interrupt enter key action @ text panel",
  57. function(editor, toolbar, sidebar, canvas) {
  58. var _newlinepolicy = canvas.config.newlinepolicy;
  59. var _insertbr = canvas.config.insertbr;
  60. if (_newlinepolicy == "br" && _insertbr) {
  61. canvas.observeJob(Trex.Ev.__CANVAS_SOURCE_PANEL_KEYDOWN, function(ev){
  62. if (canvas.isWYSIWYG()) {
  63. return;
  64. }
  65. canvas.getProcessor().controlEnter(ev);
  66. });
  67. }
  68. }
  69. );