0% found this document useful (0 votes)
3 views7 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views7 pages

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
We take content rights seriously. If you suspect this is your content, claim it here.
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

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy