private void createCallGraphView(final Diff diff, final CallGraphViewData view)
      throws GraphCreationException {
    final ViewTabPanel viewTabPanel =
        new ViewTabPanel(window, tabPanelManager, workspace, diff, view);

    tabPanelManager.addTab(viewTabPanel);

    setDescription("Creating view...");

    try {
      final GraphsContainer graphs = view.getGraphs();
      ViewTabPanelInitializer.initialize(graphs, this);

      tabPanelManager.selectTab(viewTabPanel);

      final EDiffViewMode mode = viewTabPanel.getController().getGraphSettings().getDiffViewMode();
      final BinDiffGraph<?, ?> graph =
          mode == EDiffViewMode.NORMAL_VIEW ? graphs.getPrimaryGraph() : graphs.getCombinedGraph();
      if (graph != null) {
        zoomToMatch(new CAddress(data.getFunctionAddress(ESide.PRIMARY)), graph);
      }
    } catch (final Exception e) {
      throw new GraphCreationException("An error occurred while initializing the graph.");
    }
  }
Loads call graphs into a new view.
java/ui/src/main/java/com/google/security/zynamics/bindiff/project/diff/CallGraphViewLoader.java