| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /**
- * Created by sungwon on 14. 5. 9.
- */
- TrexConfig.add(
- {canvas: {exitEditor:{
- desc:'에디터 영역 : 에디터 영역에서 빠져 나오시려면 Shift+ESC키를 누르세요',
- hotKey: {
- shiftKey: true,
- keyCode:27
- },
- nextElement: null
- }}}, null);
- Trex.module("exit Editor", function(editor, toolbar, sidebar, canvas, config) {
- var _wysiwygPanel = canvas.getPanel(Trex.Canvas.__WYSIWYG_MODE);
- var _elWysiwyg = _wysiwygPanel.el;
- var _config = config.canvas.exitEditor;
- function isSearchElement(searchElement){
- return !($tx.getStyle(searchElement,'display') == 'none'||
- $tx.getStyle(searchElement,'visibility') == 'hidden' ||
- searchElement.tagName.toLowerCase() === 'input' && searchElement.type == 'hidden'||
- searchElement.tagName.toLowerCase() === 'a' && (searchElement.href||'').trim() == ''||
- searchElement.offsetLeft <= 0);
- }
- function execHandler(e){
- try{
- if(_config.nextElement){
- _config.nextElement.focus();
- return;
- }
- var el = _elWysiwyg;
- var pattern = 'button,a,input,select,object';
- var searchElement = null;
- var els = null;
- do{
- var next = $tom.nextContent(el,'#element');
- if($tom.kindOf(next, pattern)){
- searchElement = next;
- }else {
- els = $tom.descendants(next, pattern);
- searchElement = els.find(isSearchElement);
- }
- if(searchElement){
- if(!isSearchElement(searchElement))
- searchElement = null;
- }
- el = next;
- }while(!searchElement&&el);
- if(searchElement)
- searchElement.focus();
- else
- canvas.getProcessor().blur();
- }catch(e){
- canvas.getProcessor().blur();
- }
- }
- _elWysiwyg.title = _config.desc;
- canvas.observeKey(_config.hotKey, function(ev){
- $tx.stop(ev);
- execHandler(ev);
- });
- });
|