package ru.testing.client.elements.tabs;
import javafx.collections.ObservableList;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.control.*;
import javafx.scene.image.ImageView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.testing.client.MainApp;
import ru.testing.client.common.objects.ReceivedMessage;
import ru.testing.client.controllers.TabWsMessageController;
import ru.testing.client.controllers.MainController;
import java.io.IOException;
/**
* Tab with detail message
*/
public class WsMessageTab extends Tab {
private static final Logger LOGGER = LoggerFactory.getLogger(SettingsTab.class.getName());
public WsMessageTab(final ReceivedMessage item) {
MainController mainController = MainApp.getMainController();
ObservableList<Tab> tabsList = mainController.getTabPane().getTabs();
if (item != null) {
// Setup tab
setText("WS Message");
setGraphic(new ImageView("/images/message.png"));
// Load detail message view form
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/tab.ws.message.fxml"));
Parent root = loader.load();
TabWsMessageController controller = loader.getController();
controller.setMessage(item);
setContent(root);
} catch (IOException e) {
LOGGER.error("Error load view form: {}", e.getMessage());
}
// Setup new tab with content in tabPane
SingleSelectionModel<Tab> selectTabModel = mainController.getTabPane().getSelectionModel();
tabsList.add(this);
selectTabModel.select(this);
}
}
}