<@doc hierarchy="GMLDOM"> The abstract aspect role representing graphical drawings of GML objects (c) SAP AG 2003-2006. All rights reserved. Aspect role GmlDrawing : g; Configure BOARDS, COMMANDS, MENUBARS, HOTKEYS // TODO: the following line is temporary // (until the GmlScript preprocessor enables writing "implement core.dev:IBoard;" in this declaration unit). $DOM.attachPrototype('core.dev:IBoard', 'core.svg:GmlDrawing'); ////////////////////////////////////////////////////////////////// // BOARD DEFINITION $ENV.defineBoard({ id: '#NS[DRAWING_BOARD]', aspect: '#NS[GmlDrawing]', name: '#TEXT[XMEN_DESIGN]', type: 'SVG', impl: '#URL[drawing.board.Board.htm]', priority: 100, isDefault: true }); ////////////////////////////////////////////////////////////////// // DRAWING COMMANDS $ENV.defineCommand({ id: 'DRAW_FLIP_X', signal: 'BOARD->flipX()', text: '#TEXT[XMIT_FLIP_HORIZON]', icon: '#URL[~skin:icons.flip-x.gif]', disable: function(){ var context = $ENV.contextElement; if(!context) return true; else{ var geometry = context['g$geometry']; if(!geometry) return true; var val = geometry['rotateMode']; if( (val == #[SVG_ROTATE_FULL]) || (val == (#[SVG_ROTATE_FULL|SVG_FLIP_VBODY]))|| (val == (#[SVG_ROTATE_FULL|SVG_FLIP_BODY])) || (val == #[SVG_FLIPX]) ) return false; return true; } }, category: 'DRAWING' }); $ENV.defineCommand({ id: 'DRAW_FLIP_Y', signal: 'BOARD->flipY()', text: '#TEXT[XMIT_FLIP_VERTICAL]', icon: '#URL[~skin:icons.flip-y.gif]', disable: function(){ var context = $ENV.contextElement; if(!context) return true; else{ var geometry = context['g$geometry']; if(!geometry) return true; var val = geometry['rotateMode']; if( (val == #[SVG_ROTATE_FULL]) || (val == (#[SVG_ROTATE_FULL|SVG_FLIP_VBODY]))|| (val == (#[SVG_ROTATE_FULL|SVG_FLIP_BODY])) || (val == #[SVG_FLIPY]) ) return false; return true; } }, category: 'DRAWING' }); $ENV.defineCommand({ id: 'DRAW_ROTATE_RIGHT', signal: 'BOARD->rotate(+1)', text: '#TEXT[XMIT_ROTATE_RIGHT]', icon: '#URL[~skin:icons.rotate-right.gif]', disable: function(){ var context = $ENV.contextElement; if(!context) return true; else{ var geometry = context['g$geometry']; if(!geometry) return true; var val = geometry['rotateMode']; if( (val == #[SVG_ROTATE_FULL]) || (val == (#[SVG_ROTATE_FULL|SVG_FLIP_VBODY]))|| (val == (#[SVG_ROTATE_FULL|SVG_FLIP_BODY])) ) return false; return true; } }, category: 'DRAWING' }); $ENV.defineCommand({ id: 'DRAW_ROTATE_LEFT', signal: 'BOARD->rotate(-1)', text: '#TEXT[XMIT_ROTATE_LEFT]', icon: '#URL[~skin:icons.rotate-left.gif]', disable: function(){ var context = $ENV.contextElement; if(!context) return true; else{ var geometry = context['g$geometry']; if(!geometry) return true; var val = geometry['rotateMode']; if( (val == #[SVG_ROTATE_FULL]) || (val == (#[SVG_ROTATE_FULL|SVG_FLIP_VBODY]))|| (val == (#[SVG_ROTATE_FULL|SVG_FLIP_BODY])) ) return false; return true; } }, category: 'DRAWING' }); $ENV.defineCommand({ id: 'DRAW_OPTIMIZE_SPEED', signal: 'BOARD->toggleQuality(false)', text: '#TEXT[XMIT_QUICK_DRAFT]', icon: '#URL[~skin:icons.optimize-speed.gif]', category: 'DRAWING' }); $ENV.defineCommand({ id: 'DRAW_OPTIMIZE_QUALITY', signal: 'BOARD->toggleQuality(true)', text: '#TEXT[XMIT_HIGH_QUALITY]', icon: '#URL[~skin:icons.optimize-quality.gif]', category: 'DRAWING' }); ////////////////////////////////////////////////////////////////// // DRAWING TOOLBAR var toolbar = $ENV.defineMenubar('DSG_TOOLBAR', 'DRAWING', '#TEXT[XTBS_DRAWING]', true); toolbar.append({button:'VIEW_ZOOM_IN'}); toolbar.append({button:'VIEW_ZOOM_OUT'}); //toolbar.append(); //toolbar.append({button:'DRAW_FLIP_X'}); //toolbar.append({button:'DRAW_FLIP_Y'}); //toolbar.append({button:'DRAW_ROTATE_RIGHT'}); //toolbar.append({button:'DRAW_ROTATE_LEFT'}); ////////////////////////////////////////////////////////////////// // DRAWING MENU var submenu = $ENV.getMenubar('VIEW_MENU'); submenu.append(); submenu.append({button:'VIEW_OVERVIEW'}); submenu.append({button:'VIEW_GRID'}); submenu.append({button:'VIEW_RULERS'}); /*submenu.append(); submenu.append({button:'DRAW_OPTIMIZE_SPEED'}); submenu.append({button:'DRAW_OPTIMIZE_QUALITY'}); */ ////////////////////////////////////////////////////////////////// // DRAWING HOTKEYS //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'C45', 'EDIT_COPY'); // Ctrl+INS //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'C96', 'EDIT_COPY'); // Ctrl+INS (keypad) //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'S45', 'EDIT_PASTE'); // Shift+INS //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'S96', 'EDIT_PASTE'); // Shift+INS (keypad) $ENV.defineHotkey('GmlDrawing', '46', 'EDIT_DELETE'); // DEL $ENV.defineHotkey('GmlDrawing', '110', 'EDIT_DELETE'); // DEL (keypad) //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'S46', 'EDIT_CUT'); // Shift+DEL //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'S110', 'EDIT_CUT'); // Shift+DEL (keypad) $ENV.defineHotkey('GmlDrawing', 'C65', 'EDIT_SELECT_ALL'); // Ctrl+A //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'C67', 'EDIT_COPY'); // Ctrl+C //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'C86', 'EDIT_PASTE'); // Ctrl+V //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'C88', 'EDIT_CUT'); // Ctrl+X //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'C89', 'EDIT_REDO'); // Ctrl+Y //[DIS_CPUR]$ENV.defineHotkey('GmlDrawing', 'C90', 'EDIT_UNDO'); // Ctrl+Z $ENV.defineHotkey('GmlDrawing', '113', 'EDIT_RENAME'); // F2 $ENV.defineHotkey('GmlDrawing', 'C37', 'VIEW_SCROLL_LEFT'); // Ctrl+LEFT $ENV.defineHotkey('GmlDrawing', 'C38', 'VIEW_SCROLL_UP'); // Ctrl+UP $ENV.defineHotkey('GmlDrawing', 'C39', 'VIEW_SCROLL_RIGHT'); // Ctrl+RIGHT $ENV.defineHotkey('GmlDrawing', 'C40', 'VIEW_SCROLL_DOWN'); // Ctrl+DOWN $ENV.defineHotkey('GmlDrawing', 'C107', 'VIEW_ZOOM_IN'); // Ctrl+PLUS $ENV.defineHotkey('GmlDrawing', 'C109', 'VIEW_ZOOM_OUT'); // Ctrl+MINUS $ENV.defineHotkey('GmlDrawing', '118', 'VIEW_FIT_WINDOW'); // F7 $ENV.defineHotkey('GmlDrawing', 'C118', 'VIEW_ACTUAL_SIZE'); // Ctrl+F7 $ENV.defineHotkey('GmlDrawing', 'A118', 'VIEW_OVERVIEW'); // Alt+F7 $ENV.defineHotkey('GmlDrawing', 'C187', 'VIEW_ZOOM_IN'); // Ctrl+PLUS $ENV.defineHotkey('GmlDrawing', 'C189', 'VIEW_ZOOM_OUT'); // Ctrl+MINUS end