Class CMSNavigationManager

java.lang.Object
io.goobi.viewer.model.cms.CMSNavigationManager
All Implemented Interfaces:
Serializable

public class CMSNavigationManager extends Object implements Serializable
Manages loading, persisting, and reordering of CMS navigation menu items.
See Also:
  • Constructor Details

    • CMSNavigationManager

      public CMSNavigationManager(String associatedTheme)
      Creates a new CMSNavigationManager instance.
      Parameters:
      associatedTheme - theme name whose navigation items are managed.
  • Method Details

    • loadItems

      public final void loadItems() throws DAOException
      loadItems.
      Throws:
      DAOException - if any.
    • addCMSPageItems

      public void addCMSPageItems() throws DAOException
      addCMSPageItems.
      Throws:
      DAOException - if any.
    • addAvailableItem

      public void addAvailableItem(SelectableNavigationItem item)
      addAvailableItem.
      Parameters:
      item - navigation item to add if not already present.
    • getAvailableItems

      public List<SelectableNavigationItem> getAvailableItems()
      Getter for the field availableItems.
      Returns:
      list of all items selectable for the navigation menu.
    • addSelectedItemsToMenu

      public void addSelectedItemsToMenu()
      Add all items from availableItems to visibleItems for which SelectableNavigationItem.isSelected() is true. Afterwards sets SelectableNavigationItem.isSelected() to fals for all availableItems
    • loadVisibleItems

      public final List<CMSNavigationItem> loadVisibleItems() throws DAOException
      loadVisibleItems.
      Returns:
      the sublist of available menu items matching the navigationMenuItem-list from the database (in label and url)
      Throws:
      DAOException - if any.
    • loadItemsFromDatabase

      public List<CMSNavigationItem> loadItemsFromDatabase() throws DAOException
      loadItemsFromDatabase.
      Returns:
      list of top-level navigation items for the associated theme.
      Throws:
      DAOException - if any.
    • getVisibleItems

      public List<CMSNavigationItem> getVisibleItems()
      Getter for the field visibleItems.
      Returns:
      ordered list of navigation items currently in the menu.
    • setVisibleItems

      public void setVisibleItems(List<CMSNavigationItem> items)
      Adds the given item, along with all their descendants to the visible item list.
      Parameters:
      items - navigation items (and their descendants) to set as visible.
    • saveVisibleItems

      public void saveVisibleItems(String theme) throws DAOException
      Replaces the complete navigation-item database table with the elements of 'visibleItems'.
      Parameters:
      theme - theme name whose navigation table is replaced.
      Throws:
      DAOException - if any.
    • addVisibleItem

      public void addVisibleItem(CMSNavigationItem navigationItem)
      addVisibleItem.
      Parameters:
      navigationItem - item to append to the visible navigation list.
    • reload

      public void reload() throws DAOException
      reload.
      Throws:
      DAOException - if any.
    • getItem

      public Optional<CMSNavigationItem> getItem(String id)
      getItem.
      Parameters:
      id - the item's CMSNavigationItem.getSortingListId()
      Returns:
      The first matching item from all visible items as optional. Empty optional if no matching item was found
    • getAssociatedTheme

      public String getAssociatedTheme()
      Getter for the field associatedTheme.
      Returns:
      the theme name whose navigation items are managed by this instance