public IWorkItem GetParameterFromSelectedSuggestion(IWorkItem selectedSuggestion) { OSD.Menu.Menu bookmarkMenu = new OSD.Menu.Menu(null, "Bookmarks", Settings.Current.EnsoLearnAsOpenCommandsFolder, true, false, true, false, null, true, new OSD.Menu.MenuItemChosenDelegate(MenuItemChoosen)); OSD.Menu.MenuItem selectedMenuItem = OSD.Menu.Menu.ShowMenu(bookmarkMenu); if (selectedMenuItem != null) { string shortcutFilePath = (string)selectedMenuItem.tag; Shortcut bookmarkShortcut = WorkItemsProviders.Shortcuts.Shortcuts.ReadShortcutFile(shortcutFilePath); bookmarkShortcut.provider = this; selectedSuggestion = (IWorkItem)bookmarkShortcut; } else { selectedSuggestion = null; } return(selectedSuggestion); }
public void ExecuteCommand(Extension.IEnsoService service, Command command) { Logging.AddActionLog(string.Format("BookmarkManager: Executing command '{0}' ...", command.Name)); if (command.Name == "bookmark as") { //MessagesHandler.Display( "Loading bookmark folders ..."); this.service = service; OSD.OSD.SettingsFilePath = "OSD.Bookmarks.ini"; OSD.Menu.Menu bookmarkMenu = new OSD.Menu.Menu(null, "Bookmarks", Settings.Current.EnsoLearnAsOpenCommandsFolder, false, false, false, false, "[New Category]", false, new OSD.Menu.MenuItemChosenDelegate(MenuItemChoosen)); Thread bringToFrontAssistant = new Thread(BringToFront); bringToFrontAssistant.Start("OSD"); OSD.Menu.MenuItem selectedMenuItem = OSD.Menu.Menu.ShowMenu(bookmarkMenu); if (selectedMenuItem != null) { string bookmarkFilePath = Path.Combine((string)selectedMenuItem.tag, command.parametersOnExecute[0].GetValueAsText() + ".url"); BookmarkManager.SaveLinkFile(bookmarkFilePath, command.parametersOnExecute[1].GetValueAsText()); string message = command.parametersOnExecute[1].GetValueAsText(); MessagesHandler.Display(string.Format("{0} saved as bookmark.", message)); } } else if (command.Name == "bookmark all tabs as") { this.service = service; OSD.OSD.SettingsFilePath = "OSD.Bookmarks.ini"; OSD.Menu.Menu bookmarkMenu = new OSD.Menu.Menu(null, "Bookmarks", Settings.Current.EnsoLearnAsOpenCommandsFolder, false, false, false, false, "[New Category]", false, new OSD.Menu.MenuItemChosenDelegate(MenuItemChoosen)); Thread bringToFrontAssistant = new Thread(BringToFront); bringToFrontAssistant.Start("OSD"); OSD.Menu.MenuItem selectedMenuItem = OSD.Menu.Menu.ShowMenu(bookmarkMenu); if (selectedMenuItem != null) { //string bookmarkFilePath = Path.Combine((string)selectedMenuItem.tag, command.parametersOnExecute[0].GetCaption() + "."+Entities.WorkItems.Shortcuts.extension); CommandsProviders.FOpener.FOpener.SaveAllTabs(true, service, command.parametersOnExecute[0].GetCaption(), (string)selectedMenuItem.tag, "BookmarkManager"); } } else if (command.Name == "bookmark all tabs in one category") { this.service = service; OSD.OSD.SettingsFilePath = "OSD.Bookmarks.ini"; OSD.Menu.Menu bookmarkMenu = new OSD.Menu.Menu(null, "Bookmarks", Settings.Current.EnsoLearnAsOpenCommandsFolder, false, false, false, false, "[New Category]", false, new OSD.Menu.MenuItemChosenDelegate(MenuItemChoosen)); Thread bringToFrontAssistant = new Thread(BringToFront); bringToFrontAssistant.Start("OSD"); OSD.Menu.MenuItem selectedMenuItem = OSD.Menu.Menu.ShowMenu(bookmarkMenu); if (selectedMenuItem != null) { //string bookmarkFilePath = Path.Combine((string)selectedMenuItem.tag, command.parametersOnExecute[0].GetCaption() + "."+Entities.WorkItems.Shortcuts.extension); CommandsProviders.FOpener.FOpener.SaveAllTabs(false, service, Path.GetFileNameWithoutExtension(selectedMenuItem.tag.ToString()), (string)selectedMenuItem.tag, "BookmarkManager"); } } else if (command.Name == "open bookmark") { //MessagesHandler.Display( "Loading bookmark folders ..."); OSD.OSD.SettingsFilePath = "OSD.Bookmarks.ini"; OSD.Menu.Menu bookmarkMenu = new OSD.Menu.Menu(null, "Bookmarks", Settings.Current.EnsoLearnAsOpenCommandsFolder, true, false, true, false, "[All From This Category]", false, null); Thread bringToFrontAssistant = new Thread(BringToFront); bringToFrontAssistant.Start("OSD"); OSD.Menu.MenuItem selectedMenuItem = OSD.Menu.Menu.ShowMenu(bookmarkMenu); if (selectedMenuItem != null) { List <string> filePathsToOpen = new List <string>(); if (selectedMenuItem.text == "[All From This Category]") { List <string> filePathsInFolder = CraftSynth.BuildingBlocks.IO.FileSystem.GetFilePaths(selectedMenuItem.tag.ToString()); foreach (string filePathInFolder in filePathsInFolder) { if (filePathInFolder.EndsWith(Entities.WorkItems.Shortcuts.extension, StringComparison.InvariantCultureIgnoreCase) || filePathInFolder.EndsWith("lnk", StringComparison.InvariantCultureIgnoreCase) || filePathInFolder.EndsWith("url", StringComparison.InvariantCultureIgnoreCase) ) { filePathsToOpen.Add(filePathInFolder); } } } else { filePathsToOpen.Add(selectedMenuItem.tag.ToString()); } foreach (string filePathToOpen in filePathsToOpen) { if (filePathToOpen.EndsWith(Entities.WorkItems.Shortcuts.extension, StringComparison.OrdinalIgnoreCase)) { Entities.WorkItems.Shortcuts shortcuts = new Entities.WorkItems.Shortcuts(filePathToOpen); Logging.AddActionLog(string.Format("BookmarkManager: Opening '{0}' in Firefox ...", shortcuts.shortcutsFilePath)); MessagesHandler.Display(string.Format("Opening {0} ...", shortcuts.caption)); foreach (Shortcut shortcut in shortcuts.shortcuts) { Logging.AddActionLog(string.Format("BookmarkManager: Opening '{0}' in Firefox ...", shortcut.targetPath)); CommandsProviders.FOpener.FOpener.OpenInFirefox(shortcut.targetPath, true); } } else { MessagesHandler.Display(string.Format("Opening {0} ...", filePathToOpen)); CraftSynth.BuildingBlocks.WindowsNT.Misc.OpenFile(filePathToOpen); } } } } else // if (command.Name == "command name" && command.Postfix == "postfix [item] [item2]") //{ // MessagesHandler.Display( string.Format("Executing {0} ...", command.Name)); //} else { throw new ApplicationException(string.Format("BookmarkManager: Command not found. Command: {0} {1}", command.Name, command.Postfix)); } }