@Override
  protected void runExpensiveCommand() throws Exception {
    Diff diff = data.getDiff();
    if (diff == null) {
      final File matchesFile = new File(data.getMatchesDBPath());

      try (final MatchesDatabase matchesDB = new MatchesDatabase(matchesFile)) {
        final FunctionDiffMetadata metadata = matchesDB.loadFunctionDiffMetadata(true);
        final File primaryExportFile = new File(data.getBinExportPath(ESide.PRIMARY));
        final File secondaryExportFile = new File(data.getBinExportPath(ESide.SECONDARY));

        diff = new Diff(metadata, matchesFile, primaryExportFile, secondaryExportFile, false);
        final DiffLoader diffLoader = new DiffLoader();
        diffLoader.loadDiff(diff, data);
      }
    }
    final CallGraphViewData view = loadCallGraphViewData(diff);
    createCallGraphView(diff, view);
  }
Loads call graphs into a new view.
java/ui/src/main/java/com/google/security/zynamics/bindiff/project/diff/CallGraphViewLoader.java