package tk.captainsplexx.JavaFX.Windows;
import java.io.IOException;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import javafx.util.Callback;
import tk.captainsplexx.Game.Core;
import tk.captainsplexx.JavaFX.JavaFXHandler;
import tk.captainsplexx.JavaFX.CellFactories.ModLoaderListFactory;
import tk.captainsplexx.JavaFX.Controller.ModLoaderController;
import tk.captainsplexx.Mod.Mod;
public class ModLoaderWindow {
private Stage stage;
private Scene scene;
private FXMLLoader loader;
private Parent parent;
private ModLoaderController controller;
public ModLoaderWindow() {
try {
loader = new FXMLLoader(getClass().getResource("ModLoaderWindow.fxml")); //not static to access controller class
parent = loader.load();
controller = loader.getController();
} catch (IOException e) {
e.printStackTrace();
}
stage = new Stage();
Scene sceneModLoader = new Scene(parent, 800, 600);
stage.setTitle("FrostBite 3 Tools "+Core.buildVersion);
stage.setScene(sceneModLoader);
stage.getIcons().add(JavaFXHandler.applicationIcon16);
stage.getIcons().add(JavaFXHandler.applicationIcon32);
stage.hide();
stage.setResizable(false);
stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
@Override
public void handle(WindowEvent e) {
Core.keepAlive(false);
}
});
controller.getList().setCellFactory(new Callback<ListView<Mod>, ListCell<Mod>>() {
@Override
public ListCell<Mod> call(ListView<Mod> list) {
return new ModLoaderListFactory();
}
});
controller.getRunEditor().setDisable(true);
}
public Stage getStage() {
return stage;
}
public Scene getScene() {
return scene;
}
public FXMLLoader getLoader() {
return loader;
}
public Parent getParent() {
return parent;
}
public ModLoaderController getController() {
return controller;
}
}