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.HttpParameter;
import ru.testing.client.elements.ContextMenuItems;
/**
* Http parameters cell factory
*/
public class HttpParametersCellFactory extends ListCell<HttpParameter> {
private ObservableList<HttpParameter> list;
public HttpParametersCellFactory(ObservableList<HttpParameter> list) {
this.list = list;
}
@Override
protected void updateItem(HttpParameter parameter, boolean empty) {
super.updateItem(parameter, empty);
if (parameter != null) {
setText(String.format("%s=%s", parameter.getName(), parameter.getValue()));
setContextMenu(getHeaderContextMenu(this));
} else {
setText(null);
setGraphic(null);
}
}
/**
* Context menu for http parameters view
*
* @return ContextMenu
*/
private ContextMenu getHeaderContextMenu(ListCell<HttpParameter> cell) {
ContextMenu contextMenu = new ContextMenu();
ContextMenuItems m = new ContextMenuItems();
contextMenu.getItems().addAll(
m.removeCell(cell),
m.clearListView(list)
);
return contextMenu;
}
}