package ru.testing.client.elements.http.settings;
import javafx.collections.ObservableList;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.ListCell;
import ru.testing.client.common.objects.Header;
import ru.testing.client.elements.ContextMenuItems;
/**
* Header cell factory
*/
public class HeadersCellFactory extends ListCell<Header> {
private ObservableList<Header> list;
public HeadersCellFactory(ObservableList<Header> list) {
this.list = list;
}
@Override
protected void updateItem(Header header, boolean empty) {
super.updateItem(header, empty);
if (header != null) {
setText(String.format("%s: %s", header.getName(), header.getValue()));
setContextMenu(getHeaderContextMenu(this));
} else {
setText(null);
setGraphic(null);
}
}
/**
* Context menu for headers view
*
* @return ContextMenu
*/
private ContextMenu getHeaderContextMenu(ListCell<Header> cell) {
ContextMenu contextMenu = new ContextMenu();
ContextMenuItems m = new ContextMenuItems();
contextMenu.getItems().addAll(
m.removeCell(cell),
m.clearListView(list)
);
return contextMenu;
}
}