feat: ingredient cell
This commit is contained in:
parent
bdf6f71c01
commit
4c04756920
1 changed files with 66 additions and 0 deletions
|
|
@ -0,0 +1,66 @@
|
||||||
|
package client.scenes.recipe;
|
||||||
|
|
||||||
|
import javafx.scene.control.ListCell;
|
||||||
|
import javafx.scene.control.TextField;
|
||||||
|
|
||||||
|
public class IngredientListCell extends ListCell<String> {
|
||||||
|
@Override
|
||||||
|
protected void updateItem(String item, boolean empty) {
|
||||||
|
super.updateItem(item, empty);
|
||||||
|
|
||||||
|
if (empty || item == null) {
|
||||||
|
this.setText(null);
|
||||||
|
} else {
|
||||||
|
this.setText(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void startEdit() {
|
||||||
|
super.startEdit();
|
||||||
|
|
||||||
|
TextField textField = new TextField(this.getItem());
|
||||||
|
|
||||||
|
// Commit edit on Enter key press
|
||||||
|
textField.setOnAction(event -> {
|
||||||
|
this.commitEdit(textField.getText());
|
||||||
|
});
|
||||||
|
|
||||||
|
// Cancel edit on Escape key press
|
||||||
|
textField.setOnKeyReleased(event -> {
|
||||||
|
switch (event.getCode()) {
|
||||||
|
case ESCAPE:
|
||||||
|
this.cancelEdit();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this.setText(null);
|
||||||
|
this.setGraphic(textField);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isInputValid(String input) {
|
||||||
|
return input != null && !input.trim().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void cancelEdit() {
|
||||||
|
super.cancelEdit();
|
||||||
|
|
||||||
|
this.setText(this.getItem());
|
||||||
|
this.setGraphic(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void commitEdit(String newValue) {
|
||||||
|
this.setGraphic(null);
|
||||||
|
|
||||||
|
if (!isInputValid(newValue)) {
|
||||||
|
newValue = this.getItem(); // Revert to old value if input is invalid
|
||||||
|
}
|
||||||
|
|
||||||
|
super.commitEdit(newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue