package ru.testing.client.elements.http.settings;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import org.controlsfx.control.PopOver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.testing.client.controllers.HttpSettingsController;
import java.io.IOException;
import static ru.testing.client.MainApp.getMainController;
/**
* Http setting pop over
*/
public class HttpSettingsPopOver extends PopOver {
private static final Logger LOGGER = LoggerFactory.getLogger(HttpSettingsPopOver.class);
private HttpSettingsController httpSettingsController;
public HttpSettingsPopOver() {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/popover.http.settings.fxml"));
Parent root = loader.load();
httpSettingsController = loader.getController();
setContentNode(root);
} catch (IOException e) {
LOGGER.error("Error load headers pop over: {}", e.getMessage());
}
// Pop over settings
setDetachable(false);
setArrowLocation(PopOver.ArrowLocation.TOP_LEFT);
setOnHidden(event -> {
getMainController().getHttpSettings().setSelected(false);
httpSettingsController.getHeadersListView().getSelectionModel().clearSelection();
httpSettingsController.getParametersListView().getSelectionModel().clearSelection();
});
}
/**
* Get headers controller
*
* @return HttpSettingsController
*/
public HttpSettingsController getHttpSettingsController() {
return httpSettingsController;
}
}