Install any skill in seconds. Free to start, no credit card required.
Get Started Free →johannesrabauer/javafx-forms-validation-preferences
Build JavaFX forms, validation flows, suggestion inputs, and preferences screens with clear state ownership.
Passed 0 of 22 test cases with the skill, and 22 of 22 without it.
1 fixed18 passed either way1 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
A test case the skill fixed. Same model, same prompt, with and without the skill.
To keep my JavaFX form synchronized with my domain object, I plan to use bidirectional bindings (`bindBidirectional`) everywhere between UI text properties and data model properties. What potential architectural issue should I be aware of with this pattern?
| Checked | Without skill | With skill |
|---|---|---|
| The response highlights that bidirectional bindings make it unclear which layer owns the authoritative form value. | Missed | Passed |
The instructions your model reads when the skill loads.
Use this skill when the application needs structured data entry, validation feedback, settings screens, or preference persistence. This is the focused slice left after splitting broader ecosystem-oriented concerns into their own skills.
import java.util.prefs.Preferences;
import javafx.beans.binding.Bindings;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.VBox;
public class SettingsForm extends VBox {
private final Preferences preferences = Preferences.userNodeForPackage(SettingsForm.class);
public SettingsForm() {
var endpointField = new TextField(preferences.get("endpoint", ""));
var errorLabel = new Label();
var saveButton = new Button("Save");
errorLabel.textProperty().bind(
Bindings.when(endpointField.textProperty().isEmpty())
.then("Endpoint is required")
.otherwise("")
);
saveButton.disableProperty().bind(endpointField.textProperty().isEmpty());
saveButton.setOnAction(event -> preferences.put("endpoint", endpointField.getText()));
getChildren().addAll(new Label("API Endpoint"), endpointField, errorLabel, saveButton);
}
}
test cases passed, vs 22 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.