diff --git a/spending.db b/spending.db new file mode 100644 index 0000000..f67a8ce Binary files /dev/null and b/spending.db differ diff --git a/src/main/java/edu/ucsd/spendingtracker/App.java b/src/main/java/edu/ucsd/spendingtracker/App.java index 7d2f29b..8f7e281 100644 --- a/src/main/java/edu/ucsd/spendingtracker/App.java +++ b/src/main/java/edu/ucsd/spendingtracker/App.java @@ -1,6 +1,7 @@ package edu.ucsd.spendingtracker; import edu.ucsd.spendingtracker.datasource.InMemoryDataSource; +import edu.ucsd.spendingtracker.datasource.SqlDataSource; import edu.ucsd.spendingtracker.model.Model; import edu.ucsd.spendingtracker.presenter.PresenterManager; import edu.ucsd.spendingtracker.presenter.SpendingPresenter; @@ -14,7 +15,9 @@ public class App extends Application { @Override public void start(Stage primaryStage) { - InMemoryDataSource dataSource = InMemoryDataSource.getDefaultDataSource(); + // InMemoryDataSource dataSource = InMemoryDataSource.getDefaultDataSource(); + SqlDataSource dataSource = new SqlDataSource(); + ExpenseRepository repository = new ExpenseRepository(dataSource); Model sharedModel = new Model(repository); diff --git a/src/main/java/edu/ucsd/spendingtracker/datasource/IDataSource.java b/src/main/java/edu/ucsd/spendingtracker/datasource/IDataSource.java new file mode 100644 index 0000000..271cbc8 --- /dev/null +++ b/src/main/java/edu/ucsd/spendingtracker/datasource/IDataSource.java @@ -0,0 +1,13 @@ +package edu.ucsd.spendingtracker.datasource; + +import java.util.List; + +import edu.ucsd.spendingtracker.model.Expense; + +public interface IDataSource { + List getExpenses(); + + void addExpense(Expense expense); + + void deleteExpense(int id); +} diff --git a/src/main/java/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.java b/src/main/java/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.java index c71abcd..908f914 100644 --- a/src/main/java/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.java +++ b/src/main/java/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.java @@ -6,29 +6,31 @@ import edu.ucsd.spendingtracker.model.Category; import edu.ucsd.spendingtracker.model.Expense; -public class InMemoryDataSource { +public class InMemoryDataSource implements IDataSource{ private List expenses = new ArrayList<>(); - public InMemoryDataSource() { - } - + @Override public List getExpenses() { return List.copyOf(expenses); } - + @Override public void addExpense(Expense expense) { expenses.add(expense); } - public final static List DEFAULT_EXPENSES = List.of( - new Expense("Groceries", Category.FOOD, 150.75), - new Expense("Utilities", Category.UTILITIES, 80.50), - new Expense("Gas", Category.TRANSPORT, 60.00)); - - public static InMemoryDataSource getDefaultDataSource() { - InMemoryDataSource dataSource = new InMemoryDataSource(); - dataSource.expenses.addAll(DEFAULT_EXPENSES); - return dataSource; + public void deleteExpense(int expenseID) { + expenses.removeIf(expense -> expense.getId() == expenseID); } + + // public final static List DEFAULT_EXPENSES = List.of( + // new Expense("Groceries", Category.FOOD, 150.75), + // new Expense("Utilities", Category.UTILITIES, 80.50), + // new Expense("Gas", Category.TRANSPORT, 60.00)); + + // public static InMemoryDataSource getDefaultDataSource() { + // InMemoryDataSource dataSource = new InMemoryDataSource(); + // dataSource.expenses.addAll(DEFAULT_EXPENSES); + // return dataSource; + // } } diff --git a/src/main/java/edu/ucsd/spendingtracker/datasource/SqlDataSource.java b/src/main/java/edu/ucsd/spendingtracker/datasource/SqlDataSource.java new file mode 100644 index 0000000..46ff235 --- /dev/null +++ b/src/main/java/edu/ucsd/spendingtracker/datasource/SqlDataSource.java @@ -0,0 +1,65 @@ +package edu.ucsd.spendingtracker.datasource; + + +import edu.ucsd.spendingtracker.model.*; +import java.sql.*; +import java.util.ArrayList; +import java.util.List; + + +public class SqlDataSource implements IDataSource { + private final String url = "jdbc:sqlite:spending.db"; + + + public SqlDataSource() { + try (Connection conn = DriverManager.getConnection(url)) { + conn.createStatement().execute( + "CREATE TABLE IF NOT EXISTS expenses (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, category TEXT, amount REAL)"); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + + @Override + public List getExpenses() { + List list = new ArrayList<>(); + try (Connection conn = DriverManager.getConnection(url); + ResultSet rs = conn.createStatement().executeQuery("SELECT * FROM expenses")) { + while (rs.next()) { + list.add(new Expense(rs.getInt("id"), rs.getString("name"), + Category.valueOf(rs.getString("category")), rs.getDouble("amount"))); + } + } catch (SQLException e) { + e.printStackTrace(); + } + return list; + } + + + @Override + public void addExpense(Expense e) { + try (Connection conn = DriverManager.getConnection(url); + PreparedStatement ps = conn + .prepareStatement("INSERT INTO expenses(name, category, amount) VALUES(?,?,?)")) { + ps.setString(1, e.getName()); + ps.setString(2, e.getCategory().name()); + ps.setDouble(3, e.getAmount()); + ps.executeUpdate(); + } catch (SQLException err) { + err.printStackTrace(); + } + } + + + @Override + public void deleteExpense(int id) { + try (Connection conn = DriverManager.getConnection(url); + PreparedStatement ps = conn.prepareStatement("DELETE FROM expenses WHERE id = ?")) { + ps.setInt(1, id); + ps.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/edu/ucsd/spendingtracker/model/Expense.java b/src/main/java/edu/ucsd/spendingtracker/model/Expense.java index 3b73dca..a8dea45 100644 --- a/src/main/java/edu/ucsd/spendingtracker/model/Expense.java +++ b/src/main/java/edu/ucsd/spendingtracker/model/Expense.java @@ -4,11 +4,20 @@ public class Expense { private String name; private Category category; private double amount; + private int id; public Expense(String name, Category category, double amount) { this.name = name; this.category = category; this.amount = amount; + this.id = -1; + } + + public Expense(int id, String name, Category category, double amount) { + this.name = name; + this.category = category; + this.amount = amount; + this.id = id; } public String getName() { @@ -22,6 +31,10 @@ public Category getCategory() { public double getAmount() { return amount; } + + public int getId() { + return id; + } } diff --git a/src/main/java/edu/ucsd/spendingtracker/model/Model.java b/src/main/java/edu/ucsd/spendingtracker/model/Model.java index 97e5c80..41ddd0b 100644 --- a/src/main/java/edu/ucsd/spendingtracker/model/Model.java +++ b/src/main/java/edu/ucsd/spendingtracker/model/Model.java @@ -14,6 +14,10 @@ public void addExpense(Expense e) { repository.addExpense(e); } + public void deleteExpense(int id) { + repository.deleteExpense(id); + } + public List getExpenses() { return repository.getExpenses(); } diff --git a/src/main/java/edu/ucsd/spendingtracker/presenter/SpendingPresenter.java b/src/main/java/edu/ucsd/spendingtracker/presenter/SpendingPresenter.java index 171568d..e19b965 100644 --- a/src/main/java/edu/ucsd/spendingtracker/presenter/SpendingPresenter.java +++ b/src/main/java/edu/ucsd/spendingtracker/presenter/SpendingPresenter.java @@ -14,6 +14,18 @@ public SpendingPresenter(Model model, SpendingView view) { onShowSummary.run(); }); + this.view.setOnDelete(id->{ + model.deleteExpense(id); + updateView(); + }); + + this.view.getOpenModalButton().setOnAction(e -> { + view.showAddExpenseModal(newExpense -> { + model.addExpense(newExpense); + updateView(); + }); + }); + updateView(); } @@ -25,12 +37,17 @@ public void setOnShowSummary(Runnable action) { public String getViewTitle() { return "Expenses"; } - + @Override public void updateView() { - int i = 1; + view.clearList(); + for (Expense e : model.getExpenses()) { - view.addExpenseRow(i++, e.getName(), e.getCategory().name(), - e.getCategory().color, e.getAmount()); + view.addExpenseRow( + e.getId(), + e.getName(), + e.getCategory().name(), + e.getCategory().color, + e.getAmount()); } } } diff --git a/src/main/java/edu/ucsd/spendingtracker/repository/ExpenseRepository.java b/src/main/java/edu/ucsd/spendingtracker/repository/ExpenseRepository.java index 91f5f8e..8694683 100644 --- a/src/main/java/edu/ucsd/spendingtracker/repository/ExpenseRepository.java +++ b/src/main/java/edu/ucsd/spendingtracker/repository/ExpenseRepository.java @@ -1,13 +1,14 @@ package edu.ucsd.spendingtracker.repository; import java.util.List; -import edu.ucsd.spendingtracker.datasource.InMemoryDataSource; + +import edu.ucsd.spendingtracker.datasource.IDataSource; import edu.ucsd.spendingtracker.model.Expense; public class ExpenseRepository { - private final InMemoryDataSource dataSource; + private IDataSource dataSource; - public ExpenseRepository(InMemoryDataSource dataSource) { + public ExpenseRepository(IDataSource dataSource) { this.dataSource = dataSource; } @@ -19,6 +20,11 @@ public List getExpenses() { return dataSource.getExpenses(); } + public void deleteExpense(int expenseID) + { + dataSource.deleteExpense(expenseID); + } + public double getTotal() { double total = 0; for (Expense expense : dataSource.getExpenses()) { diff --git a/src/main/java/edu/ucsd/spendingtracker/view/SpendingView.java b/src/main/java/edu/ucsd/spendingtracker/view/SpendingView.java index b9dab5f..02ed959 100644 --- a/src/main/java/edu/ucsd/spendingtracker/view/SpendingView.java +++ b/src/main/java/edu/ucsd/spendingtracker/view/SpendingView.java @@ -1,36 +1,60 @@ package edu.ucsd.spendingtracker.view; import javafx.geometry.*; +import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.scene.text.*; +import javafx.stage.Modality; +import javafx.stage.Stage; +import java.util.function.Consumer; +import edu.ucsd.spendingtracker.model.Expense; +import edu.ucsd.spendingtracker.model.Category; + public class SpendingView extends BorderPane { private VBox listContainer; private Button summaryButton; + private Button openAddModalBtn; + private Consumer onDeleteHandler; public SpendingView() { - VBox headerBox = new VBox(10); + VBox headerBox = new VBox(15); headerBox.setAlignment(Pos.CENTER); headerBox.setPadding(new Insets(20)); + Text title = new Text("Spending Tracker"); - title.setStyle("-fx-font-weight: bold; -fx-font-size: 24;"); + title.setStyle("-fx-font-weight: bold; -fx-font-size: 26;"); + + + HBox navBox = new HBox(10); + navBox.setAlignment(Pos.CENTER); + + summaryButton = new Button("View Summary"); - headerBox.getChildren().addAll(title, summaryButton); + openAddModalBtn = new Button("Add New Expense +"); + openAddModalBtn.setStyle("-fx-background-color: #2E7D32; -fx-text-fill: white; -fx-font-weight: bold;"); + + + navBox.getChildren().addAll(openAddModalBtn, summaryButton); + headerBox.getChildren().addAll(title, navBox); + listContainer = new VBox(5); ScrollPane scroller = new ScrollPane(listContainer); scroller.setFitToWidth(true); scroller.setStyle("-fx-background-color: transparent; -fx-background: #FFFFFF;"); + this.setTop(headerBox); this.setCenter(scroller); this.setPadding(new Insets(0, 25, 20, 25)); this.setStyle("-fx-background-color: #FFFFFF;"); } - public void addExpenseRow(int idx, String name, String catName, String color, double amount) { + + public void addExpenseRow(int id, String name, String catName, String color, double amount) { HBox row = new HBox(10); row.setPrefSize(450, 40); row.setPadding(new Insets(5, 10, 5, 10)); @@ -39,6 +63,7 @@ public void addExpenseRow(int idx, String name, String catName, String color, do "-fx-border-width: 0 0 1 0; -fx-font-weight: bold; " + "-fx-border-radius: 5px; -fx-background-radius: 5px;"); + Label nameL = new Label(name); nameL.setPrefWidth(200); Label catL = new Label("[" + catName + "]"); @@ -47,12 +72,72 @@ public void addExpenseRow(int idx, String name, String catName, String color, do Label amtL = new Label("$" + String.format("%.2f", amount)); amtL.setPrefWidth(80); amtL.setAlignment(Pos.CENTER_RIGHT); + Button deleteBtn = new Button("X"); + deleteBtn.setStyle("-fx-background-color: #ff6961; -fx-text-fill: white;"); + deleteBtn.setOnAction(e -> { + if (onDeleteHandler != null) + onDeleteHandler.accept(id); + }); + - row.getChildren().addAll(new Label(idx + "."), nameL, catL, amtL); + row.getChildren().addAll(nameL, catL, amtL, deleteBtn); listContainer.getChildren().add(row); } + + public void showAddExpenseModal(Consumer onSave) { + Stage modal = new Stage(); + modal.initModality(Modality.APPLICATION_MODAL); // Blocks the main window + modal.setTitle("Add New Expense"); + + + VBox layout = new VBox(15); + layout.setPadding(new Insets(20)); + layout.setAlignment(Pos.CENTER); + + + TextField nameField = new TextField(); + nameField.setPromptText("Expense Name"); + TextField amountField = new TextField(); + amountField.setPromptText("Amount"); + ComboBox categoryBox = new ComboBox<>(); + categoryBox.getItems().setAll(Category.values()); + + + Button saveBtn = new Button("Save Expense"); + saveBtn.setOnAction(e -> { + try { + double amount = Double.parseDouble(amountField.getText()); + onSave.accept(new Expense(nameField.getText(), categoryBox.getValue(), amount)); + modal.close(); + } catch (NumberFormatException ex) { + amountField.setStyle("-fx-border-color: red;"); + } + }); + + + layout.getChildren().addAll(new Label("Expense Details"), nameField, amountField, categoryBox, saveBtn); + modal.setScene(new Scene(layout, 300, 250)); + modal.showAndWait(); + } + + public Button getSummaryButton() { return summaryButton; } + + public void clearList() { + listContainer.getChildren().clear(); + } + + + public void setOnDelete(Consumer handler) { + this.onDeleteHandler = handler; + } + + + public Button getOpenModalButton() { + return openAddModalBtn; + } + } diff --git a/src/test/java/edu/ucsd/spendingtracker/repository/ExpenseRepositoryTest.java b/src/test/java/edu/ucsd/spendingtracker/repository/ExpenseRepositoryTest.java index b9f7718..9c4ceb1 100644 --- a/src/test/java/edu/ucsd/spendingtracker/repository/ExpenseRepositoryTest.java +++ b/src/test/java/edu/ucsd/spendingtracker/repository/ExpenseRepositoryTest.java @@ -2,8 +2,8 @@ import edu.ucsd.spendingtracker.model.Category; import edu.ucsd.spendingtracker.model.Expense; -// import edu.ucsd.spendingtracker.datasource.IDataSource; -// import edu.ucsd.spendingtracker.datasource.InMemoryDataSource; +import edu.ucsd.spendingtracker.datasource.IDataSource; +import edu.ucsd.spendingtracker.datasource.InMemoryDataSource; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.DisplayName; @@ -14,55 +14,50 @@ public class ExpenseRepositoryTest { - @Test - void placeholderTest() { - assertTrue(true); - } - - // private ExpenseRepository repo; - // private IDataSource dataSource; - - // @BeforeEach - // void setUp() { - // dataSource = new InMemoryDataSource(); - // repo = new ExpenseRepository(dataSource); - // } + private ExpenseRepository repo; + private IDataSource dataSource; - // @Test - // @DisplayName("Should start with an empty list") - // void testInitialEmpty() { - // assertEquals(0, repo.getExpenses().size(), "Repository should be empty initially."); - // } + @BeforeEach + void setUp() { + dataSource = new InMemoryDataSource(); + repo = new ExpenseRepository(dataSource); + } - // @Test - // @DisplayName("Adding an expense should increase the list size") - // void testAddExpense() { - // Expense coffee = new Expense("Coffee", Category.FOOD, 5.50); - // repo.addExpense(coffee); + @Test + @DisplayName("Should start with an empty list") + void testInitialEmpty() { + assertEquals(0, repo.getExpenses().size(), "Repository should be empty initially."); + } - // List expenses = repo.getExpenses(); - // assertEquals(1, expenses.size()); - // assertEquals("Coffee", expenses.get(0).getName()); - // assertEquals(5.50, expenses.get(0).getAmount()); - // } + @Test + @DisplayName("Adding an expense should increase the list size") + void testAddExpense() { + Expense coffee = new Expense("Coffee", Category.FOOD, 5.50); + repo.addExpense(coffee); + + List expenses = repo.getExpenses(); + assertEquals(1, expenses.size()); + assertEquals("Coffee", expenses.get(0).getName()); + assertEquals(5.50, expenses.get(0).getAmount()); + } - // @Test - // @DisplayName("Deleting an expense should remove it from the list") - // void testDeleteExpense() { - // repo.addExpense(new Expense("Rent", Category.OTHER, 1200.00)); - // Expense toDelete = repo.getExpenses().get(0); - // int id = toDelete.getId(); - // repo.deleteExpense(id); - // assertEquals(0, repo.getExpenses().size(), "List should be empty after deletion."); - // } + @Test + @DisplayName("Deleting an expense should remove it from the list") + void testDeleteExpense() { + repo.addExpense(new Expense("Rent", Category.OTHER, 1200.00)); + Expense toDelete = repo.getExpenses().get(0); + int id = toDelete.getId(); + repo.deleteExpense(id); + assertEquals(0, repo.getExpenses().size(), "List should be empty after deletion."); + } - // @Test - // @DisplayName("Should handle multiple expenses correctly") - // void testMultipleExpenses() { - // repo.addExpense(new Expense("Gas", Category.TRANSPORT, 40.00)); - // repo.addExpense(new Expense("Movie", Category.ENTERTAINMENT, 15.00)); - // repo.addExpense(new Expense("Apples", Category.FOOD, 4.00)); + @Test + @DisplayName("Should handle multiple expenses correctly") + void testMultipleExpenses() { + repo.addExpense(new Expense("Gas", Category.TRANSPORT, 40.00)); + repo.addExpense(new Expense("Movie", Category.ENTERTAINMENT, 15.00)); + repo.addExpense(new Expense("Apples", Category.FOOD, 4.00)); - // assertEquals(3, repo.getExpenses().size()); - // } + assertEquals(3, repo.getExpenses().size()); + } } \ No newline at end of file diff --git a/target/classes/edu/ucsd/spendingtracker/App.class b/target/classes/edu/ucsd/spendingtracker/App.class index ad685f9..dd6d8f7 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/App.class and b/target/classes/edu/ucsd/spendingtracker/App.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/datasource/IDataSource.class b/target/classes/edu/ucsd/spendingtracker/datasource/IDataSource.class new file mode 100644 index 0000000..b287ede Binary files /dev/null and b/target/classes/edu/ucsd/spendingtracker/datasource/IDataSource.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.class b/target/classes/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.class index 6c7de2f..6585adb 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.class and b/target/classes/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/datasource/SqlDataSource.class b/target/classes/edu/ucsd/spendingtracker/datasource/SqlDataSource.class new file mode 100644 index 0000000..11f3c5e Binary files /dev/null and b/target/classes/edu/ucsd/spendingtracker/datasource/SqlDataSource.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/model/Category.class b/target/classes/edu/ucsd/spendingtracker/model/Category.class index 579567f..b0f2382 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/model/Category.class and b/target/classes/edu/ucsd/spendingtracker/model/Category.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/model/Expense.class b/target/classes/edu/ucsd/spendingtracker/model/Expense.class index eeb02a3..54a9a01 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/model/Expense.class and b/target/classes/edu/ucsd/spendingtracker/model/Expense.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/model/Model.class b/target/classes/edu/ucsd/spendingtracker/model/Model.class index dee4092..3a8060f 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/model/Model.class and b/target/classes/edu/ucsd/spendingtracker/model/Model.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/presenter/AbstractPresenter.class b/target/classes/edu/ucsd/spendingtracker/presenter/AbstractPresenter.class index ae006cb..5011d7b 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/presenter/AbstractPresenter.class and b/target/classes/edu/ucsd/spendingtracker/presenter/AbstractPresenter.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/presenter/PresenterManager.class b/target/classes/edu/ucsd/spendingtracker/presenter/PresenterManager.class index 95a828c..684408d 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/presenter/PresenterManager.class and b/target/classes/edu/ucsd/spendingtracker/presenter/PresenterManager.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/presenter/PresenterSwitcher.class b/target/classes/edu/ucsd/spendingtracker/presenter/PresenterSwitcher.class index 25a5a41..b73c27a 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/presenter/PresenterSwitcher.class and b/target/classes/edu/ucsd/spendingtracker/presenter/PresenterSwitcher.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/presenter/SpendingPresenter.class b/target/classes/edu/ucsd/spendingtracker/presenter/SpendingPresenter.class index 1efeb89..238d4aa 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/presenter/SpendingPresenter.class and b/target/classes/edu/ucsd/spendingtracker/presenter/SpendingPresenter.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/presenter/SummaryPresenter.class b/target/classes/edu/ucsd/spendingtracker/presenter/SummaryPresenter.class index d3d99c7..0e808ca 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/presenter/SummaryPresenter.class and b/target/classes/edu/ucsd/spendingtracker/presenter/SummaryPresenter.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/repository/ExpenseRepository.class b/target/classes/edu/ucsd/spendingtracker/repository/ExpenseRepository.class index a94d74d..4187af3 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/repository/ExpenseRepository.class and b/target/classes/edu/ucsd/spendingtracker/repository/ExpenseRepository.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/view/SpendingView.class b/target/classes/edu/ucsd/spendingtracker/view/SpendingView.class index 321c15c..d85bda3 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/view/SpendingView.class and b/target/classes/edu/ucsd/spendingtracker/view/SpendingView.class differ diff --git a/target/classes/edu/ucsd/spendingtracker/view/SummaryView.class b/target/classes/edu/ucsd/spendingtracker/view/SummaryView.class index b936786..c8a5ba9 100644 Binary files a/target/classes/edu/ucsd/spendingtracker/view/SummaryView.class and b/target/classes/edu/ucsd/spendingtracker/view/SummaryView.class differ diff --git a/target/classes/module-info.class b/target/classes/module-info.class index 02f23fd..f7e553d 100644 Binary files a/target/classes/module-info.class and b/target/classes/module-info.class differ diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index e69de29..a8ce4f0 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,16 @@ +edu/ucsd/spendingtracker/view/SummaryView.class +edu/ucsd/spendingtracker/presenter/SpendingPresenter.class +edu/ucsd/spendingtracker/model/Model.class +edu/ucsd/spendingtracker/presenter/SummaryPresenter.class +edu/ucsd/spendingtracker/App.class +module-info.class +edu/ucsd/spendingtracker/repository/ExpenseRepository.class +edu/ucsd/spendingtracker/datasource/IDataSource.class +edu/ucsd/spendingtracker/datasource/InMemoryDataSource.class +edu/ucsd/spendingtracker/model/Expense.class +edu/ucsd/spendingtracker/datasource/SqlDataSource.class +edu/ucsd/spendingtracker/model/Category.class +edu/ucsd/spendingtracker/presenter/AbstractPresenter.class +edu/ucsd/spendingtracker/presenter/PresenterSwitcher.class +edu/ucsd/spendingtracker/presenter/PresenterManager.class +edu/ucsd/spendingtracker/view/SpendingView.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index c5ac4cb..3b467f5 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,13 +1,16 @@ -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\App.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\model\CategoryModel.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\model\ExpenseModel.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\view\SummaryView.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\presenter\PresenterManager.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\module-info.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\repository\ExpenseRepository.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\presenter\AbstractPresenter.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\InMemoryDataSource\InMemoryDataSource.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\view\SpendingView.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\presenter\SpendingPresenter.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\presenter\SummaryPresenter.java -c:\Users\tonyn\Desktop\Lab3_Starter1\src\main\java\edu\ucsd\spendingtracker\presenter\PresenterSwitcher.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/App.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/datasource/IDataSource.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/datasource/InMemoryDataSource.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/datasource/SqlDataSource.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/model/Category.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/model/Expense.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/model/Model.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/presenter/AbstractPresenter.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/presenter/PresenterManager.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/presenter/PresenterSwitcher.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/presenter/SpendingPresenter.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/presenter/SummaryPresenter.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/repository/ExpenseRepository.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/view/SpendingView.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/edu/ucsd/spendingtracker/view/SummaryView.java +/Users/rickyzam/Documents/UCSD/CSE110/CSE110-Lab4/src/main/java/module-info.java diff --git a/target/test-classes/edu/ucsd/spendingtracker/repository/ExpenseRepositoryTest.class b/target/test-classes/edu/ucsd/spendingtracker/repository/ExpenseRepositoryTest.class deleted file mode 100644 index 02f56bb..0000000 Binary files a/target/test-classes/edu/ucsd/spendingtracker/repository/ExpenseRepositoryTest.class and /dev/null differ