package nl.itopia.corendon.controller.employee;
import java.io.File;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import nl.itopia.corendon.controller.CustomerController;
import nl.itopia.corendon.data.Luggage;
import nl.itopia.corendon.data.Picture;
import nl.itopia.corendon.model.ImageModel;
import nl.itopia.corendon.model.LuggageModel;
import nl.itopia.corendon.mvc.Controller;
import java.util.List;
import javafx.stage.FileChooser;
import static nl.itopia.corendon.pdf.LuggageReportPDF.generateLuggageReportPDF;
/**
* © 2014, Biodiscus.net Robin
*/
public class DetailLuggageController extends Controller {
@FXML private Label showFoundonairport, showLabel, showColor, showBrand, showWeight,
showHeight, showNotes, showWidth, showDepth;
@FXML private Button printdetailsButton, cancelButton, markasfoundButton, editButton, deleteButton;
@FXML private ScrollPane imageScrollpane;
private VBox imageScrollContent;
private ImageModel imageModel;
private Luggage currentLuggage;
public DetailLuggageController(int luggageID) {
this(LuggageModel.getDefault().getLuggage(luggageID));
}
public DetailLuggageController(Luggage luggage) {
// Set view
registerFXML("gui/show_details_luggage.fxml");
currentLuggage = luggage;
imageModel = ImageModel.getDefault();
showFoundonairport.setText(luggage.airport.getName());
showLabel.setText(luggage.label);
showColor.setText(luggage.color.getHex());
showBrand.setText(luggage.brand.getName());
showWeight.setText(luggage.weight + " KG");
showNotes.setText(luggage.notes);
String[] dimensions = luggage.getDimensions();
showWidth.setText(dimensions[0]);
showHeight.setText(dimensions[1]);
showDepth.setText(dimensions[2] + " " + dimensions[3]);
// Set the imageScrollpane content
imageScrollContent = new VBox();
imageScrollpane.setContent(imageScrollContent);
// Get the photos
List<Picture> pictures = imageModel.getPicturesFromLuggage(luggage.getID());
for (Picture pic : pictures) {
double width = imageScrollpane.getPrefWidth() - 50;
Image image = new Image(pic.getPath(), width, 0, true, true);
imageScrollContent.getChildren().add(new ImageView(image));
}
printdetailsButton.setOnAction(this::printHandler);
cancelButton.setOnAction(this::cancelHandler);
markasfoundButton.setOnAction(this::markHandler);
// markasfoundButton.setOnAction(this::markHandler);
// editButton.setOnAction(this::editHandler);
// deleteButton.setOnAction(this::deleteHandler);
// printdetailsButton.setDisable(true);
editButton.setDisable(true);
deleteButton.setDisable(true);
}
public void printHandler(ActionEvent e) {
//SAVE FILE WITH FILECHOOSER
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Select location to save PDF.");
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("PDF", "*.pdf")
);
File file = fileChooser.showSaveDialog(view.getScene().getWindow());
System.out.println("PDF OF MANAGER REPORT SAVED");
generateLuggageReportPDF(file, currentLuggage);
}
public void markHandler(ActionEvent e) {
Pane parent = (Pane)getView().getParent();
addController(new CustomerController(currentLuggage), parent);
removeController(this);
}
public void deleteHandler(ActionEvent e) {
// Delete dialog
}
protected void editHandler(ActionEvent e) {
// Set the edit controller
Pane parent = (Pane) getView().getParent();
addController(new EditLuggageController(currentLuggage), parent);
removeController(this);
}
protected void cancelHandler(ActionEvent e) {
removeController(this);
}
}