|
|
@@ -22,7 +22,7 @@ import org.jdesktop.swingx.VerticalLayout;
|
|
|
public class PhasePanel extends JPanel {
|
|
|
ForwardingObservableListener<Phase> listener = new ForwardingObservableListener<>();
|
|
|
|
|
|
- @Getter(AccessLevel.PACKAGE) AutoGrowPanel panelSteps;
|
|
|
+ @Getter(AccessLevel.PACKAGE) BetterAutoGrowPanel<StepPanel, Step> panelSteps;
|
|
|
|
|
|
public PhasePanel(final Phase phase) {
|
|
|
setLayout(new VerticalLayout(5));
|
|
|
@@ -31,21 +31,18 @@ public class PhasePanel extends JPanel {
|
|
|
add(new PreparationPanel(phase));
|
|
|
}
|
|
|
|
|
|
- final List<Step> steps = phase.getCooking();
|
|
|
- panelSteps = new AutoGrowPanel(StepPanel::new, Step::new,
|
|
|
- step -> {
|
|
|
- steps.add(step);
|
|
|
- listener.setObserved(phase, allChildren(phase));
|
|
|
- },
|
|
|
- i -> {
|
|
|
- steps.remove(i);
|
|
|
- listener.setObserved(phase, allChildren(phase));
|
|
|
- ObserverDispatch.notifySubscribers(phase);
|
|
|
- }, 5, steps.toArray(new Step[0]));
|
|
|
+ panelSteps = new BetterAutoGrowPanel<>(Step::new, StepPanel::new);
|
|
|
+ panelSteps.setGap(5);
|
|
|
add(panelSteps);
|
|
|
|
|
|
phase.getRest().ifPresent(rest -> add(new RestPanel(rest)));
|
|
|
|
|
|
+ panelSteps.setModel(phase.getCooking(), added -> {
|
|
|
+ listener.setObserved(phase, allChildren(phase));
|
|
|
+ if (!added) {
|
|
|
+ ObserverDispatch.notifySubscribers(phase);
|
|
|
+ }
|
|
|
+ });
|
|
|
listener.setObserved(phase, allChildren(phase));
|
|
|
}
|
|
|
|