private ObservableList<Transport> availableTransportData() {
ObservableList<Transport> transportList =
[Link]();
String query = "SELECT * FROM transport";
try (Statement stmt = [Link](); ResultSet rs =
[Link](query)) {
while ([Link]()) {
// Parse the Date field from String to Date
String dateString = [Link]("Date"); // assuming the column
name is "Date"
Date transportDate = null;
if (dateString != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
transportDate = (Date) [Link](dateString);
}
Transport transport = new Transport(
[Link]([Link]("type")),
[Link]("companyName"),
[Link]("departureLocation"),
[Link]("arrivalLocation"),
transportDate, // Use the Date object here
[Link]("departureTime"),
[Link]("arrivalTime"),
[Link]("price"),
[Link]("isElectric"),
[Link]("availability")
);
[Link](transport);
}
} catch (SQLException | ParseException e) {
[Link]();
}
return transportList;
}
////////////////////////////////////////////////////////////////////////////////
public void availableTransportAdd() {
String addData = "INSERT INTO transport (idTransport, type, companyName,
departureLocation, arrivalLocation, Date, departureTime, arrivalTime, price,
isElectric, availability) "
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
Alert alert;
try {
// Check if any required fields are empty
if (transport_type.getSelectionModel().getSelectedItem() == null
|| [Link]().isEmpty() ||
DP_location.getText().isEmpty() || AR_location.getText().isEmpty()
|| date_id.getValue() == null || DP_time.getText().isEmpty() ||
AR_time.getText().isEmpty() || price_id.getText().isEmpty()
|| electric_type.getSelectionModel().getSelectedItem() == null
|| availibility_id.getSelectionModel().isEmpty()) {
alert = new Alert([Link]);
[Link]("Error Message");
[Link](null);
[Link]("Please fill all blank fields!");
[Link]();
return;
}
// Check if Transport ID exists
String check = "SELECT idTransport FROM transport WHERE idTransport
= ?";
PreparedStatement prepare = [Link](check);
[Link](1, [Link](availableT_transportID.getText()));
ResultSet result = [Link]();
if ([Link]()) {
alert = new Alert([Link]);
[Link]("Error Message");
[Link](null);
[Link]("Transport ID: " +
availableT_transportID.getText() + " already exists!");
[Link]();
} else {
// Prepare SQL statement to insert the new transport
prepare = [Link](addData);
// Get the Date from the DatePicker (convert to LocalDate)
LocalDate transportDate = date_id.getValue(); // This returns a
LocalDate
if (transportDate == null) {
alert = new Alert([Link]);
[Link]("Error Message");
[Link](null);
[Link]("Please select a valid date!");
[Link]();
return;
}
// Convert LocalDate to [Link]
[Link] sqlTransportDate =
[Link](transportDate);
// Set parameters for the SQL insert statement
[Link](2,
transport_type.getSelectionModel().getSelectedItem().toString());
[Link](3, [Link]());
[Link](4, DP_location.getText());
[Link](5, AR_location.getText());
[Link](6, sqlTransportDate); // Insert the Date
(transport date)
[Link](7, DP_time.getText()); // Departure time
[Link](8, AR_time.getText()); // Arrival time
[Link](9, [Link](price_id.getText())); //
Price
[Link](10,
electric_type.getSelectionModel().getSelectedItem().equals("Yes")); // Electric
type
[Link](11,
availibility_id.getSelectionModel().getSelectedItem().equals("Available")); //
Availability
// Execute the update
[Link]();
alert = new Alert([Link]);
[Link]("Information Message");
[Link](null);
[Link]("Successfully Added Transport!");
[Link]();
// Optionally, call the method to refresh the transport data
availableTransportShowData();
}
} catch (Exception e) {
[Link]();
alert = new Alert([Link]);
[Link]("Error");
[Link](null);
[Link]("An error occurred while adding the transport.");
[Link]();
}
}