Я хотел бы иметь эту функцию в моей программе:
У меня будет поле ввода пользователя. Когда пользователь нажал кнопку, она будет добавлена в список, и ввод будет показан пользователю.
Проблема в том, что я хотел бы отменить выбор / удалить эти входные данные, если пользователь хочет. Я не смог этого добиться.
Вот код, который я написал до сих пор, я удалил некоторые функции, ненужные для объема вопроса:
public class AddUserInput extends VerticalLayout{
// The user input will be added to the this list
// later, this list will be sent to the server for some verification
private List<String> emails;
private HorizontalLayout content;
private VerticalLayout rows;
// user input field
private TextField emailField = new TextField("Enter email address");
public AddUserInput() {
content = new HorizontalLayout();
rows = new VerticalLayout();
content.setMargin(true);
Button addToListButton= new Button("Add to list");
addToListButton.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
// When the user clicks add to list button
// The raw input will be added to the emails list
// The UI component is added to 'rows' component
rows.addComponent(addNewRow(emailField.getValue()));
}
});
content.addComponents(emailField, addToListButton, rows);
addComponent(content);
}
public Component addNewRow(String email){
HorizontalLayout newRow = new HorizontalLayout();
Button deleteRowButton = new Button("-");
deleteRowButton.addClickListener(new Button.ClickListener() {
@Override
public void buttonClick(Button.ClickEvent event) {
// I can delete from the UI by using the code below
newRow.removeAllComponents();
rows.removeComponent(newRow);
// How to remove from the email list???
}
});
emails.add(emailField.getValue());
Label lastEmail = new Label(emailField.getValue());
emailField.clear();
newRow.addComponents(lastEmail,deleteRowButton);
return newRow;
}
}
Есть ли какой-либо компонент / библиотека, которая выполняет эту функцию?
Мне нужно только текстовое поле, и добавление ввода в список, и удаление элемента списка, если пользователь хочет.
Визуализация кода выше: