/** refreshes the 4 charts and the transactionList */ public void refresh() { // refresh total balance double balance = transactionMgr.getBalance(); financesBalance_LBL.setText("You have $" + balance); if (balance < 0) financesBalance_LBL.setIcon(new ImageIcon(Finances.class.getResource("/img/Warning.png"))); else financesBalance_LBL.setIcon(null); // refresh 4 types DefaultCategoryDataset AssetDataset = new DefaultCategoryDataset(); AssetDataset = TransactionMgr.getAssetChartData(); financesAsset_PNL.removeAll(); financesAsset_PNL.add(renderBarChart(AssetDataset, 0)); financesAsset_PNL.add(financesRenameAssetCat_BTN); financesAsset_PNL.add(financesAssetTransfer_BTN); DefaultCategoryDataset LiabilityDataset = new DefaultCategoryDataset(); LiabilityDataset = TransactionMgr.getLiabilityChartData(); financesLiability_PNL.removeAll(); financesLiability_PNL.add(renderBarChart(LiabilityDataset, 1)); financesLiability_PNL.add(financesRenameLiabilityCat_BTN); financesLiability_PNL.add(financesLiabilityTransfer_BTN); DefaultCategoryDataset IncomeDataset = new DefaultCategoryDataset(); IncomeDataset = TransactionMgr.getIncomeChartData(); financesIncome_PNL.removeAll(); financesIncome_PNL.add(renderBarChart(IncomeDataset, 2)); financesIncome_PNL.add(financesRenameIncomeCat_BTN); DefaultCategoryDataset ExpenseDataset = new DefaultCategoryDataset(); ExpenseDataset = TransactionMgr.getExpenseChartData(); financesExpense_PNL.removeAll(); financesExpense_PNL.add(renderBarChart(ExpenseDataset, 3)); financesExpense_PNL.add(financesRenameExpenseCat_BTN); // refresh transactionList financesTransactionList_PNL.removeAll(); renderList(financesTransactionList_PNL, TransactionMgr.getTransactionList()); // refresh line chart financesLineChart_PNL.add(renderLineChart(TransactionMgr.getLineChartData())); financesMain_FRM.validate(); }
/** Initialize the contents of the frame. */ private void initialize() { // setting up the main window financesMain_FRM.getContentPane().setBackground(new Color(255, 255, 255)); financesMain_FRM.setSize(1200, 750); financesMain_FRM.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); financesMain_FRM.add(financesMain_SCP); financesMain_PNL.setLayout( new MigLayout("", "[400]0[400]0[250:300:350]", "0[100,grow]0[300,grow]0[300,grow]0")); financesMain_PNL.setBackground(new Color(255, 255, 255)); // setting up the top panel financesBalance_PNL.setBackground(new Color(255, 255, 255)); financesBalance_PNL.setLayout(new MigLayout("", "[1100]", "[50]5[30]")); financesBalance_PNL.add(financesWelcome_LBL, "cell 0 0, align center"); if (transactionMgr.getBalance() < 0) financesBalance_LBL.setIcon(new ImageIcon(Finances.class.getResource("/img/Warning.png"))); financesBalance_PNL.add(financesBalance_LBL, "cell 0 1, align center"); financesMain_PNL.add(financesBalance_PNL, "cell 0 0 3 1,grow"); // setting up the asset panel financesAsset_PNL.setBackground(new Color(255, 255, 255)); DefaultCategoryDataset AssetDataset = new DefaultCategoryDataset(); AssetDataset = TransactionMgr.getAssetChartData(); financesAsset_PNL.add(renderBarChart(AssetDataset, 0)); financesRenameAssetCat_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.renameAssetCategories(); } }); financesAsset_PNL.add(financesRenameAssetCat_BTN); financesAssetTransfer_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.transferIntraAsset(); } }); financesAsset_PNL.add(financesAssetTransfer_BTN); financesMain_PNL.add(financesAsset_PNL, "cell 0 1,grow"); // setting up the liability panel financesLiability_PNL.setBackground(new Color(255, 255, 255)); DefaultCategoryDataset LiabilityDataset = new DefaultCategoryDataset(); LiabilityDataset = TransactionMgr.getLiabilityChartData(); financesLiability_PNL.add(renderBarChart(LiabilityDataset, 1)); financesRenameLiabilityCat_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.renameLiabilityCategories(); } }); financesLiability_PNL.add(financesRenameLiabilityCat_BTN); financesLiabilityTransfer_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.transferIntraLiability(); } }); financesLiability_PNL.add(financesLiabilityTransfer_BTN); financesMain_PNL.add(financesLiability_PNL, "cell 1 1,grow"); // setting up the right panel financesRight_PNL.setBackground(new Color(255, 255, 255)); financesRight_PNL.setLayout(new MigLayout("", "0[300,grow]0", "0[40]0[400]0[50]0")); financesTransactions_LBL.setFont(new Font("Tahoma", Font.BOLD, 22)); financesRight_PNL.add(financesTransactions_LBL, "cell 0 0,growx,aligny top"); financesMain_PNL.add(financesRight_PNL, "cell 2 1 1 2,grow"); // setting up the transaction list panel and adding it to the right panel financesTransactionList_PNL.setBackground(new Color(240, 240, 230)); renderList(financesTransactionList_PNL, TransactionMgr.getTransactionList()); financesTransactionList_SCP.setViewportView(financesTransactionList_PNL); financesTransactionList_PNL.setLayout(new MigLayout("flowy", "5[grow,left]5", "5[grow,top]5")); financesRight_PNL.add(financesTransactionList_SCP, "cell 0 1,grow"); financesRight_PNL.validate(); // setting up the crud buttons panel and adding it to the right panel financesCrud_PNL.setBackground(new Color(255, 255, 255)); financesCrud_PNL.setLayout(new MigLayout("", "0[50]3[50]3[50]3[50]3[50]0", "0[50]0")); financesRight_PNL.add(financesCrud_PNL, "flowx,cell 0 2"); // Add the respective buttons with their icon and a simple tooltip financesAdd_BTN.setToolTipText("Add an Entry"); financesAdd_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.addTransaction(); } }); financesCrud_PNL.add(financesAdd_BTN, "cell 0 0"); financesEdit_BTN.setBackground(new Color(255, 255, 255)); financesEdit_BTN.setToolTipText("Edit an Entry"); financesEdit_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.editTransaction(); } }); financesCrud_PNL.add(financesEdit_BTN, "cell 1 0"); financesDel_BTN.setBackground(new Color(255, 255, 255)); financesDel_BTN.setToolTipText("Delete an Entry"); financesDel_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.deleteTransaction(); } }); financesCrud_PNL.add(financesDel_BTN, "cell 2 0"); financesUndo_BTN.setBackground(new Color(255, 255, 255)); financesUndo_BTN.setToolTipText("Undo your last transaction"); financesUndo_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.undo(); refresh(); } }); financesCrud_PNL.add(financesUndo_BTN, "cell 3 0"); financesSearch_BTN.setBackground(new Color(255, 255, 255)); financesSearch_BTN.setToolTipText("Search"); financesSearch_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { SearchMgr searchMgr = new SearchMgr(); } }); financesCrud_PNL.add(financesSearch_BTN, "cell 4 0"); // setting up the income panel financesIncome_PNL.setBackground(new Color(255, 255, 255)); DefaultCategoryDataset IncomeDataset = new DefaultCategoryDataset(); IncomeDataset = TransactionMgr.getIncomeChartData(); financesIncome_PNL.add(renderBarChart(IncomeDataset, 2)); financesRenameIncomeCat_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.renameIncomeCategories(); } }); financesIncome_PNL.add(financesRenameIncomeCat_BTN); financesMain_PNL.add(financesIncome_PNL, "cell 0 2,grow"); // setting up the expense panel financesExpense_PNL.setBackground(new Color(255, 255, 255)); DefaultCategoryDataset ExpenseDataset = new DefaultCategoryDataset(); ExpenseDataset = TransactionMgr.getExpenseChartData(); financesExpense_PNL.add(renderBarChart(ExpenseDataset, 3)); financesRenameExpenseCat_BTN.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { transactionMgr.renameExpenseCategories(); } }); financesExpense_PNL.add(financesRenameExpenseCat_BTN); financesMain_PNL.add(financesExpense_PNL, "cell 1 2,grow"); /* * setting up the line chart panel financesLineChart_PNL.setBackground(new Color(255, 255, 255)); financesLineChart_PNL.add(renderLineChart(TransactionMgr.getLineChartData())); financesMain_PNL.add(financesLineChart_PNL, "cell 0 3 3 1,center"); */ // to clear log when exiting the application financesMain_FRM.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { TransactionMgr.clearLog(); } }); }