@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); } } }