/*
 * Licensed Materials - Property of Rogue Wave Software, Inc. 
 * © Copyright Rogue Wave Software, Inc. 2014, 2015 
 * © Copyright IBM Corp. 2009, 2014
 * © Copyright ILOG 1996, 2009
 * All Rights Reserved.
 *
 * Note to U.S. Government Users Restricted Rights:
 * The Software and Documentation were developed at private expense and
 * are "Commercial Items" as that term is defined at 48 CFR 2.101,
 * consisting of "Commercial Computer Software" and
 * "Commercial Computer Software Documentation", as such terms are
 * used in 48 CFR 12.212 or 48 CFR 227.7202-1 through 227.7202-4,
 * as applicable.
 */

package monitoring.web.controls;

import java.util.Arrays;
import java.util.List;

import org.apache.myfaces.trinidad.component.UIXSwitcher;
import org.apache.myfaces.trinidad.component.core.data.CoreTree;
import org.apache.myfaces.trinidad.component.core.nav.CoreNavigationPane;

/**
 * Contains all the tree related controls in the sample. 
 */
public class TreeControls {

  //Tree controls
  private static List<String> TREE_SWITCHER_FACET_NAMES;
  private static String TREE_SWITCHER_DEFAULT_FACET;

  static {

    ////////////////////////////////////////////////////////////////////////////
    //This needs to be in synch with the JSP page: /tree-area/index.jsp
    ////////////////////////////////////////////////////////////////////////////

    String[] facetNames = new String[]{"networkTreeFacet",
        "inventoryTreeFacet", "serviceTreeFacet"};

    //Save it
    TREE_SWITCHER_FACET_NAMES = Arrays.asList(facetNames);

    //Define the default facet name 
    TREE_SWITCHER_DEFAULT_FACET = TREE_SWITCHER_FACET_NAMES.get(0);
  }

  /**
   * Tree tabs.
   */
  private CoreNavigationPane tabs;

  /**
   * Switcher used to switch between the different tree.
   */
  private UIXSwitcher treeSwitcher;

  /**
   * Network Module's Tree.
   */
  private CoreTree networkTree;

  /**
   * Inventory Module's Tree.
   */
  private CoreTree inventoryTree;

  /**
   * Service Module's Tree.
   */
  private CoreTree serviceTree;

  //////////////////////////////////////////////////////////////////////////////
  //Initialization
  //////////////////////////////////////////////////////////////////////////////
  /**
   * Initializes the tree controls.
   */
  public void initialize() {
  }

  //////////////////////////////////////////////////////////////////////////////
  //Accessors and Modifiers
  //////////////////////////////////////////////////////////////////////////////

  public CoreNavigationPane getTabs() {
    return tabs;
  }
  public void setTabs(CoreNavigationPane tabs) {
    this.tabs = tabs;
  }
  public CoreTree getInventoryTree() {
    return inventoryTree;
  }
  public void setInventoryTree(CoreTree inventoryTree) {
    this.inventoryTree = inventoryTree;
  }
  public CoreTree getNetworkTree() {
    return networkTree;
  }
  public void setNetworkTree(CoreTree networkTree) {
    this.networkTree = networkTree;
  }
  public CoreTree getServiceTree() {
    return serviceTree;
  }
  public void setServiceTree(CoreTree serviceTree) {
    this.serviceTree = serviceTree;
  }
  public UIXSwitcher getTreeSwitcher() {
    return treeSwitcher;
  }
  public void setTreeSwitcher(UIXSwitcher treeSwitcher) {
    this.treeSwitcher = treeSwitcher;
  }

  //////////////////////////////////////////////////////////////////////////////
  //Other Methods
  //////////////////////////////////////////////////////////////////////////////
  
  public String getTreeSwitcherDefaultFacet() {
    return TREE_SWITCHER_DEFAULT_FACET;
  }
  public List<String> getTreeSwitcherFacetNames() {
    return TREE_SWITCHER_FACET_NAMES;
  }
  public String getTreeSwitcherFacetName(int index) {
    return TREE_SWITCHER_FACET_NAMES.get(index);
  }
}