From e028d534794ed6e5b1d270d69f608cf1419aa2ad Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 15 May 2014 09:24:52 -0400 Subject: [PATCH] feature(edit) add menu --- lib/client/dom.js | 18 ++++++++++++++++++ lib/client/edit.js | 26 ++++++++++++++++++++++---- lib/client/menu.js | 35 +++++++---------------------------- 3 files changed, 47 insertions(+), 32 deletions(-) diff --git a/lib/client/dom.js b/lib/client/dom.js index af039bdc..a5775ebb 100644 --- a/lib/client/dom.js +++ b/lib/client/dom.js @@ -614,6 +614,24 @@ var CloudCmd, Util, DOM, CloudFunc, Dialog; }); }; + /** function loads css and js of Menu + * @param callback + */ + this.menuLoad = function(callback) { + var Images = DOM.Images, + dir = CloudCmd.LIBDIRCLIENT + 'menu/', + files = [ + dir + 'menu-io.js', + dir + 'menu-io.css' + ]; + + Images.showLoad(); + DOM.anyLoadInParallel(files, function() { + Images.hide(); + Util.exec(callback); + }); + }; + /** * create new folder * diff --git a/lib/client/edit.js b/lib/client/edit.js index 487ef4d9..aa7f8a0b 100644 --- a/lib/client/edit.js +++ b/lib/client/edit.js @@ -1,4 +1,4 @@ -var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip; +var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip, MenuIO; (function(CloudCmd, Util, DOM, CloudFunc) { 'use strict'; @@ -10,6 +10,7 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip; DIR = CloudCmd.LIBDIRCLIENT + 'edit/', LIBDIR = CloudCmd.LIBDIR, Info = DOM.CurrentInfo, + Menu, Value, Edit = this, Diff, @@ -60,13 +61,15 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip; initAce(); Events.add({ - drop : onDrop, - dragover : function(event) { + drop : onDrop, + dragover : function(event) { event.preventDefault(); - } + }, }, Element); } + setMenu(Element); + modesByName = Modelist.modesByName; if (isDir) @@ -364,6 +367,21 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip; }); } + function setMenu(element) { + DOM.menuLoad(function() { + var options = { + beforeShow: function(params) { + params.x -= 18; + params.y -= 27; + } + }; + + Menu = new MenuIO(element, options, { + 'Save': save + }); + }); + } + function load(callback) { var files = [ DIR + 'theme-tomorrow_night_blue.js', diff --git a/lib/client/menu.js b/lib/client/menu.js index cdbad613..3bef4920 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -6,8 +6,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; CloudCmd.Menu = MenuProto; function MenuProto(position) { - var Name = 'Menu', - Info = DOM.CurrentInfo, + var Info = DOM.CurrentInfo, Loading = true, Key = CloudCmd.Key, Events = DOM.Events, @@ -15,8 +14,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; MenuShowedName, MenuContext, MenuContextFile, - Position = CloudCmd.MousePosition, - Images = DOM.Images; + Position = CloudCmd.MousePosition; this.ENABLED = false; @@ -24,7 +22,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; Loading = true; Util.loadOnLoad([ - load, + DOM.menuLoad, Menu.show ]); @@ -134,13 +132,13 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; }); } - function beforeShow(callback, x, y, name) { + function beforeShow(callback, params) { var notShow = DOM.getCurrentByPosition({ - x: x, - y: y + x: params.x, + y: params.y }); - if (name === 'contextFile') { + if (params.name === 'contextFile') { notShow = !notShow; } @@ -225,25 +223,6 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; }, TIME); } - /** function loads css and js of Menu - * @param callback - */ - function load(callback) { - Util.time(Name + ' load'); - - var dir = CloudCmd.LIBDIRCLIENT + 'menu/', - files = [ - dir + 'menu-io.js', - dir + 'menu-io.css' - ]; - - DOM.anyLoadInParallel(files, function() { - Util.timeEnd(Name + ' load'); - Images.hide(); - Util.exec(callback); - }); - } - function listener(event) { var current, x, y, position, F9 = Key.F9,