Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package pkgController;
- import java.math.BigDecimal;
- import java.net.URL;
- import java.util.Date;
- import java.util.ResourceBundle;
- import javafx.beans.value.ChangeListener;
- import javafx.beans.value.ObservableValue;
- import javafx.collections.FXCollections;
- import javafx.collections.ObservableList;
- import javafx.event.ActionEvent;
- import javafx.fxml.FXML;
- import javafx.fxml.Initializable;
- import javafx.scene.control.Button;
- import javafx.scene.control.DatePicker;
- import javafx.scene.control.Label;
- import javafx.scene.control.ListView;
- import javafx.scene.control.MenuItem;
- import javafx.scene.control.TableColumn;
- import javafx.scene.control.TableColumn.CellEditEvent;
- import javafx.scene.control.TableView;
- import javafx.scene.control.TextArea;
- import javafx.scene.control.TextField;
- import javafx.scene.control.cell.PropertyValueFactory;
- import javafx.scene.control.cell.TextFieldTableCell;
- import javafx.scene.input.MouseEvent;
- import pkgData.Car;
- import pkgData.Repair;
- import pkgMain.DatabaseClass;
- import pkgMisc.DateFormatConverter;
- /**
- *
- * @author schueler
- */
- public class FXML_MainController implements Initializable {
- @FXML
- private Label lbMessage;
- @FXML
- private Button bttnAddCar;
- @FXML
- private Button bttnUpdateCar;
- @FXML
- private Button bttnRemoveCar;
- @FXML
- private TextField txtIdCar;
- @FXML
- private TextField txtNameCar;
- @FXML
- private ListView<Car> listCars;
- @FXML
- private ListView<Repair> listRepairs;
- @FXML
- private MenuItem menuToJson;
- @FXML
- private MenuItem menuFromJson;
- @FXML
- private MenuItem menuFromBin;
- @FXML
- private MenuItem menuToBin;
- @FXML
- private MenuItem menuDeleteRepair;
- @FXML
- private MenuItem menuAddRepair;
- @FXML
- private MenuItem menuUpdateRepair;
- @FXML
- private TextField txtRepairId;
- @FXML
- private DatePicker dateRepairDate;
- @FXML
- private TextArea txtRepairText;
- @FXML
- private TextField txtRepairAmount;
- @FXML
- private TableView<Repair> tableRepairs;
- @FXML
- private TableColumn<Repair, Integer> colId;
- @FXML
- private TableColumn<Repair, Date> colDate;
- @FXML
- private TableColumn<Repair, String> colText;
- @FXML
- private TableColumn<Repair, BigDecimal> colAmount;
- @FXML
- void onEditCellAmount(CellEditEvent<Repair, String> event) {
- ((Repair) event.getTableView().getItems().get(event.getTablePosition().getRow())).setAmountRepair(new BigDecimal(event.getNewValue()));
- }
- @FXML
- void onEditCellText(CellEditEvent<Repair, String> event) {
- ((Repair) event.getTableView().getItems().get(event.getTablePosition().getRow())).setTextRepair(event.getNewValue());
- }
- @FXML
- void onRepairSelected(MouseEvent event) {
- Repair rep = listRepairs.getSelectionModel().getSelectedItem();
- this.txtRepairId.setText(Integer.toString(rep.getIdRepair()));
- this.txtRepairAmount.setText(rep.getAmountRepair().toString());
- this.dateRepairDate.setValue(rep.getDateRepair());
- this.txtRepairText.setText(rep.getTextRepair());
- lbMessage.setText(/*"Rep " +*/ rep + " selected");
- r = rep;
- }
- @FXML
- public void onSelectListCars(MouseEvent event) {
- Car car = listCars.getSelectionModel().getSelectedItem();
- if (car == null) return;
- this.txtIdCar.setText(Integer.toString(car.getIdCar()));
- this.txtNameCar.setText(car.getNameCar());
- lbMessage.setText(/*"Car " +*/ car + " selected");
- currentCar = car;
- refreshRepairList();
- }
- /*@FXML
- void onSelectListRepairs(MouseEvent event) {
- Repair rep = listRepairs.getSelectionModel().getSelectedItem();
- if (rep == null) return;
- this.txtRepairId.setText(Integer.toString(rep.getIdRepair()));
- this.txtRepairAmount.setText(rep.getAmountRepair().toString());
- this.dateRepairDate.setValue(rep.getDateRepair());
- this.txtRepairText.setText(rep.getTextRepair());
- lbMessage.setText(/*"Rep " +* rep + " selected");
- r = rep;
- } */
- @FXML
- void onSelectMenuFile(ActionEvent event) {
- try {
- if (event.getSource().equals(menuToJson)) {
- db.writeToJSON();
- } else if (event.getSource().equals(menuFromJson)) {
- db.loadFromJSON();
- refreshCarList();
- System.out.println("." + db.getAllCars());
- } else if(event.getSource().equals(menuFromBin)) {
- db.readFromBinary();
- refreshCarList();
- } else if(event.getSource().equals(menuToBin)) {
- db.writeToBinaray();
- }
- } catch (Exception e) {e.printStackTrace();}
- }
- @FXML
- void onSelectMenuRepair(ActionEvent event) {
- try {
- if(event.getSource().equals(menuAddRepair)) {
- doAddRepair();
- lbMessage.setText("repair added");
- }
- else if(event.getSource().equals(menuUpdateRepair)) {
- doUpdateRepair();
- lbMessage.setText("repair updated");
- }
- else if (event.getSource().equals(menuDeleteRepair)) {
- doRemoveRepair();
- lbMessage.setText("repair deleted");
- }
- }
- catch(Exception ex) {
- lbMessage.setText("error_" + ex.getMessage());
- }
- }
- @FXML
- void onSelectButton(ActionEvent event) {
- try {
- if(event.getSource().equals(bttnAddCar)) {
- doAddCar();
- lbMessage.setText("car added");
- }
- else if(event.getSource().equals(bttnRemoveCar)) {
- doRemoveCar();
- refreshCarList();
- lbMessage.setText("car removed");
- }
- else if(event.getSource().equals(bttnUpdateCar)) {
- doUpdateCar();
- refreshCarList();
- lbMessage.setText("car updated");
- }
- }
- catch (Exception ex) {
- lbMessage.setText("error:" + ex.getMessage());
- ex.printStackTrace();
- }
- }
- private void doAddCar() throws Exception{
- Car car = new Car (Integer.parseInt(txtIdCar.getText()), txtNameCar.getText());
- db.addCar(car);
- refreshCarList();
- }
- private void refreshCarList() {
- obsList.clear();
- obsList.addAll(db.getAllCars());
- }
- private void refreshRepairList() {
- obsListRep.clear();
- obsListRep.addAll(currentCar.getAllRepairs());
- }
- private void doUpdateCar() throws Exception{
- Car car = new Car (Integer.parseInt(txtIdCar.getText()), txtNameCar.getText());
- db.updateCar(car);
- refreshCarList();
- }
- private void doRemoveCar() throws Exception {
- Car car = new Car (Integer.parseInt(txtIdCar.getText()), txtNameCar.getText());
- db.removeCar(car);
- refreshCarList();
- }
- private void doAddRepair() throws Exception {
- Repair repair = new Repair(Integer.parseInt(txtRepairId.getText()), dateRepairDate.getValue(), txtRepairText.getText(), new BigDecimal(txtRepairAmount.getText()));
- currentCar.addRepair(repair);
- refreshRepairList();
- }
- private void doUpdateRepair() throws Exception{
- Repair repair = new Repair(Integer.parseInt(txtRepairId.getText()), dateRepairDate.getValue(), txtRepairText.getText(), new BigDecimal(txtRepairAmount.getText()));
- currentCar.updateRepair(repair);
- refreshRepairList();
- }
- private void doRemoveRepair() throws Exception {
- Repair repair= new Repair(Integer.parseInt(txtRepairId.getText()), dateRepairDate.getValue(), txtRepairText.getText(), new BigDecimal(txtRepairAmount.getText()));
- currentCar.removeRepair(repair);
- refreshRepairList();
- }
- @Override
- public void initialize(URL url, ResourceBundle rb) {
- db = DatabaseClass.newInstance();
- obsList = FXCollections.observableArrayList();
- obsListRep = FXCollections.observableArrayList();
- listCars.setItems(obsList); //no output effected => acess to graph component ok
- listRepairs.setItems(obsListRep);
- tableRepairs.setItems(obsListRep);
- dateRepairDate.setPromptText(DateFormatConverter.getPattern());
- dateRepairDate.setConverter(new DateFormatConverter());
- //make setting for number-input
- txtRepairAmount.textProperty().addListener(new ChangeListener<String>() {
- @Override
- public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue){
- if(!newValue.matches("[0-9]*\\.?[0-9]{0,2}")){
- txtRepairAmount.setText(oldValue);
- lbMessage.setText("warning: illigal number");
- }
- else {
- lbMessage.setText("");
- }
- System.out.println("..." + oldValue + "/" + newValue + "/" + observable);
- }
- });
- colId.setCellFactory(new PropertyValueFactory<>("idRepair"));
- colDate.setCellFactory(new PropertyValueFactory<>("dateRepair"));
- colText.setCellFactory(new PropertyValueFactory<>("textRepair"));
- colAmount.setCellFactory(new PropertyValueFactory<>("amountRepair"));
- colAmount.setStyle("-fx-alignement : CENTER-RIGHT");
- colText.setCellFactory(TextFieldTableCell.forTableColumn());
- colAmount.setCellValueFactory(TextFieldTableCell.forTableColumn(new BigDecimalFormatConverter()));
- }
- private ObservableList<Car> obsList;
- private ObservableList<Repair> obsListRep;
- private DatabaseClass db;
- private Car currentCar; // toDo: nur mehr ein Car
- private Repair r;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement