setView (viewArray = [], objectNameToHighlight) {
    let redirectedFrom;
    // If nothing has been selected yet, it's the initial node
    if (!this.currentGraph) {
      this.initialView = viewArray;
      this.initialObjectToHighlight = objectNameToHighlight;
      const initialView = this.checkInitialView();
      if (!initialView.view) { return; }
      viewArray = initialView.view;
      objectNameToHighlight = initialView.highlighted;
      ({ redirectedFrom } = initialView);
    }

    const newGraph = this.getNearestValidGraph(viewArray);

    // If the view changed, set it.
    if (!this.currentGraph || !isEqual(newGraph.graphIndex, this.currentGraph.graphIndex)) {
      const difference = this.currentGraph ? (newGraph.graphIndex.length - this.currentGraph.graphIndex.length) : 0;
      if (difference === -1) {
        this.zoomOutOfNode();
      } else if (difference === 1) {
        this.zoomIntoNode(newGraph.name);
      } else {
        this.selectGraph(newGraph, redirectedFrom);
      }

      this.calculateMouseOver();
    }

    // If passed in an object to highlight, try to highlight.
    if (objectNameToHighlight) {
      const objectToHighlight = newGraph.getGraphObject(objectNameToHighlight);
      if (objectToHighlight) {
        newGraph.highlightObject(objectToHighlight);
      }
    } else if (newGraph.highlightedObject) {
      newGraph.highlightObject();
    }
  }
Set the current view of the component to the passed in array. If the passed
in array does not match an existing node at the passed in depth, the component will try
each level up the array until it finds a match, defaulting to the top level
view.

Ex:
[] - show the base graph view
['us-east-1'] - show the graph view for 'us-east-1' if it exists
['us-east-1', 'api'] - show the view for the api node in the us-east-1 graph if it exists

@param {array} viewArray the array containing the view to set.
@param {string} objectNameToHighlight a node or connection to set as highlighted in the current viewArray