Started implementing the Account listing of a User
This commit is contained in:
@@ -13,15 +13,16 @@ public class Main {
|
||||
User user;
|
||||
|
||||
public static void main(String[] args) {
|
||||
String user = SHA256("user");
|
||||
String username = "user";
|
||||
String user = SHA256(username);
|
||||
File userFile = new File("./users/" + user + ".json");
|
||||
|
||||
if(!userFile.exists()) {
|
||||
|
||||
User u = new User("user");
|
||||
User u = new User(username);
|
||||
u.createAccount("Konto");
|
||||
Account a = u.getAccount("Konto");
|
||||
a.DepositTransaction(104, "Deposit", UUID.randomUUID());
|
||||
a.DepositTransaction(100, "Deposit", UUID.randomUUID());
|
||||
|
||||
String json = gson.toJson(u);
|
||||
try {
|
||||
|
||||
@@ -2,6 +2,8 @@ package me.zacharias.bank.app;
|
||||
|
||||
import me.zacharias.bank.Account;
|
||||
import me.zacharias.bank.User;
|
||||
import me.zacharias.bank.app.component.DrawManager;
|
||||
import me.zacharias.bank.app.component.InteractiveList;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -14,7 +16,7 @@ public class MainMenu extends JPanel {
|
||||
JLabel welcome;
|
||||
JButton logout;
|
||||
|
||||
JList<Account> accountList;
|
||||
InteractiveList<Account> accountList;
|
||||
|
||||
public MainMenu(User user, Main bankApplication) {
|
||||
this.user = user;
|
||||
@@ -31,23 +33,20 @@ public class MainMenu extends JPanel {
|
||||
bankApplication.logout();
|
||||
});
|
||||
|
||||
accountList = new JList<>();
|
||||
accountList.setBounds(getWidth()/2-100, 80, 200, 30);
|
||||
accountList.setModel(new DefaultListModel<>());
|
||||
accountList.setBackground(Color.GRAY);
|
||||
accountList.setCellRenderer(new ListCellRenderer<Account>() {
|
||||
@Override
|
||||
public Component getListCellRendererComponent(JList<? extends Account> list, Account value, int index, boolean isSelected, boolean cellHasFocus) {
|
||||
JButton label = new JButton();
|
||||
label.setText(value.getName() + " " + value.getBalance() + " kr");
|
||||
label.setBackground(Color.GRAY);
|
||||
label.addActionListener(e -> {
|
||||
bankApplication.showAccount(value);
|
||||
});
|
||||
return label;
|
||||
}
|
||||
accountList = new InteractiveList<>();
|
||||
accountList.setBounds(0, 100, getWidth(), getHeight()-200);
|
||||
accountList.setDrawManager((DrawManager<Account>) (interactiveList, item, index, isHovered, isSelected) -> {
|
||||
JLabel label = new JLabel(item.getName());
|
||||
label.setOpaque(true);
|
||||
label.setBackground(isSelected ? Color.GREEN : Color.WHITE);
|
||||
label.setForeground(isHovered ? Color.WHITE : Color.BLACK);
|
||||
return label;
|
||||
});
|
||||
|
||||
for (Account account : user.getAccounts()) {
|
||||
accountList.add(account);
|
||||
}
|
||||
|
||||
this.add(welcome);
|
||||
this.add(logout);
|
||||
this.add(accountList);
|
||||
@@ -57,10 +56,9 @@ public class MainMenu extends JPanel {
|
||||
protected void paintComponent(Graphics g) {
|
||||
welcome.setBounds(getWidth()/2-100, 10, 200, 30);
|
||||
logout.setBounds(getWidth()/2-100, getHeight()-50, 200, 30);
|
||||
accountList.setBounds(getWidth()/2-100, 80, 200, 30);
|
||||
accountList.setBounds(getWidth()/2-100, getHeight()-80, 200, 300);
|
||||
|
||||
|
||||
accountList.setListData(user.getAccounts().toArray(new Account[0]));
|
||||
accountList.setList(user.getAccounts());
|
||||
super.paintComponent(g);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package me.zacharias.bank.app.component;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
public interface DrawManager<T> {
|
||||
Component draw(InteractiveList<T> interactiveList, T item, int index, boolean isHovered, boolean isSelected);
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package me.zacharias.bank.app.component;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class InteractiveList<T> extends JPanel {
|
||||
ArrayList<T> list;
|
||||
DrawManager<T> drawManager;
|
||||
|
||||
public InteractiveList() {
|
||||
list = new ArrayList<>();
|
||||
drawManager = new DrawManager<T>() {
|
||||
@Override
|
||||
public Component draw(InteractiveList<T> interactiveList, T item, int index, boolean isHovered, boolean isSelected) {
|
||||
JLabel label = new JLabel(item.toString());
|
||||
label.setOpaque(true);
|
||||
label.setBackground(isSelected ? Color.GREEN : Color.WHITE);
|
||||
label.setForeground(isHovered ? Color.WHITE : Color.BLACK);
|
||||
return label;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public void add(T item) {
|
||||
list.add(item);
|
||||
}
|
||||
|
||||
public void remove(T item) {
|
||||
list.remove(item);
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
list.clear();
|
||||
}
|
||||
|
||||
public void setList(ArrayList<T> list) {
|
||||
this.list = list;
|
||||
}
|
||||
|
||||
public ArrayList<T> getList() {
|
||||
return list;
|
||||
}
|
||||
|
||||
public void setDrawManager(DrawManager drawManager) {
|
||||
this.drawManager = drawManager;
|
||||
}
|
||||
|
||||
protected void paintComponent(Graphics g) {
|
||||
super.paintComponent(g);
|
||||
//this.removeAll();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
Component component = drawManager.draw(this, list.get(i), i, false, false);
|
||||
component.setBounds(0, i * component.getHeight(), getWidth(), component.getHeight());
|
||||
//add(component);
|
||||
component.paint(g);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user