switchertoggle.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * @fileoverview
  3. * wysiwyg, source 두 모드의 변경을 가능하게하는 checkbox형식의 tool 'SwitcherToggle' Source,
  4. * Class Trex.Tool.SwitcherToggle 와 configuration을 포함
  5. *
  6. */
  7. TrexConfig.addTool(
  8. "switchertoggle",
  9. {
  10. wysiwygonly: _FALSE,
  11. sync: _TRUE,
  12. status: _TRUE,
  13. options: [
  14. { label: '에디터', title: "에디터", data: 'html' },
  15. { label: 'HTML', title: "HTML", data: 'source' }
  16. ]
  17. }
  18. );
  19. Trex.Tool.SwitcherToggle = Trex.Class.create({
  20. $const: {
  21. __Identity: 'switchertoggle'
  22. },
  23. $extend: Trex.Tool,
  24. oninitialized: function() {
  25. var _canvas = this.canvas;
  26. var _toolHandler = function() {
  27. switch(_canvas.mode){
  28. case 'html':
  29. _canvas.changeMode('source');
  30. break;
  31. case 'source':
  32. _canvas.changeMode('html');
  33. break;
  34. }
  35. return _FALSE;
  36. };
  37. /* button & menu weave */
  38. this.weave.bind(this)(
  39. /* button */
  40. new Trex.Button.Toggle(TrexConfig.merge(this.buttonCfg, {
  41. borderClass: 'tx-switchtoggle'
  42. })),
  43. /* menu */
  44. _NULL,
  45. /* handler */
  46. _toolHandler
  47. );
  48. var _toggleCheckbox = function(from, to) {
  49. this.button.setValue(to == 'source');
  50. }.bind(this);
  51. _canvas.observeJob(Trex.Ev.__CANVAS_MODE_CHANGE, _toggleCheckbox);
  52. _canvas.observeJob(Trex.Ev.__CANVAS_MODE_INITIALIZE, _toggleCheckbox);
  53. }
  54. });