public class MainView extends HBox {
private Storage<Opel> opelStore = new Storage<Opel>();
private Storage<Mazda> mazdaStore = new Storage<Mazda>();
private Storage<Dacia> daciaStore = new Storage<Dacia>();
public MainView() {
createView();
}
private void createView() {
VBox vBoxLeft = new VBox();
VBox vBoxRight = new VBox();
TextField texfieldName = new TextField();
texfieldName.setPromptText("Model");
TextField texfieldBrand = new TextField();
texfieldBrand.setPromptText("Autohersteller");
TextField texfieldWeight = new TextField();
texfieldWeight.setPromptText("Leergewicht");
TextField texfieldSpecial = new TextField();
ComboBox<String> comboBoxSelect = new ComboBox<>(FXCollections.observableArrayList("Opel", "Mazda", "Dacia"));
ListView<String> listViewStorage = new ListView<>();
Button buttonBuy = new Button("Kaufe ein");
buttonBuy.setOnAction(EventHandler -> {
switch (comboBoxSelect.getValue()) {
case "Opel":
Opel opel = new Opel(texfieldName.getText(), texfieldBrand.getText(),
Double.valueOf(texfieldWeight.getText()), texfieldSpecial.getText());
this.opelStore.addToStorage(opel);
listViewStorage.setItems(FXCollections.observableArrayList(this.opelStore.getStorageAsString()));
break;
case "Mazda":
Mazda mazda = new Mazda(texfieldName.getText(), texfieldBrand.getText(),
Double.valueOf(texfieldWeight.getText()), Integer.valueOf(texfieldSpecial.getText()));
this.mazdaStore.addToStorage(mazda);
listViewStorage.setItems(FXCollections.observableArrayList(this.mazdaStore.getStorageAsString()));
break;
case "Dacia":
Dacia dacia = new Dacia(texfieldName.getText(), texfieldBrand.getText(),
Double.valueOf(texfieldWeight.getText()), Integer.valueOf(texfieldSpecial.getText()));
this.daciaStore.addToStorage(dacia);
listViewStorage.setItems(FXCollections.observableArrayList(this.daciaStore.getStorageAsString()));
break;
}
});
Button buttonSell = new Button("Verkaufe jetzt");
buttonSell.setOnAction(EventHandler -> {
switch (comboBoxSelect.getValue()) {
case "Opel":
this.opelStore.removeItemFromStorage(listViewStorage.getSelectionModel().getSelectedIndex());
listViewStorage.setItems(FXCollections.observableArrayList(this.opelStore.getStorageAsString()));
break;
case "Mazda":
this.mazdaStore.removeItemFromStorage(listViewStorage.getSelectionModel().getSelectedIndex());
listViewStorage.setItems(FXCollections.observableArrayList(this.mazdaStore.getStorageAsString()));
break;
case "Dacia":
this.daciaStore.removeItemFromStorage(listViewStorage.getSelectionModel().getSelectedIndex());
listViewStorage.setItems(FXCollections.observableArrayList(this.daciaStore.getStorageAsString()));
break;
}
});
comboBoxSelect.setOnAction(event -> {
switch (comboBoxSelect.getValue()) {
case "Opel":
listViewStorage.setItems(FXCollections.observableArrayList(this.opelStore.getStorageAsString()));
break;
case "Mazda":
listViewStorage.setItems(FXCollections.observableArrayList(this.mazdaStore.getStorageAsString()));
break;
case "Dacia":
listViewStorage.setItems(FXCollections.observableArrayList(this.daciaStore.getStorageAsString()));
break;
}
});
vBoxLeft.getChildren().addAll(texfieldName, texfieldBrand, texfieldWeight, texfieldSpecial, buttonBuy);
vBoxRight.getChildren().addAll(comboBoxSelect, listViewStorage, buttonSell);
this.getChildren().addAll(vBoxLeft, vBoxRight);
}
}