package cc.glsn.v15.housefund; import java.awt.Color; import java.awt.GridBagConstraints; import java.sql.ResultSet; import java.sql.SQLException; import java.util.TreeMap; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import cc.glsn.v15.SQLConnection; public class OverviewPanel extends JPanel implements Face { /** * */ private static final long serialVersionUID = -4429397020724843069L; JTextArea CurrBankBalance; JTextArea FinalBankBalance; TreeMap UserInfoMap; String User; public OverviewPanel(String user) { super(new java.awt.GridBagLayout()); User=user; UserInfoMap=new TreeMap(); try { { { java.awt.GridBagConstraints c=new java.awt.GridBagConstraints(); c.gridheight=1; c.gridwidth=1; c.fill=GridBagConstraints.NONE; c.insets=new java.awt.Insets(4,4,4,4); c.anchor=GridBagConstraints.NORTHWEST; c.weightx=0.0; JLabel L=new JLabel("Current Bank Balance: "); L.setFont(Globals.getFont(Globals.NormalFontSize)); add(L,c); } { java.awt.GridBagConstraints c=new java.awt.GridBagConstraints(); c.gridheight=1; c.gridwidth=GridBagConstraints.REMAINDER; c.fill=GridBagConstraints.NONE; c.insets=new java.awt.Insets(4,4,4,4); c.anchor=GridBagConstraints.NORTHWEST; c.gridwidth=GridBagConstraints.REMAINDER; c.weightx=1.5; CurrBankBalance=new JTextArea(1,15); CurrBankBalance.setFont(Globals.getFont(Globals.NormalFontSize)); add(CurrBankBalance,c); } { java.awt.GridBagConstraints c=new java.awt.GridBagConstraints(); c.gridheight=1; c.gridwidth=1; c.fill=GridBagConstraints.NONE; c.insets=new java.awt.Insets(4,4,4,4); c.anchor=GridBagConstraints.NORTHWEST; c.weightx=0.0; JLabel L=new JLabel("Final Bank Balance: "); L.setFont(Globals.getFont(Globals.NormalFontSize)); add(L,c); } { java.awt.GridBagConstraints c=new java.awt.GridBagConstraints(); c.gridheight=1; c.gridwidth=GridBagConstraints.REMAINDER; c.fill=GridBagConstraints.NONE; c.insets=new java.awt.Insets(4,4,4,4); c.anchor=GridBagConstraints.NORTHWEST; c.gridwidth=GridBagConstraints.REMAINDER; c.weightx=1.5; FinalBankBalance=new JTextArea(1,15); FinalBankBalance.setFont(Globals.getFont(Globals.NormalFontSize)); add(FinalBankBalance,c); } } if (User.equals("joe")) { for (String n : Globals.getAllUsers()) { UserInfoMap.put(n,new UserData(n)); } } else { UserInfoMap.put(User,new UserData(User)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); System.exit(-1); } } public synchronized void updateData() throws SQLException { SQLConnection C=Globals.getSQL(); { ResultSet R=C.doSingleQuery("select sum(amount) as sum from transaction where status=2"); R.first(); double D=R.getDouble("sum"); CurrBankBalance.setText(Globals.getMoneyFormat().format(D)); if (D < 0.0) CurrBankBalance.setForeground(Color.RED); else CurrBankBalance.setForeground(Color.BLACK); } { ResultSet R=C.doSingleQuery("select sum(amount) as sum from transaction"); R.first(); double D=R.getDouble("sum"); FinalBankBalance.setText(Globals.getMoneyFormat().format(D)); if (D < 0.0) FinalBankBalance.setForeground(Color.RED); else FinalBankBalance.setForeground(Color.BLACK); } for(UserData ud : UserInfoMap.values()) { ud.updateData(C); } } class UserData { String User; JTextArea Balance; public UserData(String user) throws SQLException { User=user; { java.awt.GridBagConstraints c=new java.awt.GridBagConstraints(); c.gridheight=1; c.gridwidth=1; c.fill=GridBagConstraints.NONE; c.insets=new java.awt.Insets(4,4,4,4); c.anchor=GridBagConstraints.NORTHWEST; c.weightx=0.0; JLabel L=new JLabel("" + Globals.getFullName(User) + ": "); L.setFont(Globals.getFont(Globals.NormalFontSize)); add(L,c); } { java.awt.GridBagConstraints c=new java.awt.GridBagConstraints(); c.gridheight=1; c.gridwidth=GridBagConstraints.REMAINDER; c.fill=GridBagConstraints.NONE; c.insets=new java.awt.Insets(4,4,4,4); c.anchor=GridBagConstraints.NORTHWEST; c.gridwidth=GridBagConstraints.REMAINDER; c.weightx=1.5; Balance=new JTextArea(1,15); Balance.setFont(Globals.getFont(Globals.NormalFontSize)); add(Balance,c); } } public void updateData(SQLConnection C) throws SQLException { ResultSet R=C.doSingleQuery("select sum(value) as sum from distro where person='" + User +"'"); R.first(); double D=R.getDouble("sum"); Balance.setText(Globals.getMoneyFormat().format(D)); if (D < 0.0) Balance.setForeground(Color.RED); else Balance.setForeground(Color.BLACK); } } }