|
|
@@ -3,11 +3,13 @@ package org.leumasjaffe.recipe.view;
|
|
|
import javax.swing.JPanel;
|
|
|
|
|
|
import org.jdesktop.swingx.VerticalLayout;
|
|
|
+import org.leumasjaffe.observer.IndirectObservableListener;
|
|
|
import org.leumasjaffe.observer.ObservableController;
|
|
|
import org.leumasjaffe.observer.ObservableListener;
|
|
|
import org.leumasjaffe.recipe.controller.ReplaceChildrenController;
|
|
|
import org.leumasjaffe.recipe.model.Duration;
|
|
|
import org.leumasjaffe.recipe.model.Ingredient;
|
|
|
+import org.leumasjaffe.recipe.model.Phase;
|
|
|
import org.leumasjaffe.recipe.model.Preparation;
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
|
@@ -27,7 +29,7 @@ import javax.swing.JFormattedTextField;
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE)
|
|
|
public class PreparationPanel extends JPanel {
|
|
|
ReplaceChildrenController<Preparation, Ingredient> controller;
|
|
|
- ObservableListener<JPanel, Preparation> childListener;
|
|
|
+ IndirectObservableListener<JPanel, Preparation> childListener;
|
|
|
ObservableListener<JFormattedTextField, Preparation> durationListener;
|
|
|
|
|
|
public PreparationPanel() {
|
|
|
@@ -87,20 +89,20 @@ public class PreparationPanel extends JPanel {
|
|
|
panelLeft.add(panelIngredients, gbc_panelIngredients);
|
|
|
|
|
|
// This indirection allows for testing of controller
|
|
|
- childListener = new ObservableListener<>(panelIngredients,
|
|
|
+ childListener = new IndirectObservableListener<>(panelIngredients,
|
|
|
(c, v) -> controller.accept(c, v));
|
|
|
durationListener = ObservableController.from(panelDuration.txtTime,
|
|
|
Preparation::getDuration, Preparation::setDuration);
|
|
|
}
|
|
|
|
|
|
- public PreparationPanel(final Preparation preparation) {
|
|
|
+ public PreparationPanel(final Phase phase) {
|
|
|
this();
|
|
|
- setModel(preparation);
|
|
|
+ setModel(phase);
|
|
|
}
|
|
|
|
|
|
- public void setModel(final Preparation preparation) {
|
|
|
- durationListener.setObserved(preparation);
|
|
|
- childListener.setObserved(preparation);
|
|
|
+ public void setModel(final Phase phase) {
|
|
|
+ durationListener.setObserved(phase.getPreparation().get());
|
|
|
+ childListener.setObserved(phase.getPreparation().get(), phase);
|
|
|
}
|
|
|
|
|
|
}
|