Exemple #1
0
        public static string[] BuildCmdLine(PanelItemBase panelItem, AddonMenuItem menuItem)
        {
            var programFileName = menuItem.ProgramValue.ExpandedFileName;
            var programArgs     = AddonProgram.ExpandCmdLine(menuItem.ProgramArgs);

            programArgs = MacroHelper.ExpandPublicProperties(programArgs, panelItem);
            return(ProtocolHelper.IsProtocol(menuItem.ProgramRef.Id)
                ? new[] { menuItem.ProgramRef.Id + programArgs }
                : new[] { programFileName, programArgs });
        }
Exemple #2
0
        public AddonCommandStarter(AddonMenuItem menuItem, PanelItemBase panelItem)
        {
            if (menuItem == null)
            {
                throw new ArgumentNullException("menuItem");
            }

            if (panelItem == null)
            {
                throw new ArgumentNullException("panelItem");
            }

            m_PanelItem = panelItem;
            m_MenuItem  = menuItem;

            var factoryManager = App.Resolve <IPanelItemFactoryManager>();

            m_Checker = factoryManager.GetAvailabilityChecker(m_PanelItem.GetType());
        }
Exemple #3
0
        /// <summary>
        /// Run addon command marked with Default flag for current panelItem.
        /// </summary>
        public void RunDefaultCmdLine()
        {
            var pv = App.MainPages.View.ActivePanelView;

            if (pv == null)
            {
                return;
            }

            var panelItem = pv.Presenter.GetFocusedPanelItem(true);

            if (panelItem == null)
            {
                return;
            }

            var typeId = panelItem.GetType().Name;

            if (!PanelItems.ContainsKey(typeId))
            {
                return;
            }

            var           item        = PanelItems[typeId];
            AddonMenuItem defaultItem = null;

            foreach (var menuItem in item.ContextMenu)
            {
                if (menuItem.Default && menuItem.Enabled)
                {
                    defaultItem = menuItem;
                }
            }

            if (defaultItem != null)
            {
                new AddonCommandStarter(defaultItem, panelItem).Start();
            }
        }