control.Xray.java Source code

Java tutorial

Introduction

Here is the source code for control.Xray.java

Source

/*
 * 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 control;

import control.comparators.*;
import dbc.DatabaseConnection;
import exceptions.ControlException;
import exceptions.DatabaseException;
import technicalServices.persistence.TimeInvestmentHandler;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.geometry.Rectangle2D;
import javafx.scene.control.ComboBox;
import javafx.stage.Screen;
import model.Employee;
import model.LimitQualification;
import model.Room;
import model.RoomQualification;
import model.TimeInvestment;
import model.TimePeriod;
import org.joda.time.DateTimeFieldType;
import org.joda.time.LocalDateTime;
import view.popups.DatabasePopup;

/**
 *
 * @author Yousef
 */
public class Xray {

    private static Xray Instance;
    private RoomControl roomControl;
    private QualificationControl qualificationControl;
    private PersonControl personControl;
    private TimePeriodControl timePeriodControl;
    private TimeInvestmentControl timeInvestmentControl;
    private Connection databaseConnection;

    private Xray() throws DatabaseException {
        roomControl = new RoomControl();
        qualificationControl = new QualificationControl();
        personControl = new PersonControl();
        timePeriodControl = new TimePeriodControl();
        timeInvestmentControl = new TimeInvestmentControl();
    }

    public void createConnection() throws DatabaseException {
        //Opret forbindelse til databasen

        if (!DatabaseConnection.getInstance().hasConnection()) {
            System.out.println("heheheh");
            DatabaseConnection.getInstance().createConnection();
            roomControl = new RoomControl();
            qualificationControl = new QualificationControl();
            personControl = new PersonControl();

        }

        databaseConnection = DatabaseConnection.getInstance().getConnection();

    }

    public static Xray getInstance() {
        if (Instance == null) {
            try {
                Instance = new Xray();
            } catch (DatabaseException ex) {

            }
        }
        return Instance;
    }

    public RoomControl getRoomControl() {
        return roomControl;
    }

    public void setRoomControl(RoomControl roomControl) {
        this.roomControl = roomControl;
    }

    public QualificationControl getQualificationControl() {
        return qualificationControl;
    }

    public void setQualificationControl(QualificationControl qualificationControl) {
        this.qualificationControl = qualificationControl;
    }

    public PersonControl getPersonControl() {
        return personControl;
    }

    public TimePeriodControl getTimePeriodControl() {
        return timePeriodControl;
    }

    public void setTimePeriodControl(TimePeriodControl timePeriodControl) {
        this.timePeriodControl = timePeriodControl;
    }

    public TimeInvestmentControl getTimeInvestmentControl() {
        return timeInvestmentControl;
    }

    public void setTimeInvestmentControl(TimeInvestmentControl timeInvestmentControl) {
        this.timeInvestmentControl = timeInvestmentControl;
    }

    /**
     * Tjekker om en given dato er i en given tidsperiode.
     *
     * @param dateTime metoden returnerer sand, hvis denne parameter ligger i
     * den givne periode.
     * @param periodStart definerer periodens start.
     * @param periodEnd definerer periodens slutning.
     * @return
     */
    public boolean isDateInPeriod(LocalDateTime dateTime, LocalDateTime periodStart, LocalDateTime periodEnd) {
        boolean inPeriod = false;

        if (dateTime.isEqual(periodStart) || (dateTime.isBefore(periodEnd) && dateTime.isAfter(periodStart))) {
            inPeriod = true;
        }

        return inPeriod;
    }

    public ArrayList<LocalDateTime> getDatesInPeriod(LocalDateTime startTime, LocalDateTime endTime) {
        ArrayList<LocalDateTime> dates = new ArrayList<>();
        LocalDateTime currentDate = new LocalDateTime(startTime);
        currentDate = currentDate.withHourOfDay(0);
        currentDate = currentDate.withMinuteOfHour(0);

        while (currentDate.isBefore(endTime)) {
            dates.add(currentDate);
            currentDate = currentDate.plusDays(1);
        }

        return dates;
    }

    public void fillDatesInEndDate(ComboBox cEnd, ComboBox cStart, int monthsforward) {
        //Fyld datoer ind i comboboks til start og slutdato:
        LocalDateTime now = new LocalDateTime(cStart.getValue());
        LocalDateTime oneMonthForward = now.plusMonths(monthsforward);
        ArrayList<LocalDateTime> startDates = Xray.getInstance().getDatesInPeriod(now.plusDays(1), oneMonthForward);
        cEnd.getItems().clear();
        for (int i = 0; i < startDates.size(); i++) {
            cEnd.getItems().add(startDates.get(i));
        }
        cEnd.getSelectionModel().selectFirst();
    }

}