Class CmsJspNavElement
- java.lang.Object
-
- org.opencms.jsp.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
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Locale
m_locale
The locale for which the property should be read.protected CmsJspNavBuilder.NavContext
m_navContext
The navigation context.
-
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)
Deprecated.CmsJspNavElement(java.lang.String sitePath, java.util.Map<java.lang.String,java.lang.String> properties, int navTreeLevel)
Deprecated.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, ornull
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
of this navigation element, orCmsPropertyDefinition.PROPERTY_NAVINFO
null
if this property is not set.java.lang.String
getLocale()
Returns the value of the property
of this navigation element, orCmsPropertyDefinition.PROPERTY_LOCALE
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
of this navigation element, orCmsPropertyDefinition.PROPERTY_NAVIMAGE
null
if this property is not set.float
getNavPosition()
Returns the value of the property C_PROPERTY_NAVPOS converted to afloat
, or a value ofFloat.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 returnnull
).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, ornull
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)
Same as callinginit(String, Hashtable, -1, null)
.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()
Returnstrue
if this navigation element describes a folder,false
otherwise.boolean
isHiddenNavigationEntry()
Returns if this is a hidden navigation entry.boolean
isInNavigation()
Returnstrue
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 thegetNavPosition()
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()
-
-
-
Field Detail
-
m_locale
protected java.util.Locale m_locale
The locale for which the property should be read.
-
m_navContext
protected CmsJspNavBuilder.NavContext m_navContext
The navigation context.
-
-
Constructor Detail
-
CmsJspNavElement
public CmsJspNavElement()
Empty constructor required for every JavaBean, does nothing.Call one of the init methods after you have created an instance of the bean. Instead of using the constructor you should use the static factory methods provided by this class to create navigation beans that are properly initialized with current OpenCms context.
-
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 toinit
resource
- the resourceproperties
- will be passed toinit
-
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 toinit
resource
- the resourceproperties
- will be passed toinit
navTreeLevel
- will be passed toinit
- 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 toinit
resource
- the resourceproperties
- will be passed toinit
navTreeLevel
- will be passed toinit
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)
Deprecated.Create a new instance of the bean and calls the init method with the provided parameters.- Parameters:
sitePath
- will be passed toinit
properties
- will be passed toinit
- 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)
Deprecated.Create a new instance of the bean and calls the init method with the provided parameters.- Parameters:
sitePath
- will be passed toinit
properties
- will be passed toinit
navTreeLevel
- will be passed toinit
- 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 interfacejava.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 classjava.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, ornull
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
of this navigation element, orCmsPropertyDefinition.PROPERTY_NAVINFO
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
of this navigation element, orCmsPropertyDefinition.PROPERTY_LOCALE
null
if this property is not set.- Returns:
- the value of the property or
null
if this property is not set
-
getNavContext
public CmsJspNavBuilder.NavContext getNavContext()
Returns the navigation builder context.- Returns:
- the navigation builder context
-
getNavImage
public java.lang.String getNavImage()
Returns the value of the property
of this navigation element, orCmsPropertyDefinition.PROPERTY_NAVIMAGE
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 afloat
, or a value ofFloat.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 ofFloat.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 returnnull
).- 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
-
getResource
public CmsResource getResource()
Returns the resource.- Returns:
- the resource
-
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
-
getSubNavigation
public java.util.List<CmsJspNavElement> getSubNavigation()
Gets the sub-entries of the navigation entry.- Returns:
- the sub-entries
-
getTitle
public java.lang.String getTitle()
Returns the value of the property PROPERTY_TITLE of this navigation element, ornull
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 classjava.lang.Object
- See Also:
Object.hashCode()
-
init
public void init(java.lang.String resource, java.util.Map<java.lang.String,java.lang.String> properties)
Same as callinginit(String, Hashtable, -1, null)
.- Parameters:
resource
- the name of the resource to extract the navigation information fromproperties
- 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
orI_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 fromproperties
- the properties of the resource read from the vfsnavTreeLevel
- 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
orI_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 fromproperties
- the properties of the resource read from the vfsnavTreeLevel
- tree level of this resource, for building navigation treeslocale
- The locale for which properties should be accessed.- See Also:
CmsJspNavBuilder.getNavigationForResource()
-
isFolderLink
public boolean isFolderLink()
Returnstrue
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()
Returnstrue
if this navigation element is in the navigation,false
otherwise.A resource is considered to be in the navigation, if
- it has the property PROPERTY_NAVTEXT set
- or it has the property PROPERTY_NAVPOS set
- 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
-
setNavContext
public void setNavContext(CmsJspNavBuilder.NavContext navContext)
Sets the navigation builder context.- Parameters:
navContext
- the navigation builder context
-
setNavPosition
public void setNavPosition(float value)
Sets the value that will be returned by thegetNavPosition()
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 classjava.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
-
-