package ru.testing.client.elements.filter; import javafx.scene.control.ListView; import javafx.scene.control.SelectionMode; import org.controlsfx.control.PopOver; import ru.testing.client.controllers.TabWsMessagesController; /** * Filters list pop over */ public class FilterListPopOver extends PopOver { private TabWsMessagesController messagesController; public FilterListPopOver(TabWsMessagesController messagesController) { this.messagesController = messagesController; setDetachable(false); setArrowLocation(PopOver.ArrowLocation.BOTTOM_RIGHT); setOnHidden((event -> messagesController.getFilterListBtn().setSelected(false))); setContentNode(getList()); } /** * Get filter list view * * @return ListView<String> */ private ListView<String> getList() { ListView<String> list = new ListView<>(); list.getSelectionModel().setSelectionMode(SelectionMode.SINGLE); list.setMaxHeight(150); list.setMaxWidth(300); list.setStyle("-fx-focus-color: transparent;" + "-fx-faint-focus-color: transparent;" + "-fx-border-radius: 2px; " + "-fx-padding: 7px 1px"); list.setItems(messagesController.getFilterList()); list.setCellFactory(listView -> new FilterCellFactory(messagesController.getFilterList())); return list; } }