0% found this document useful (0 votes)
3 views

code

The document is a Java Swing application for a Delivery Runner Dashboard, allowing delivery runners to accept or reject orders and view their order history. It includes a graphical user interface with buttons for order management and displays pending orders in a text area. The application initializes with a DeliveryRunner and UserService, and provides functionality to interact with orders through an OrderService instance.

Uploaded by

woterik239
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

code

The document is a Java Swing application for a Delivery Runner Dashboard, allowing delivery runners to accept or reject orders and view their order history. It includes a graphical user interface with buttons for order management and displays pending orders in a text area. The application initializes with a DeliveryRunner and UserService, and provides functionality to interact with orders through an OrderService instance.

Uploaded by

woterik239
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

package views;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import models.DeliveryRunner;
import models.Order;
import services.OrderService;
import services.UserService;
import java.util.List;

public class DeliveryRunnerView extends JFrame {


private DeliveryRunner deliveryRunner;
private OrderService orderService;
private JTextArea orderArea;
private JButton acceptOrderButton;
private JButton rejectOrderButton;
private JButton historyButton;
private JButton backButton;
private UserService userService;
private JFrame previousWindow;

public DeliveryRunnerView(JFrame previousWindow, DeliveryRunner deliveryRunner,


UserService userService) {
this.previousWindow = previousWindow;
this.deliveryRunner = deliveryRunner;
this.userService = userService;
this.orderService = new OrderService(userService); // Initialize OrderService with
UserService

setTitle("Delivery Runner Dashboard");


setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());

JPanel topPanel = new JPanel(new BorderLayout());


JLabel titleLabel = new JLabel("Delivery Runner Dashboard", SwingConstants.CENTER);
titleLabel.setFont(new Font("Arial", Font.BOLD, 24));
topPanel.add(titleLabel, BorderLayout.CENTER);

backButton = new JButton("Back");


backButton.setFont(new Font("Arial", Font.BOLD, 14));
backButton.setForeground(Color.WHITE);
backButton.setBackground(new Color(0xDC3545)); // Red
backButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
dispose();
previousWindow.setVisible(true); // Show the previous window
}
});
topPanel.add(backButton, BorderLayout.WEST);

add(topPanel, BorderLayout.NORTH);

orderArea = new JTextArea();


orderArea.setEditable(false);
add(new JScrollPane(orderArea), BorderLayout.CENTER);

JPanel buttonPanel = new JPanel(new GridLayout(1, 3, 10, 10));


buttonPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

acceptOrderButton = new JButton("Accept Order");


rejectOrderButton = new JButton("Reject Order");
historyButton = new JButton("Order History");

buttonPanel.add(acceptOrderButton);
buttonPanel.add(rejectOrderButton);
buttonPanel.add(historyButton);
add(buttonPanel, BorderLayout.SOUTH);

acceptOrderButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
acceptOrder();
}
});

rejectOrderButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
rejectOrder();
}
});
historyButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
viewOrderHistory();
}
});

setPreferredSize(new Dimension(600, 400)); // Set initial preferred size


pack(); // Adjust the frame to fit the preferred size of its components
setLocationRelativeTo(null); // Center the frame on the screen
setResizable(true); // Allow the frame to be resizable

loadOrders();
}

private void loadOrders() {


orderArea.setText(""); // Clear existing orders
List<Order> pendingOrders = orderService.getPendingOrders();

for (Order order : pendingOrders) {


orderArea.append("Order ID: " + order.getId() + "\nCustomer: " +
order.getCustomer().getUsername() + "\nMenuItem: " + order.getMenuItem().getName() + "\n\
n");
}
}

private void acceptOrder() {


try {
String orderId = JOptionPane.showInputDialog(this, "Enter Order ID to accept:");
if (orderId != null && !orderId.trim().isEmpty()) {
boolean success = orderService.acceptOrder(Integer.parseInt(orderId),
deliveryRunner);
if (success) {
JOptionPane.showMessageDialog(this, "Order accepted!");
loadOrders();
} else {
JOptionPane.showMessageDialog(this, "Error accepting order.");
}
} else {
JOptionPane.showMessageDialog(this, "Invalid Order ID.");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Error accepting order: " + e.getMessage());
}
}

private void rejectOrder() {


try {
String orderId = JOptionPane.showInputDialog(this, "Enter Order ID to reject:");
if (orderId != null && !orderId.trim().isEmpty()) {
boolean success = orderService.rejectOrder(Integer.parseInt(orderId), deliveryRunner);
if (success) {
JOptionPane.showMessageDialog(this, "Order rejected.");
loadOrders();
} else {
JOptionPane.showMessageDialog(this, "Error rejecting order.");
}
} else {
JOptionPane.showMessageDialog(this, "Invalid Order ID.");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Error rejecting order: " + e.getMessage());
}
}

private void viewOrderHistory() {


try {
List<Order> orderHistory = orderService.getOrderHistory(deliveryRunner);
orderArea.setText(""); // Clear existing orders

for (Order order : orderHistory) {


orderArea.append("Order ID: " + order.getId() + "\nCustomer: " +
order.getCustomer().getUsername() + "\nMenuItem: " + order.getMenuItem().getName() + "\n\
n");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "Error viewing order history: " +
e.getMessage());
}
}

public static void main(String[] args) {


DeliveryRunner deliveryRunner = new DeliveryRunner("runner_username",
"runner_password", "RunnerFirstName", "RunnerLastName", "RunnerContact",
"RunnerEmail");
UserService userService = new UserService();
SwingUtilities.invokeLater(() -> new DeliveryRunnerView(null, deliveryRunner,
userService).setVisible(true));
}
}

You might also like