From ed3e023d1da3465bc79a91d38950a167004911b2 Mon Sep 17 00:00:00 2001 From: Vidhu Kant Sharma Date: Sat, 16 Nov 2024 02:11:24 +0530 Subject: First Commit --- src/UI/MainWindow.java | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/UI/MainWindow.java (limited to 'src/UI/MainWindow.java') diff --git a/src/UI/MainWindow.java b/src/UI/MainWindow.java new file mode 100644 index 0000000..8c3964e --- /dev/null +++ b/src/UI/MainWindow.java @@ -0,0 +1,69 @@ +package UI; + +import Client.Book; +import Client.SocketClient; +import UI.Components.BooksList; +import UI.Components.LoginPanel; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import javax.swing.*; +import java.awt.*; +import java.net.Socket; + +public class MainWindow extends JFrame { + public static String url = "http://localhost:8080"; + public static int userId = 0; + + public MainWindow() { + this.setTitle("User Panel - Library Management System"); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setSize(650, 500); + this.setResizable(false); + this.setLocationRelativeTo(null); + + CardLayout cardLayout = new CardLayout(); + JPanel cardPanel = new JPanel(cardLayout); + + LoginPanel loginPanel = new LoginPanel(); + loginPanel.loginButton.addActionListener(e -> { + new SocketClient(url); + SocketClient.socket.connect(); + + SocketClient.socket.emit("login", + "{" + + "\"userName\": \"" + loginPanel.usernameInput.getValue() + "\"," + + "\"password\": \"" + loginPanel.passwordInput.getValue() + "\"" + + "}"); + + SocketClient.socket.on("loggedIn", data -> { + MainWindow.userId = (int) data[0]; + + SocketClient.socket.on("allBooksList", d -> { + try { + BooksList.refreshBooks(Book.fromObjects(d)); + } catch (JSONException ex) { + throw new RuntimeException(ex); + } + }); + + SocketClient.socket.on("booksUpdated", d -> { + try { + BooksList.refreshBooks(Book.fromObjects(d)); + } catch (JSONException ex) { + throw new RuntimeException(ex); + } + }); + + SocketClient.socket.emit("getAllBooks"); + cardLayout.next(cardPanel); + }); + }); + cardPanel.add(loginPanel); + + cardPanel.add(new BooksList()); + + this.add(cardPanel); + } +} -- cgit v1.2.3