View Javadoc
1   /*
2    * Copyright (c) 2002-2014, Mairie de Paris
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or without
6    * modification, are permitted provided that the following conditions
7    * are met:
8    *
9    *  1. Redistributions of source code must retain the above copyright notice
10   *     and the following disclaimer.
11   *
12   *  2. Redistributions in binary form must reproduce the above copyright notice
13   *     and the following disclaimer in the documentation and/or other materials
14   *     provided with the distribution.
15   *
16   *  3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
17   *     contributors may be used to endorse or promote products derived from
18   *     this software without specific prior written permission.
19   *
20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30   * POSSIBILITY OF SUCH DAMAGE.
31   *
32   * License 1.0
33   */
34  package fr.paris.lutece.portal.web.xpages;
35  
36  import fr.paris.lutece.util.ReferenceItem;
37  import fr.paris.lutece.util.ReferenceList;
38  import fr.paris.lutece.util.xml.XmlUtil;
39  
40  
41  /**
42   * This class represents XPage object
43   *
44   */
45  public class XPage
46  {
47      private static final String TAG_PAGE_LINK = "page_link";
48      private static final String TAG_PAGE_NAME = "page-name";
49      private static final String TAG_PAGE_URL = "page-url";
50      private String _strContent;
51      private String _strTitle;
52      private String _strKeyword;
53      private String _strPathLabel;
54      private String _strXmlExtendedPathLabel;
55      private boolean _bStandalone;
56  
57      /**
58       *
59       * @return The content of the page
60       */
61      public String getContent(  )
62      {
63          return _strContent;
64      }
65  
66      /**
67       *
68       * @return The keyword of the page
69       */
70      public String getKeyword(  )
71      {
72          return _strKeyword;
73      }
74  
75      /**
76       *
77       * @return The title of the page
78       */
79      public String getTitle(  )
80      {
81          return _strTitle;
82      }
83  
84      /**
85       *
86       * @return The path label of the page
87       */
88      public String getPathLabel(  )
89      {
90          return _strPathLabel;
91      }
92  
93      /**
94       *
95       * @param strContent The content of the page
96       */
97      public void setContent( String strContent )
98      {
99          _strContent = strContent;
100     }
101 
102     /**
103      *
104      * @param strKeyword The keyword of the page
105      */
106     public void setKeyword( String strKeyword )
107     {
108         _strKeyword = strKeyword;
109     }
110 
111     /**
112      *
113      * @param strTitle The title of the page
114      */
115     public void setTitle( String strTitle )
116     {
117         _strTitle = strTitle;
118     }
119 
120     /**
121      *
122      * @param strPathLabel The path label of the page
123      */
124     public void setPathLabel( String strPathLabel )
125     {
126         _strPathLabel = strPathLabel;
127     }
128 
129     /**
130      * Get the extended path label, which is given as a Xml code
131      * @return Returns the Extended Path Label
132      */
133     public String getXmlExtendedPathLabel(  )
134     {
135         return _strXmlExtendedPathLabel;
136     }
137 
138     /**
139      * Set the Extended Path Label from a xml string
140      * @param strXmlExtendedPathLabel the Extended Path Label to set
141      */
142     public void setXmlExtendedPathLabel( String strXmlExtendedPathLabel )
143     {
144         _strXmlExtendedPathLabel = strXmlExtendedPathLabel;
145     }
146 
147     /**
148      * Build a path from a referencelist. Each item of the list is an element of the path
149      * The item's code is the label, the item's name is used for the URL of the link.
150      * @param listPathItem The items of the path.
151      */
152     public void setExtendedPathLabel( ReferenceList listPathItem )
153     {
154         StringBuffer sbXml = new StringBuffer(  );
155 
156         for ( ReferenceItem item : listPathItem )
157         {
158             XmlUtil.beginElement( sbXml, TAG_PAGE_LINK );
159             XmlUtil.addElement( sbXml, TAG_PAGE_NAME, item.getCode(  ) );
160             XmlUtil.addElement( sbXml, TAG_PAGE_URL, item.getName(  ) );
161             XmlUtil.endElement( sbXml, TAG_PAGE_LINK );
162         }
163 
164         _strXmlExtendedPathLabel = sbXml.toString(  );
165     }
166 
167     /**
168      * Indicates if the content is standalone and should not be encapsulated in other
169      * content, such as portal headers and footers
170      * @return <code>true</code> is the content is standalone
171      * @since 5.1.0
172      */
173     public boolean isStandalone(  )
174     {
175         return _bStandalone;
176     }
177 
178     /**
179      * Indicates if the content is standalone and should not be encapsulated in other
180      * content, such as portal headers and footers
181      * @param standalone <code>true</code> is the content is standalone
182      * @since 5.1.0
183      */
184     public void setStandalone( boolean standalone )
185     {
186         _bStandalone = standalone;
187     }
188 }