Files
PDFPatcher/App/Processor/InfoDocProcessor/CollapseBookmarkProcessor.cs
T
2022-01-06 09:08:16 +08:00

44 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using PDFPatcher.Model;
namespace PDFPatcher.Processor
{
sealed class CollapseBookmarkProcessor : IInfoDocProcessor
{
public BookmarkStatus BookmarkStatus { get; set; }
public CollapseBookmarkProcessor() {
}
#region IBookmarkProcessor 成员
public bool Process(System.Xml.XmlElement bookmark) {
switch (BookmarkStatus) {
case BookmarkStatus.AsIs:
return false;
case BookmarkStatus.CollapseAll:
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.False);
return true;
case BookmarkStatus.ExpandAll:
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.True);
return true;
case BookmarkStatus.ExpandTop:
var p = bookmark.ParentNode;
if (p != null && p.Name == Constants.DocumentBookmark) {
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.True);
}
else {
bookmark.SetAttribute(Constants.BookmarkAttributes.Open, Constants.Boolean.False);
}
return true;
default:
return false;
}
}
#endregion
}
}