Class CmsJspNavElement

  • All Implemented Interfaces:
    java.lang.Comparable<CmsJspNavElement>

    public class CmsJspNavElement
    extends java.lang.Object
    implements java.lang.Comparable<CmsJspNavElement>
    Bean to collect navigation information from a resource in the OpenCms VFS.

    Each navigation element contains a number of information about a VFS resource, obtained either from the resources properties or attributes. You can use this information to generate a HTML navigation for files in the VFS in your template.

    Note: this class has a natural ordering that is inconsistent with equals.

    Since:
    6.0.0
    See Also:
    CmsJspNavBuilder
    • Constructor Summary

      Constructors 
      Constructor Description
      CmsJspNavElement()
      Empty constructor required for every JavaBean, does nothing.
      CmsJspNavElement​(java.lang.String sitePath, java.util.Map<java.lang.String,​java.lang.String> properties)
      CmsJspNavElement​(java.lang.String sitePath, java.util.Map<java.lang.String,​java.lang.String> properties, int navTreeLevel)
      CmsJspNavElement​(java.lang.String sitePath, CmsResource resource, java.util.Map<java.lang.String,​java.lang.String> properties)
      Create a new instance of the bean and calls the init method with the provided parameters.
      CmsJspNavElement​(java.lang.String sitePath, CmsResource resource, java.util.Map<java.lang.String,​java.lang.String> properties, int navTreeLevel)
      Create a new instance of the bean and calls the init method with the provided parameters.
      CmsJspNavElement​(java.lang.String sitePath, CmsResource resource, java.util.Map<java.lang.String,​java.lang.String> properties, int navTreeLevel, java.util.Locale locale)
      Create a new instance of the bean and calls the init method with the provided parameters.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compareTo​(CmsJspNavElement obj)
      Note: this class has a natural ordering that is inconsistent with equals.
      boolean equals​(java.lang.Object obj)
      Note: this class has a natural ordering that is inconsistent with equals.
      java.lang.String getDescription()
      Returns the value of the property PROPERTY_DESCRIPTION of this navigation element, or null if this property is not set.
      java.lang.String getFileName()
      Returns the filename of the navigation element, i.e.
      java.lang.String getInfo()
      Returns the value of the property CmsPropertyDefinition.PROPERTY_NAVINFO of this navigation element, or null if this property is not set.
      java.lang.String getLocale()
      Returns the value of the property CmsPropertyDefinition.PROPERTY_LOCALE of this navigation element, or null if this property is not set.
      CmsJspNavBuilder.NavContext getNavContext()
      Returns the navigation builder context.
      java.lang.String getNavImage()
      Returns the value of the property CmsPropertyDefinition.PROPERTY_NAVIMAGE of this navigation element, or null if this property is not set.
      float getNavPosition()
      Returns the value of the property C_PROPERTY_NAVPOS converted to a float, or a value of Float.MAX_VALUE if the navigation position property is not set (or not a valid number) for this resource.
      java.lang.String getNavText()
      Returns the value of the property PROPERTY_NAVTEXT of this navigation element, or a warning message if this property is not set (this method will never return null).
      int getNavTreeLevel()
      Returns the navigation tree level of this resource.
      java.lang.String getParentFolderName()
      Returns the name of the parent folder of the resource of this navigation element.
      java.util.Map<java.lang.String,​java.lang.String> getProperties()
      Returns the original map of all file properties of the resource that the navigation element belongs to.
      java.lang.String getProperty​(java.lang.String key)
      Returns the value of the selected property from this navigation element.
      CmsResource getResource()
      Returns the resource.
      java.lang.String getResourceName()
      Returns the resource name this navigation element was initialized with.
      protected java.lang.String getSitePath()
      Returns the site path of the target resource.
      java.util.List<CmsJspNavElement> getSubNavigation()
      Gets the sub-entries of the navigation entry.
      java.lang.String getTitle()
      Returns the value of the property PROPERTY_TITLE of this navigation element, or null if this property is not set.
      boolean hasChangedNavPosition()
      Returns if the navigation position has been changed since initialization.
      int hashCode()
      Note: this class has a natural ordering that is inconsistent with equals.
      void init​(java.lang.String resource, java.util.Map<java.lang.String,​java.lang.String> properties)
      void init​(java.lang.String resource, java.util.Map<java.lang.String,​java.lang.String> properties, int navTreeLevel)
      Initialized the member variables of this bean with the values provided.
      void init​(java.lang.String resource, java.util.Map<java.lang.String,​java.lang.String> properties, int navTreeLevel, java.util.Locale locale)
      Initialized the member variables of this bean with the values provided.
      boolean isFolderLink()
      Returns true if this navigation element describes a folder, false otherwise.
      boolean isHiddenNavigationEntry()
      Returns if this is a hidden navigation entry.
      boolean isInNavigation()
      Returns true if this navigation element is in the navigation, false otherwise.
      boolean isNavigationLevel()
      Returns if the navigation element represents a navigation level, linking to it's first sub-element.
      void setNavContext​(CmsJspNavBuilder.NavContext navContext)
      Sets the navigation builder context.
      void setNavPosition​(float value)
      Sets the value that will be returned by the getNavPosition() method of this class.
      void setNavText​(java.lang.String text)
      Sets the navigation text.
      void setNavTreeLevel​(int navTreeLevel)
      Sets the navigation tree level.
      protected void setResource​(CmsResource resource)
      Sets the resource.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • CmsJspNavElement

        public CmsJspNavElement​(java.lang.String sitePath,
                                CmsResource resource,
                                java.util.Map<java.lang.String,​java.lang.String> properties)
        Create a new instance of the bean and calls the init method with the provided parameters.

        Parameters:
        sitePath - will be passed to init
        resource - the resource
        properties - will be passed to init
      • CmsJspNavElement

        public CmsJspNavElement​(java.lang.String sitePath,
                                CmsResource resource,
                                java.util.Map<java.lang.String,​java.lang.String> properties,
                                int navTreeLevel)
        Create a new instance of the bean and calls the init method with the provided parameters.

        Parameters:
        sitePath - will be passed to init
        resource - the resource
        properties - will be passed to init
        navTreeLevel - will be passed to init
        See Also:
        init(String, Map, int, Locale)
      • CmsJspNavElement

        public CmsJspNavElement​(java.lang.String sitePath,
                                CmsResource resource,
                                java.util.Map<java.lang.String,​java.lang.String> properties,
                                int navTreeLevel,
                                java.util.Locale locale)
        Create a new instance of the bean and calls the init method with the provided parameters.

        Parameters:
        sitePath - will be passed to init
        resource - the resource
        properties - will be passed to init
        navTreeLevel - will be passed to init
        locale - the locale for which properties should be accessed.
        See Also:
        init(String, Map, int, Locale)
      • CmsJspNavElement

        @Deprecated
        public CmsJspNavElement​(java.lang.String sitePath,
                                java.util.Map<java.lang.String,​java.lang.String> properties)
        Create a new instance of the bean and calls the init method with the provided parameters.

        Parameters:
        sitePath - will be passed to init
        properties - will be passed to init
        See Also:
        init(String, Map)
      • CmsJspNavElement

        @Deprecated
        public CmsJspNavElement​(java.lang.String sitePath,
                                java.util.Map<java.lang.String,​java.lang.String> properties,
                                int navTreeLevel)
        Create a new instance of the bean and calls the init method with the provided parameters.

        Parameters:
        sitePath - will be passed to init
        properties - will be passed to init
        navTreeLevel - will be passed to init
        See Also:
        init(String, Map, int, Locale)
    • Method Detail

      • compareTo

        public int compareTo​(CmsJspNavElement obj)
        Note: this class has a natural ordering that is inconsistent with equals.

        Specified by:
        compareTo in interface java.lang.Comparable<CmsJspNavElement>
        See Also:
        Comparable.compareTo(Object)
      • equals

        public boolean equals​(java.lang.Object obj)
        Note: this class has a natural ordering that is inconsistent with equals.

        Overrides:
        equals in class java.lang.Object
        See Also:
        Object.equals(Object)
      • getDescription

        public java.lang.String getDescription()
        Returns the value of the property PROPERTY_DESCRIPTION of this navigation element, or null if this property is not set.

        Returns:
        the value of the property PROPERTY_DESCRIPTION of this navigation element or null if this property is not set
      • getFileName

        public java.lang.String getFileName()
        Returns the filename of the navigation element, i.e. the name of the navigation resource without any path information.

        Returns:
        the filename of the navigation element, i.e. the name of the navigation resource without any path information
      • getInfo

        public java.lang.String getInfo()
        Returns the value of the property CmsPropertyDefinition.PROPERTY_NAVINFO of this navigation element, or null if this property is not set.

        Returns:
        the value of the property or null if this property is not set
      • getLocale

        public java.lang.String getLocale()
        Returns the value of the property CmsPropertyDefinition.PROPERTY_LOCALE of this navigation element, or null if this property is not set.

        Returns:
        the value of the property or null if this property is not set
      • getNavImage

        public java.lang.String getNavImage()
        Returns the value of the property CmsPropertyDefinition.PROPERTY_NAVIMAGE of this navigation element, or null if this property is not set.

        Returns:
        the value of the property or null if this property is not set
      • getNavPosition

        public float getNavPosition()
        Returns the value of the property C_PROPERTY_NAVPOS converted to a float, or a value of Float.MAX_VALUE if the navigation position property is not set (or not a valid number) for this resource.

        Returns:
        float the value of the property C_PROPERTY_NAVPOS converted to a float, or a value of Float.MAX_VALUE if the navigation position property is not set (or not a valid number) for this resource
      • getNavText

        public java.lang.String getNavText()
        Returns the value of the property PROPERTY_NAVTEXT of this navigation element, or a warning message if this property is not set (this method will never return null).

        Returns:
        the value of the property PROPERTY_NAVTEXT of this navigation element, or a warning message if this property is not set (this method will never return null)
      • getNavTreeLevel

        public int getNavTreeLevel()
        Returns the navigation tree level of this resource.

        Returns:
        the navigation tree level of this resource
      • getParentFolderName

        public java.lang.String getParentFolderName()
        Returns the name of the parent folder of the resource of this navigation element.

        Returns:
        the name of the parent folder of the resource of this navigation element
      • getProperties

        public java.util.Map<java.lang.String,​java.lang.String> getProperties()
        Returns the original map of all file properties of the resource that the navigation element belongs to.

        Please note that the original reference is returned, so be careful when making changes to the map.

        Returns:
        the original map of all file properties of the resource that the navigation element belongs to
      • getProperty

        public java.lang.String getProperty​(java.lang.String key)
        Returns the value of the selected property from this navigation element.

        The navigation element contains a hash of all file properties of the resource that the navigation element belongs to.

        Parameters:
        key - the property name to look up
        Returns:
        the value of the selected property
      • getResourceName

        public java.lang.String getResourceName()
        Returns the resource name this navigation element was initialized with.

        Returns:
        the resource name this navigation element was initialized with
      • getTitle

        public java.lang.String getTitle()
        Returns the value of the property PROPERTY_TITLE of this navigation element, or null if this property is not set.

        Returns:
        the value of the property PROPERTY_TITLE of this navigation element or null if this property is not set
      • hasChangedNavPosition

        public boolean hasChangedNavPosition()
        Returns if the navigation position has been changed since initialization.

        Returns:
        true if the navigation position has been changed since initialization
      • hashCode

        public int hashCode()
        Note: this class has a natural ordering that is inconsistent with equals.

        Overrides:
        hashCode in class java.lang.Object
        See Also:
        Object.hashCode()
      • init

        public void init​(java.lang.String resource,
                         java.util.Map<java.lang.String,​java.lang.String> properties)
        Parameters:
        resource - the name of the resource to extract the navigation information from
        properties - the properties of the resource read from the vfs
      • init

        public void init​(java.lang.String resource,
                         java.util.Map<java.lang.String,​java.lang.String> properties,
                         int navTreeLevel)
        Initialized the member variables of this bean with the values provided.

        A resource will be in the navigation if at least one of the two properties I_CmsConstants.PROPERTY_NAVTEXT or I_CmsConstants.PROPERTY_NAVPOS is set. Otherwise it will be ignored.

        This bean does provides static methods to create a new instance from the context of a current CmsObject. Call these static methods in order to get a properly initialized bean.

        Parameters:
        resource - the name of the resource to extract the navigation information from
        properties - the properties of the resource read from the vfs
        navTreeLevel - tree level of this resource, for building navigation trees
        See Also:
        CmsJspNavBuilder.getNavigationForResource()
      • init

        public void init​(java.lang.String resource,
                         java.util.Map<java.lang.String,​java.lang.String> properties,
                         int navTreeLevel,
                         java.util.Locale locale)
        Initialized the member variables of this bean with the values provided.

        A resource will be in the navigation if at least one of the two properties I_CmsConstants.PROPERTY_NAVTEXT or I_CmsConstants.PROPERTY_NAVPOS is set. Otherwise it will be ignored.

        This bean does provides static methods to create a new instance from the context of a current CmsObject. Call these static methods in order to get a properly initialized bean.

        Parameters:
        resource - the name of the resource to extract the navigation information from
        properties - the properties of the resource read from the vfs
        navTreeLevel - tree level of this resource, for building navigation trees
        locale - The locale for which properties should be accessed.
        See Also:
        CmsJspNavBuilder.getNavigationForResource()
      • isFolderLink

        public boolean isFolderLink()
        Returns true if this navigation element describes a folder, false otherwise.

        Returns:
        true if this navigation element describes a folder, false otherwise.

      • isHiddenNavigationEntry

        public boolean isHiddenNavigationEntry()
        Returns if this is a hidden navigation entry.

        Returns:
        true if this is a hidden navigation entry
      • isInNavigation

        public boolean isInNavigation()
        Returns true if this navigation element is in the navigation, false otherwise.

        A resource is considered to be in the navigation, if

        1. it has the property PROPERTY_NAVTEXT set
        2. or it has the property PROPERTY_NAVPOS set
        3. and it is not a temporary file as defined by CmsResource.isTemporaryFileName(String).
        Returns:
        true if this navigation element is in the navigation, false otherwise
      • isNavigationLevel

        public boolean isNavigationLevel()
        Returns if the navigation element represents a navigation level, linking to it's first sub-element.

        Returns:
        true if the navigation element represents a navigation level
      • setNavPosition

        public void setNavPosition​(float value)
        Sets the value that will be returned by the getNavPosition() method of this class.

        Parameters:
        value - the value to set
      • setNavText

        public void setNavText​(java.lang.String text)
        Sets the navigation text.

        Parameters:
        text - the text to set
      • setNavTreeLevel

        public void setNavTreeLevel​(int navTreeLevel)
        Sets the navigation tree level.

        Parameters:
        navTreeLevel - the navigation tree level to set
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        See Also:
        Object.toString()
      • getSitePath

        protected java.lang.String getSitePath()
        Returns the site path of the target resource.

        This may not be the same as the navigation resource.

        Returns:
        the target resource site path
      • setResource

        protected void setResource​(CmsResource resource)
        Sets the resource.

        Parameters:
        resource - the resource to set