diff --git a/editor/contextmenu.js b/editor/contextmenu.js index 0d5dd343..e55fd28d 100644 --- a/editor/contextmenu.js +++ b/editor/contextmenu.js @@ -13,54 +13,50 @@ var svgedit = svgedit || {}; if (!svgedit.contextmenu) { svgedit.contextmenu = {}; } - self.contextMenuExtensions = {} + self.contextMenuExtensions = {}; + var menuItemIsValid = function(menuItem) { + return menuItem && menuItem.id && menuItem.label && menuItem.action && typeof menuItem.action == 'function'; + }; var addContextMenuItem = function(menuItem) { // menuItem: {id, label, shortcut, action} if (!menuItemIsValid(menuItem)) { - console - .error("Menu items must be defined and have at least properties: id, label, action, where action must be a function"); + console.error("Menu items must be defined and have at least properties: id, label, action, where action must be a function"); return; } if (menuItem.id in self.contextMenuExtensions) { - console.error('Cannot add extension "' + menuItem.id - + '", an extension by that name already exists"'); + console.error('Cannot add extension "' + menuItem.id + '", an extension by that name already exists"'); return; } // Register menuItem action, see below for deferred menu dom injection console.log("Registed contextmenu item: {id:"+ menuItem.id+", label:"+menuItem.label+"}"); self.contextMenuExtensions[menuItem.id] = menuItem; //TODO: Need to consider how to handle custom enable/disable behavior - } + }; var hasCustomHandler = function(handlerKey) { return self.contextMenuExtensions[handlerKey] && true; - } + }; var getCustomHandler = function(handlerKey) { return self.contextMenuExtensions[handlerKey].action; - } + }; var injectExtendedContextMenuItemIntoDom = function(menuItem) { - if (Object.keys(self.contextMenuExtensions).length == 0) { + if (Object.keys(self.contextMenuExtensions).length === 0) { // all menuItems appear at the bottom of the menu in their own container. // if this is the first extension menu we need to add the separator. $("#cmenu_canvas").append("
  • "); } var shortcut = menuItem.shortcut || ""; - $("#cmenu_canvas").append("
  • " + $("#cmenu_canvas").append("
  • " + menuItem.label + "" + shortcut + "
  • "); - } - - var menuItemIsValid = function(menuItem) { - return menuItem && menuItem.id && menuItem.label && menuItem.action && typeof menuItem.action == 'function'; - } - + }; // Defer injection to wait out initial menu processing. This probably goes away once all context // menu behavior is brought here. svgEditor.ready(function() { - for (menuItem in contextMenuExtensions) { + for (var menuItem in contextMenuExtensions) { injectExtendedContextMenuItemIntoDom(contextMenuExtensions[menuItem]); } }); - svgedit.contextmenu.resetCustomMenus = function(){self.contextMenuExtensions = {}} + svgedit.contextmenu.resetCustomMenus = function(){self.contextMenuExtensions = {};}; svgedit.contextmenu.add = addContextMenuItem; svgedit.contextmenu.hasCustomHandler = hasCustomHandler; svgedit.contextmenu.getCustomHandler = getCustomHandler;