Package org.meshcms.core

Examples of org.meshcms.core.SiteInfo


    this.style = style;
  }

  public void writeTag() throws IOException {
    SiteMap siteMap = webSite.getSiteMap();
    SiteInfo siteInfo = webSite.getSiteInfo();
    Path rootPath = (path == null) ? siteInfo.getThemeRoot(pagePath) : new Path(path);
    Path pathInMenu = webSite.getSiteMap().getPathInMenu(pagePath);
    int baseLevel = rootPath.getElementCount() + 1;
    int spc = Utils.parseInt(space, 8);
    SiteMapIterator iter = new SiteMapIterator(webSite, rootPath);
    iter.setSkipHiddenSubPages(allowHiding);
    Writer outWriter = getOut();

    while (iter.hasNext()) {
      PageInfo current = (PageInfo) iter.next();
      Path currentPath = current.getPath();
      Path parentPath = currentPath.getParent();

      if (parentPath.isRelative() || pathInMenu.isContainedIn(parentPath)) {
        if (Utils.isTrue(expand) ||
            pathInMenu.isContainedIn(currentPath) ||
            currentPath.getElementCount() == baseLevel ||
            currentPath.getElementCount() >= pathInMenu.getElementCount()) {
          outWriter.write("<div style=\"padding-left: " +
            (spc * Math.max(current.getLevel() - baseLevel, 0)) + "px;\">");

          if (style != null) {
            outWriter.write("<div class=\"" + style + "\">");
          }

          outWriter.write(bullet + "&nbsp;");

          if (!isEdit && current.getPath().equals(pathInMenu)) {
            outWriter.write(siteInfo.getPageTitle(current));
          } else {
            outWriter.write("<a href=\"" + webSite.getLink(current, pageDirPath) +
              "\">" + siteInfo.getPageTitle(current) + "</a>");
          }

          if (style != null) {
            outWriter.write("</div>");
          }
View Full Code Here


          webSite.getLink(sp.add("menu." + menuType + "/script.js"), pageDirPath) +
          "' type='text/javascript'></script>\n");
      outWriter.write("<link type='text/css' href='" +
          WebUtils.getThemeFolderPath(request, pageDirPath) + "/alib.css' rel='stylesheet' />\n");
    } else {
      SiteInfo siteInfo = webSite.getSiteInfo();
      Path rootPath = (path == null) ? siteInfo.getThemeRoot(pagePath) : new Path(path);
      Path pathInMenu = webSite.getSiteMap().getPathInMenu(pagePath);
      int baseLevel = rootPath.getElementCount() + 1;
      int lastLevel = rootPath.getElementCount();
      SiteMapIterator iter = new SiteMapIterator(webSite, rootPath);
      iter.setSkipHiddenSubPages(Utils.isTrue(allowHiding));
      boolean liUsed = false;
      boolean firstUl = true;

      while (iter.hasNext()) {
        PageInfo currentPageInfo = (PageInfo) iter.next();
        Path currentPath = currentPageInfo.getPath();
        int level = Math.max(baseLevel, currentPageInfo.getLevel());

        for (int i = lastLevel; i < level; i++) {
          if (firstUl) {
            writeIndented(outWriter, "<ul class=\"" +
                (horizontal ? "hmenu" : "vmenu") + "\">", i);
            firstUl = false;
          } else {
            writeIndented(outWriter, "<ul>", i);
          }

          writeIndented(outWriter, "<li>", i + 1);
          liUsed = false;
        }

        for (int i = lastLevel - 1; i >= level; i--) {
          if (liUsed) {
            outWriter.write("</li>");
            liUsed = false;
          } else {
            writeIndented(outWriter, "</li>", i + 1);
          }

          writeIndented(outWriter, "</ul>", i);
        }

        if (liUsed) {
          outWriter.write("</li>");
          writeIndented(outWriter, "<li>", level);
        }

        for ( int i = lastLevel - 1; i >= level; i--) {
            writeIndented(outWriter, "</li>", i);
            writeIndented(outWriter, "<li>", i);
        }

        if ( ! Utils.isNullOrEmpty(currentPathStyle)
                        && ( currentPageInfo.getLevel() >= baseLevel
                               && pathInMenu.isContainedIn(currentPath)
                     || currentPageInfo.getPath().equals(pathInMenu)
                   ) ) {
          outWriter.write("<a href=\"" + webSite.getLink(currentPageInfo, pageDirPath) +
            "\" class='" + currentPathStyle + "'>" +
            siteInfo.getPageTitle(currentPageInfo) + "</a>");
        } else {
          outWriter.write("<a href=\"" + webSite.getLink(currentPageInfo, pageDirPath) +"\">" +
            siteInfo.getPageTitle(currentPageInfo) + "</a>");
        }

        liUsed = true;
        lastLevel = level;
      }
View Full Code Here

   
    if (artisteer) {
      currentPathStyle = currentStyle = "active";
    }
   
    SiteInfo siteInfo = webSite.getSiteInfo();
    Path rootPath = siteInfo.getThemeRoot(pagePath);
   
    if (path != null) {
      if (path.equals("current")) {
        rootPath = pageDirPath;
      } else if (path.equals("parent")) {
        Path parent = pageDirPath.getParent();
       
        if (parent.isContainedIn(rootPath)) {
          rootPath = parent;
        }
      } else if (path.equals("root")) {
        rootPath = Path.ROOT;
      } else {
        rootPath = new Path(path);
      }
    }
   
    Path pathInMenu = webSite.getSiteMap().getPathInMenu(pagePath);
    int baseLevel = rootPath.getElementCount() + 1;
    Writer outWriter = getOut();
    int lastLevel = rootPath.getElementCount();
    SiteMapIterator iter = new SiteMapIterator(webSite, rootPath);
    iter.setSkipHiddenSubPages(Utils.isTrue(allowHiding));
    boolean styleNotApplied = !Utils.isNullOrEmpty(style);
    int showLastLevel = -1;
   
    while (iter.hasNext()) {
      PageInfo currentPageInfo = (PageInfo) iter.next();
      Path currentPath = currentPageInfo.getPath();
      int level = Math.max(baseLevel, currentPageInfo.getLevel());
     
      if (currentPageInfo.getLevel() <= showLastLevel) {
        showLastLevel = -1;
      }
     
      if (siteInfo.getHideSubmenu(currentPath) && showLastLevel == -1) {
        showLastLevel = currentPageInfo.getLevel();
      }
     
      boolean add = false;
     
      if (itemsAll) {
        add = true;
      } else {
        Path parentPath = currentPath.getParent();
       
        if (parentPath.isRelative() || pathInMenu.isContainedIn(parentPath)) {
          if (itemsOnPath && pathInMenu.isContainedIn(currentPath)) {
            add = true;
          } else if (level <= baseLevel) {
            add = itemsFirstLevel;
          } else if (currentPath.getElementCount() == pathInMenu.getElementCount()) {
            add = itemsLastLevel;
          } else if (currentPath.getElementCount() > pathInMenu.getElementCount()) {
            add = itemsChildren;
          } else {
            add = itemsIntermediateLevels;
          }
        }
      }
     
      if (add) {
        // Close off any pending lower levels
        for (int i = lastLevel - 1; i >= level; i--) {
          writeIndented(outWriter, "</li>", i + 1);
          writeIndented(outWriter, "</ul>", i);
        }
       
        // If we're a level deeper - then create new sub ul+li
        for (int i = lastLevel; i < level; i++) {
          if (styleNotApplied) {
            writeIndented(outWriter, "<ul class=\"" + style + "\">", i);
            styleNotApplied = false;
          } else {
            if (artisteer) {
              writeIndented(outWriter, "<ul class='active'>", i);
            } else {
              writeIndented(outWriter, "<ul>", i);
            }
          }
          writeIndented(outWriter, "<li>", i + 1);
        }
       
        // If we do not have an open li at the right level - then create one
        if (level <= lastLevel) {
          writeIndented(outWriter, "</li>", level);
          writeIndented(outWriter, "<li>", level);
        }
       
        String link = webSite.getLink(currentPageInfo, pageDirPath).toString();
        String artStart, artEnd;
       
        if (currentPageInfo.getLevel() - baseLevel < 1 && artisteer) {
          artStart = "<span class='l'></span><span class='r'></span><span class='t'>";
          artEnd = "</span>";
        } else {
          artStart = artEnd = "";
        }
       
        if (currentPageInfo.getLevel() > 0 && pathInMenu.isContainedIn(currentPath)
            && !(currentPageInfo.getPath().equals(pathInMenu)
                || currentPageInfo.getPath().equals(rootPath)
                || Utils.isNullOrEmpty(currentPathStyle))) {
          outWriter.write("<a href=\"" + link + "\" class='" + currentPathStyle +
              "'>" + artStart + siteInfo.getPageTitle(currentPageInfo) + artEnd + "</a>");
        } else if (currentPageInfo.getPath().equals(pathInMenu)) {
          if (isEdit || linkCurrent) {
            if (!(Utils.isNullOrEmpty(currentStyle) && Utils.isNullOrEmpty(currentPathStyle))) {
              outWriter.write("<a href=\"" + link + "\" class='" + currentPathStyle +
                  " " + currentStyle + "'>" + artStart +
                  siteInfo.getPageTitle(currentPageInfo) + artEnd + "</a>");
            } else {
              outWriter.write("<a href=\"" + link + "\">" + artStart +
                  siteInfo.getPageTitle(currentPageInfo) + artEnd + "</a>");
            }
          } else {
            if (Utils.isNullOrEmpty(currentStyle)) {
              outWriter.write(siteInfo.getPageTitle(currentPageInfo));
            } else {
              outWriter.write("<span class='" + currentStyle + "'>" +
                  siteInfo.getPageTitle(currentPageInfo) + "</span>");
            }
          }
        } else {
          outWriter.write("<a href=\"" + link + "\">" + artStart +
              siteInfo.getPageTitle(currentPageInfo) + artEnd + "</a>");
        }
       
        lastLevel = level;
      }
    }
View Full Code Here

TOP

Related Classes of org.meshcms.core.SiteInfo

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.