1 14 41 42 package org.jahia.data.viewhelper.sitemap; 43 44 import java.util.ArrayList ; 45 import java.util.List ; 46 47 import org.jahia.params.ParamBean; 48 import org.jahia.services.pages.ContentPage; 49 import org.jahia.services.usermanager.JahiaUser; 50 51 63 public class TreeSiteMapViewHelper extends SiteMapViewHelper { 64 65 77 public TreeSiteMapViewHelper(JahiaUser user, ContentPage startPage, 78 int pageInfosFlag, String languageCode, 79 int defaultMaxLevel) { 80 super(user, startPage, pageInfosFlag, languageCode, defaultMaxLevel); 81 _jahiaPageSiteMap = super.getJahiaPageSiteMap(); 82 } 83 84 97 public TreeSiteMapViewHelper(JahiaUser user, ContentPage startPage, 98 int pageInfosFlag, String languageCode, 99 int defaultMaxLevel, PagesFilter pagesFilter, ParamBean jParams) { 100 super(user, startPage, pageInfosFlag, languageCode, defaultMaxLevel, pagesFilter, jParams); 101 _jahiaPageSiteMap = super.getJahiaPageSiteMap(); 102 } 103 104 116 public TreeSiteMapViewHelper(JahiaUser user, ContentPage startPage, 117 int pageInfosFlag, String languageCode, 118 int defaultMaxLevel, boolean directPagesOnly) { 119 super(user, startPage, pageInfosFlag, languageCode, defaultMaxLevel, directPagesOnly); 120 _jahiaPageSiteMap = super.getJahiaPageSiteMap(); 121 122 } 123 124 137 public TreeSiteMapViewHelper(JahiaUser user, ContentPage startPage, 138 int pageInfosFlag, String languageCode, 139 int defaultMaxLevel, boolean directPagesOnly, 140 PagesFilter pagesFilter, ParamBean jParams) { 141 super(user, startPage, pageInfosFlag, languageCode, defaultMaxLevel, directPagesOnly, pagesFilter, jParams); 142 _jahiaPageSiteMap = super.getJahiaPageSiteMap(); 143 144 } 145 146 public TreeSiteMapViewHelper(JahiaUser user, List startPages, 147 int pageInfosFlag, String languageCode, int defaultMaxLevel, 148 boolean directPageOnly, PagesFilter pagesFilter, ParamBean jParams) { 149 super(user, startPages, pageInfosFlag, languageCode, defaultMaxLevel, 150 directPageOnly, pagesFilter, jParams); 151 _jahiaPageSiteMap = super.getJahiaPageSiteMap(); 152 153 } 154 155 164 public ContentPage getContentPage(int index) { 165 PageSiteMap pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(index); 166 return pageSiteMap.isDisplayable() ? lookupContentPage(pageSiteMap.getPageID()) : null; 167 } 168 169 175 public int getPageID(int index) { 176 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).getPageID(); 177 } 178 179 185 public int getPageIndex(int pageID){ 186 PageSiteMap pageSiteMap = null; 187 for ( int i=0 ; i<_jahiaPageSiteMap.size() ; i++ ){ 188 pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(i); 189 if ( pageSiteMap.getPageID() == pageID ){ 190 return i; 191 } 192 } 193 return -1; 194 } 195 196 205 public int getPageLevel(int index) { 206 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).getPageLevel(); 207 } 208 209 215 public boolean hasChild(int index) { 216 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).hasChild(); 217 } 218 219 225 public int getParentPageID(int index) { 226 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).getParentPageID(); 227 } 228 229 235 public boolean isLastSister(int index) { 236 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).isLastSister(); 237 } 238 239 244 public int size() { 245 return _jahiaPageSiteMap.size(); 246 } 247 248 254 public boolean isExpanded(int index) { 255 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).isExpanded(); 256 } 257 258 263 public void collapsePagesSubTree(int index) { 264 PageSiteMap pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(index++); 265 pageSiteMap.setExpanded(false); 266 int pageLevel = pageSiteMap.getPageLevel(); 267 for (int i = index; i < _jahiaPageSiteMap.size(); i++) { 268 pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(i); 269 if (pageSiteMap.getPageLevel() > pageLevel) { 270 pageSiteMap.setDisplayable(false); 271 } else { 272 break; 273 } 274 } 275 } 276 277 284 public void showInformation(int index) { 285 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowInformation(true); 286 } 287 288 public void hideInformation(int index) { 289 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowInformation(false); 290 } 291 292 298 public boolean shouldShowInformation(int index) { 299 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).isShowInformation(); 300 } 301 302 307 public void showWarnings(int index) { 308 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowWarnings(true); 309 } 310 311 public void hideWarnings(int index) { 312 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowWarnings(false); 313 } 314 315 319 public boolean shouldShowWarnings(int index) { 320 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).isShowWarnings(); 321 } 322 323 328 public void showErrors(int index) { 329 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowErrors(true); 330 } 331 332 public void hideErrors(int index) { 333 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowErrors(false); 334 } 335 336 340 public boolean shouldShowErrors(int index) { 341 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).isShowErrors(); 342 } 343 344 349 public void showEvents(int index) { 350 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowEvents(true); 351 } 352 353 public void hideEvents(int index) { 354 ((PageSiteMap)_jahiaPageSiteMap.get(index)).setShowEvents(false); 355 } 356 357 361 public boolean shouldShowEvents(int index) { 362 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).isShowEvents(); 363 } 364 365 370 public void expandToPage(int pageID) { 371 372 int pageIndex = getPageIndex(pageID); 373 if ( pageIndex != -1 ){ 374 expandPagesSubTree(pageIndex); 375 int parentID = this.getParentPageID(pageIndex); 376 if ( parentID != 0 ){ 377 expandToPage(parentID); 378 } 379 } 380 } 381 382 387 public void expandPagesSubTree(int index) { 388 389 PageSiteMap pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(index++); 390 if (!pageSiteMap.hasChild()) return; 391 pageSiteMap.setExpanded(true); 392 int pageLevel = pageSiteMap.getPageLevel(); 393 int actualPageLevel = pageSiteMap.getPageLevel() + 1; 394 for (int i = index; i < _jahiaPageSiteMap.size(); i++) { 395 pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(i); 396 if (actualPageLevel == pageSiteMap.getPageLevel()) { 397 pageSiteMap.setDisplayable(true); 398 if (pageSiteMap.isExpanded()) { 399 actualPageLevel++; 400 } 401 } else if (actualPageLevel > pageSiteMap.getPageLevel()) { 402 actualPageLevel = pageSiteMap.getPageLevel() + 1; 403 pageSiteMap.setDisplayable(true); 404 } 405 if (pageLevel >= pageSiteMap.getPageLevel()) break; 406 } 407 } 408 409 414 public void expandAllPagesSubTree(int index) { 415 PageSiteMap pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(index++); 416 pageSiteMap.setExpanded(true); 417 int pageLevel = pageSiteMap.getPageLevel(); 418 for (int i = index; i < _jahiaPageSiteMap.size(); i++) { 419 pageSiteMap = (PageSiteMap)_jahiaPageSiteMap.get(i); 420 if (pageLevel >= pageSiteMap.getPageLevel()) break; 421 pageSiteMap.setDisplayable(true); 422 if (pageSiteMap.hasChild()) { 423 pageSiteMap.setExpanded(true); 424 } 425 } 426 } 427 428 434 public String getPageTitle(int index, String languageCode) { 435 return ((PageSiteMap)_jahiaPageSiteMap.get(index)).getPageTitle(languageCode); 436 } 437 438 private ArrayList _jahiaPageSiteMap = null; 439 440 private static org.apache.log4j.Logger logger = 441 org.apache.log4j.Logger.getLogger(SiteMapViewHelper.class); 442 443 } 444 | Popular Tags |