using System; using PDFPatcher.Processor; namespace PDFPatcher.Functions.Editor { sealed class BookmarkLevelCommand : IEditorCommand { readonly bool _levelUp; public BookmarkLevelCommand(bool levelUp) { _levelUp = levelUp; } public void Process(Controller controller, params string[] parameters) { BookmarkLevel(controller, _levelUp); } internal void BookmarkLevel(Controller controller, bool levelUp) { var b = controller.View.Bookmark; var si = b.GetSelectedElements(true); b.BeginUpdate(); var ld = controller.ProcessBookmarks(false, false, levelUp ? new LevelUpProcessor() as IPdfInfoXmlProcessor : new LevelDownProcessor()); if (ld != null) { foreach (var item in ld) { b.Expand(item); } } b.RefreshObjects(si); b.SelectedObjects = si; b.EndUpdate(); } } }