-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathElectronicStoreApp.java
More file actions
137 lines (98 loc) · 4.74 KB
/
ElectronicStoreApp.java
File metadata and controls
137 lines (98 loc) · 4.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.collections.FXCollections;
import javafx.event.*;
import javafx.scene.input.MouseEvent;
public class ElectronicStoreApp extends Application {
private ElectronicStore model;
// set model to electronics model
public ElectronicStoreApp(){ model = ElectronicStore.createStore();}
public void start (Stage primaryStage) {
Pane aPane = new Pane();
// Create the view
ElectronicStoreView view = new ElectronicStoreView();
// add view to pane
aPane.getChildren().add(view);
view.update(model);
// if stock list is selected
view.getpList().setOnMousePressed(new EventHandler<MouseEvent>()
{
public void handle(MouseEvent mouseEvent) {
// enable add cart button
if (view.getpList().getSelectionModel().getSelectedItem() != null){
view.getAdd().setDisable(false);
}
// if add button is clicked
view.getAdd().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent actionEvent) {
// grab item
//int in = view.getpList().getSelectionModel().getSelectedIndex();
Product item = view.getpList().getSelectionModel().getSelectedItem();
// add item to current cart
model.getCurCart().addCart(item);
// decrease product quantity - not real sale
model.sellProduct(item);
// update model takes care of cart total display
view.update(model);
}
});
}
});
//if stock list is selected
view.getCList().setOnMousePressed(new EventHandler<MouseEvent>()
{
public void handle(MouseEvent mouseEvent) {
// enable remove cart button
if (view.getCList().getSelectionModel().getSelectedItem() != null){
view.getRemove().setDisable(false);
}
view.getRemove().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent actionEvent) {
// grab item
String item = view.getCList().getSelectionModel().getSelectedItem();
Product remove = model.searchProducts(item);
// remove item to current cart
model.getCurCart().removeCart(remove);
// increase product stock quantity
// decrease product stock soldQuantity
model.addProduct(remove);
// update model takes care of cart total display
view.update(model);
}
});
}
});
// complete sale
view.getComp().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent actionEvent) {
// adjust sold quantity property
model.sellCart();
// update model information accordingly
model.updateRevenue(model.getCurCart().getTotal());
model.updateSale(1);
model.updateAverage(model.getRevenue(), model.getSales());
model.setCurCart(new Cart());
// update model takes care of cart total display
view.update(model);
}
});
// rest store
view.getReset().setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent actionEvent) {
model = ElectronicStore.createStore();
view.update(model);
}
});
view.update(model);
// set title and resizability
primaryStage.setTitle("Electronic Store Application Watts Up Electronics");
primaryStage.setResizable(false);
primaryStage.setScene(new Scene(aPane));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}