Package com.caucho.web

Source Code of com.caucho.web.NavItem

/*
* Copyright (c) 1998-2000 Caucho Technology -- all rights reserved
*
* This file is part of Resin(R) Open Source
*
* Each copy or derived work must preserve the copyright notice and this
* notice unmodified.
*
* Resin Open Source is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Resin Open Source is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
* of NON-INFRINGEMENT.  See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with Resin Open Source; if not, write to the
*   Free SoftwareFoundation, Inc.
*   59 Temple Place, Suite 330
*   Boston, MA 02111-1307  USA
*
* @author Scott Ferguson
*
* $Id: NavItem.java,v 1.2 2004/09/29 00:13:49 cvs Exp $
*/

package com.caucho.web;

import com.caucho.util.Tree;

import java.util.ArrayList;
import java.util.Iterator;

public class NavItem {
  Tree tree;
  String title;
  String link;
  String description;
  String brief;
  String _product;

  NavItem()
  {
  }

  void setTree(Tree tree)
  {
    this.tree = tree;
  }

  /**
   * Returns the underlying tree.
   */
  Tree getTree()
  {
    return tree;
  }

  /**
   * Returns the parent item.
   */
  public NavItem getParent()
  {
    if (tree == null)
      return null;
   
    Tree parent = tree.getParent();

    return parent == null ? null : (NavItem) parent.getData();
  }

  public Iterator children()
  {
    return tree.iterator();
  }

  public String getTitle()
  {
    return title;
  }

  public void setTitle(String title)
  {
    this.title = title;
  }

  public String getProduct()
  {
    return _product;
  }

  public void setProduct(String product)
  {
    _product = product;
  }

  public String getBrief()
  {
    return brief;
  }

  public void setBrief(String brief)
  {
    this.brief = brief;
  }

  public String getLink()
  {
    return link;
  }

  public void setLink(String link)
  {
    this.link = link;
  }

  public String getDescription()
  {
    return description;
  }

  public void setDescription(String description)
  {
    this.description = description;
  }

  /**
   * Returns the previous sibling.
   */
  public NavItem getPrevious()
  {
    Tree prevTree = tree.getPrevious();
   
    if (prevTree == null)
      return null;
    else
      return (NavItem) prevTree.getData();
  }

  /**
   * Returns the previous item in a preorder DFS traversal.
   */
  public NavItem getPreviousPreorder()
  {
    Tree prevTree = tree.getPreviousPreorder();
   
    if (prevTree == null)
      return null;
    else
      return (NavItem) prevTree.getData();
  }

  /**
   * Returns the next sibling item.
   */
  public NavItem getNext()
  {
    Tree nextTree = tree.getNext();
   
    if (nextTree == null)
      return null;
    else
      return (NavItem) nextTree.getData();
  }

  /**
   * Returns the next item in a preorder DFS traversal.
   */
  public NavItem getNextPreorder()
  {
    Tree nextTree = tree.getNextPreorder();
   
    if (nextTree == null)
      return null;
    else
      return (NavItem) nextTree.getData();
  }

  /**
   * Returns the specialized family navigation
   */
  public ArrayList familyNavigation()
  {
    ArrayList list = new ArrayList();

    familyNavigation(tree, list);

    return list;
  }

  /**
   * Specialized to get a family navigation.
   */
  private boolean familyNavigation(Tree tree, ArrayList results)
  {
    if (tree == null) {
      return false;
    }

    boolean hasParent = false;
    if (tree.getParent() != null) {
      hasParent = familyNavigation(tree.getParent(), results);
    }

    Iterator iter = tree.iterator();

    boolean hasChild = false;
    while (iter.hasNext()) {
      NavItem child = (NavItem) iter.next();

      if (! hasChild && hasParent)
        results.add(null);
     
      hasChild = true;
      results.add(child);
    }

    return hasChild || hasParent;
  }

  public String toString()
  {
    return "[NavItem title='" + title + "' link='" + link + "']";
  }
}
TOP

Related Classes of com.caucho.web.NavItem

TOP
Copyright © 2018 www.massapi.com. 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.