@Action("editAction")
  public void editAction() {
    Project project = this.projectHolder.getCurrentProject();
    VehicleRecord record = this.view.getSelectedRecord();
    if (null == record) {
      this.dialogBuilder.showError("No vehicle selected", "Please select a vehicle.");
      return;
    }
    VehicleEditorDialog dialog = this.dialogBuilder.createModalDialog(VehicleEditorDialog.class);

    VehicleTypeSelectionModel selectionModel = this.vehicleTypeSelectionModelProvider.get();
    selectionModel.installModel(selectionModel.updateModel(project));
    dialog.setVehicleTypeModel(selectionModel);
    VehicleEditorController controller = this.vehicleEditorControllerProvider.get();
    controller.setVehicleTypeSelectionModel(selectionModel);
    controller.setModel(record);
    controller.setView(dialog);
    dialog.setVisible(true);
    if (controller.isAccepted()) {
      try {
        this.history.execute(new EditVehicleCmd(controller.getModel()));
      } catch (CommandExecutionException exception) {
        this.dialogBuilder.showError("Cannot edit a vehicle", exception);
      }
    }
  }
  @Action("addAction")
  public void addAction() {
    Project project = this.projectHolder.getCurrentProject();
    if (!this.hasVehicleTypes(project)) {
      this.dialogBuilder.showWarning(
          "No vehicle types",
          "You must add some means of transport and vehicle types before adding a vehicle.");
      return;
    }
    VehicleEditorDialog dialog = this.dialogBuilder.createModalDialog(VehicleEditorDialog.class);

    VehicleTypeSelectionModel selectionModel = this.vehicleTypeSelectionModelProvider.get();
    selectionModel.installModel(selectionModel.updateModel(project));
    dialog.setVehicleTypeModel(selectionModel);
    VehicleEditorController controller = this.vehicleEditorControllerProvider.get();
    controller.setVehicleTypeSelectionModel(selectionModel);
    controller.setModel(new VehicleRecord());
    controller.setView(dialog);
    dialog.setVisible(true);
    if (controller.isAccepted()) {
      try {
        this.history.execute(new AddVehicleCmd(controller.getModel()));
      } catch (CommandExecutionException exception) {
        this.dialogBuilder.showError("Cannot add a vehicle", exception);
      }
    }
  }