|
|
@@ -9,8 +9,8 @@ import java.awt.Insets;
|
|
|
import javax.swing.event.DocumentListener;
|
|
|
|
|
|
import org.leumasjaffe.observer.ObservableController;
|
|
|
+import org.leumasjaffe.observer.ObservableListener;
|
|
|
import org.leumasjaffe.observer.ObserverDispatch;
|
|
|
-import org.leumasjaffe.recipe.model.Amount;
|
|
|
import org.leumasjaffe.recipe.model.Ingredient;
|
|
|
import org.leumasjaffe.recipe.view.formatter.AmountFormatter;
|
|
|
|
|
|
@@ -25,9 +25,9 @@ import javax.swing.JLabel;
|
|
|
@SuppressWarnings("serial")
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
|
|
|
public class IngredientPanel extends JPanel implements AutoGrowPanel.DocumentListenable {
|
|
|
- ObservableController<JTextField, Ingredient> nameController;
|
|
|
- ObservableController<JFormattedTextField, Ingredient> amountController;
|
|
|
- ObservableController<JTextField, Ingredient> preparationController;
|
|
|
+ ObservableListener<JTextField, Ingredient> nameController;
|
|
|
+ ObservableListener<JFormattedTextField, Ingredient> amountController;
|
|
|
+ ObservableListener<JTextField, Ingredient> preparationController;
|
|
|
@Getter(AccessLevel.PACKAGE) JTextField txtName;
|
|
|
@Getter(AccessLevel.PACKAGE) JFormattedTextField txtAmount;
|
|
|
@Getter(AccessLevel.PACKAGE) JTextField txtPreparation;
|
|
|
@@ -80,16 +80,12 @@ public class IngredientPanel extends JPanel implements AutoGrowPanel.DocumentLis
|
|
|
|
|
|
// I technically don't need to listen here as of this change,
|
|
|
// but if I ever restore support for it, it will be convenient.
|
|
|
- nameController = new ObservableController<>(txtName,
|
|
|
- Ingredient::getName, Ingredient::setName,
|
|
|
- JTextField::setText);
|
|
|
- amountController = new ObservableController<>(txtAmount,
|
|
|
- ing -> ing.getAmount().toString(),
|
|
|
- (ing, str) -> ing.setAmount(new Amount(str)),
|
|
|
- (c, str) -> c.setValue(new Amount(str)));
|
|
|
- preparationController = new ObservableController<>(txtPreparation,
|
|
|
- Ingredient::getPreparation, Ingredient::setPreparation,
|
|
|
- JTextField::setText);
|
|
|
+ nameController = ObservableController.from(txtName,
|
|
|
+ Ingredient::getName, Ingredient::setName);
|
|
|
+ amountController = ObservableController.from(txtAmount,
|
|
|
+ Ingredient::getAmount, Ingredient::setAmount);
|
|
|
+ preparationController = ObservableController.from(txtPreparation,
|
|
|
+ Ingredient::getPreparation, Ingredient::setPreparation);
|
|
|
}
|
|
|
|
|
|
public IngredientPanel(final Ingredient ingredient) {
|