@Override
  protected void runExpensiveCommand() {
    try {
      String matchedPath = createNewDiff();
      if (matchedPath == null) {
        return;
      }

      var newMatchesDatabase = new File(matchedPath);
      if (newMatchesDatabase.exists()) {
        setDescription("Preloading Diff...");
        DiffMetadata preloadedMatches = DiffLoader.preloadDiffMatches(newMatchesDatabase);

        setDescription("Adding Diff to workspace...");
        workspace.addDiff(newMatchesDatabase, preloadedMatches, false);
      } else {
        logger.atSevere().log(
            "Create and add new Diff to workspace failed. Diff binary does not exist.");
        CMessageBox.showError(
            parentWindow, "Adding new Diff to workspace failed. Diff binary does not exist.");
      }
    } catch (SQLException e) {
      logger.atSevere().withCause(e).log("New Diff failed. Couldn't read matches database.");
      CMessageBox.showError(
          parentWindow, "New Diff failed. Couldn't read matches database: " + e.getMessage());
    }
  }
Class NewDiffImplementation implements the UI flow for adding new .BinDiff results to the
workspace.
java/ui/src/main/java/com/google/security/zynamics/bindiff/gui/tabpanels/projecttabpanel/implementations/NewDiffImplementation.java