processor_textarea.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. Trex.Canvas.TextAreaProcessor = Trex.Class.create({
  2. $mixins: [ ],
  3. initialize: function(textarea) {
  4. this.el = textarea;
  5. },
  6. focus: function() {
  7. this.el.focus();
  8. },
  9. blur: function() {
  10. _WIN.focus();
  11. },
  12. /**
  13. * 본문의 처음으로 캐럿을 옮긴다.
  14. * @example
  15. * processor.focusOnTop();
  16. */
  17. focusOnTop: function() {
  18. var textarea = this.el;
  19. textarea.focus();
  20. this._selectCharacter(0, 0);
  21. textarea.scrollTop = 0;
  22. },
  23. focusOnBottom: function() {
  24. var textarea = this.el;
  25. textarea.focus();
  26. var len = textarea.value.length;
  27. this._selectCharacter(len, len);
  28. textarea.scrollTop = textarea.scrollHeight;
  29. },
  30. savePosition: function() {
  31. // 왜 사용되었는지 의문.. this.currentPos가 쓰이는 곳이 없음. #FTDUEDTR-1395
  32. // if (this.el.createTextRange) {
  33. // this.currentPos = _DOC.selection.createRange().duplicate();
  34. // }
  35. },
  36. controlEnter: function() {
  37. var _processor = this;
  38. _processor.insertTag("<br/>", "");
  39. },
  40. insertTag: function(prefix, postfix) {
  41. this.pasteContent(prefix + postfix);
  42. return _TRUE;
  43. },
  44. pasteContent: function( content/*, newLine, wrapStyle*/){
  45. this.el.value += content;
  46. },
  47. _selectCharacter: function(startChar, endChar) {
  48. var textarea = this.el;
  49. if (textarea.setSelectionRange) { // standard
  50. textarea.select();
  51. textarea.setSelectionRange(startChar, endChar);
  52. } else if (textarea.createTextRange) { // IE
  53. var range = textarea.createTextRange();
  54. range.collapse(_TRUE);
  55. range.moveStart("character", startChar);
  56. range.moveEnd("character", endChar);
  57. range.select();
  58. }
  59. }
  60. });