Exemplo n.º 1
0
        /// <summary>
        /// Sets if the navigation file must be present as a chapter.
        /// </summary>
        /// <param name="position"></param>
        public void SetNavigation(NavigationPosition position)
        {
            //Finds the navigation ID in the manifest
            string navId = (string)manifest
                           .Elements(opfNamespace + "item")
                           .FirstOrDefault(x => x.HasAttributes && (string)x.Attribute("properties") == "nav")
                           ?.Attribute("id");

            //The navigation must exists, otherwise throw exception
            if (navId == null)
            {
                throw new Exception("Could not find the navigation file in the manifest");
            }

            //Removes the navigation from the spine
            spine
            .Elements(opfNamespace + "itemref")
            .FirstOrDefault(x => x.HasAttributes && (string)x.Attribute("idref") == navId)
            ?.Remove();

            //If the navigation is set as FirstChapter, adds it to the spine
            if (position == NavigationPosition.FirstChapter)
            {
                spine.AddFirst(
                    new XElement(opfNamespace + "itemref",
                                 new XAttribute("idref", navId)
                                 )
                    );
            }
        }
Exemplo n.º 2
0
 public NavigationAttribute(string title, string url, int order, string iconClass, NavigationPosition position)
 {
     Title     = title;
     Position  = position;
     IconClass = iconClass;
     Order     = order;
     Url       = url;
 }
Exemplo n.º 3
0
        public static IEnumerable <NavigationItem> GetItems(Assembly asm, NavigationPosition position)
        {
            var items = from n in GetItems(asm)
                        let attr = n.Attributes.FirstOrDefault(a => a.Position == position)
                                   where n.Attributes.Any(a => a.Position == position)
                                   select new NavigationItem
            {
                Title     = attr.Title,
                IconClass = attr.IconClass,
                Url       = attr.Url,
                Order     = attr.Order
            };

            return(items.OrderBy(i => i.Order).ThenBy(i => i.Title).ToArray());
        }
Exemplo n.º 4
0
        /// <summary>
        /// Event handler to handle navigation event.
        /// </summary>
        /// <param name="sender">Sender of event.</param>
        /// <param name="eventargs">Event arguments</param>
        private void OnNavigationEvent(object sender, NavigationEventArgs eventargs)
        {
            NavigationPosition navigationPosition = eventargs.NavigationPosition;

            bool enabledState = navigationPosition != NavigationPosition.None;

            _backButton.Enabled = enabledState;
            _nextButton.Enabled = enabledState;

            if (navigationPosition == NavigationPosition.First)
            {
                _backButton.Enabled = false;
            }
            if (navigationPosition == NavigationPosition.Last)
            {
                _nextButton.Enabled = false;
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Gets current navigation poistion.
        /// </summary>
        /// <returns>Navigation position</returns>
        private NavigationPosition GetNavigationPosition()
        {
            NavigationPosition position = NavigationPosition.None;

            if (_nodes.Count > 1)
            {
                if (_nodeIndex == 0)
                {
                    position = NavigationPosition.First;
                }
                else if (_nodeIndex == _nodes.Count - 1)
                {
                    position = NavigationPosition.Last;
                }
                else
                {
                    position = NavigationPosition.Middle;
                }
            }
            return(position);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Constructor to create instance of
 /// </summary>
 /// <param name="navigationPosition">Navigation position</param>
 public NavigationEventArgs(NavigationPosition navigationPosition)
 {
     _navigationPosition = navigationPosition;
 }
Exemplo n.º 7
0
 /// <summary>
 /// Constructor to create instance of
 /// </summary>
 /// <param name="navigationPosition">Navigation position</param>
 public NavigationEventArgs(NavigationPosition navigationPosition)
 {
     _navigationPosition = navigationPosition;
 }