|
@@ -4,12 +4,14 @@ import javax.swing.JPanel;
|
|
|
import javax.swing.JScrollPane;
|
|
import javax.swing.JScrollPane;
|
|
|
|
|
|
|
|
import org.leumasjaffe.observer.ForwardingObservableListener;
|
|
import org.leumasjaffe.observer.ForwardingObservableListener;
|
|
|
|
|
+import org.leumasjaffe.observer.ObservableController;
|
|
|
import org.leumasjaffe.observer.ObservableListener;
|
|
import org.leumasjaffe.observer.ObservableListener;
|
|
|
import org.leumasjaffe.observer.ObserverDispatch;
|
|
import org.leumasjaffe.observer.ObserverDispatch;
|
|
|
import org.leumasjaffe.recipe.model.Phase;
|
|
import org.leumasjaffe.recipe.model.Phase;
|
|
|
import org.leumasjaffe.recipe.model.Element;
|
|
import org.leumasjaffe.recipe.model.Element;
|
|
|
|
|
|
|
|
import lombok.AccessLevel;
|
|
import lombok.AccessLevel;
|
|
|
|
|
+import lombok.Getter;
|
|
|
import lombok.experimental.FieldDefaults;
|
|
import lombok.experimental.FieldDefaults;
|
|
|
|
|
|
|
|
import org.jdesktop.swingx.VerticalLayout;
|
|
import org.jdesktop.swingx.VerticalLayout;
|
|
@@ -29,10 +31,11 @@ import javax.swing.Box;
|
|
|
@SuppressWarnings("serial")
|
|
@SuppressWarnings("serial")
|
|
|
@FieldDefaults(level=AccessLevel.PRIVATE)
|
|
@FieldDefaults(level=AccessLevel.PRIVATE)
|
|
|
public class ElementPanel extends JScrollPane {
|
|
public class ElementPanel extends JScrollPane {
|
|
|
- ObservableListener<CollatedDurationPanel, Element> durationListener;
|
|
|
|
|
ForwardingObservableListener<Element> listener = new ForwardingObservableListener<>();
|
|
ForwardingObservableListener<Element> listener = new ForwardingObservableListener<>();
|
|
|
|
|
+ ObservableListener<JTextField, Element> nameListener;
|
|
|
|
|
+ ObservableListener<CollatedDurationPanel, Element> durationListener;
|
|
|
|
|
|
|
|
- JTextField txtName;
|
|
|
|
|
|
|
+ @Getter(AccessLevel.PACKAGE) JTextField txtName;
|
|
|
JPanel panelViewPort;
|
|
JPanel panelViewPort;
|
|
|
|
|
|
|
|
public ElementPanel() {
|
|
public ElementPanel() {
|
|
@@ -73,7 +76,9 @@ public class ElementPanel extends JScrollPane {
|
|
|
panelViewPort = new JPanel();
|
|
panelViewPort = new JPanel();
|
|
|
setViewportView(panelViewPort);
|
|
setViewportView(panelViewPort);
|
|
|
panelViewPort.setLayout(new VerticalLayout(5));
|
|
panelViewPort.setLayout(new VerticalLayout(5));
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
+ nameListener = ObservableController.from(txtName,
|
|
|
|
|
+ Element::getName, Element::setName);
|
|
|
durationListener = new ObservableListener<>(panelDuration,
|
|
durationListener = new ObservableListener<>(panelDuration,
|
|
|
(c, v) -> c.setModel(v.getCollatedDuration()));
|
|
(c, v) -> c.setModel(v.getCollatedDuration()));
|
|
|
}
|
|
}
|
|
@@ -84,8 +89,6 @@ public class ElementPanel extends JScrollPane {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public void setModel(final Element element) {
|
|
public void setModel(final Element element) {
|
|
|
- txtName.setText(element.getName());
|
|
|
|
|
-
|
|
|
|
|
panelViewPort.removeAll();
|
|
panelViewPort.removeAll();
|
|
|
for (final Phase phase : element.getPhases()) {
|
|
for (final Phase phase : element.getPhases()) {
|
|
|
panelViewPort.add(new PhasePanel(phase));
|
|
panelViewPort.add(new PhasePanel(phase));
|
|
@@ -93,6 +96,7 @@ public class ElementPanel extends JScrollPane {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
listener.setObserved(element, element.getPhases());
|
|
listener.setObserved(element, element.getPhases());
|
|
|
|
|
+ nameListener.setObserved(element);
|
|
|
durationListener.setObserved(element);
|
|
durationListener.setObserved(element);
|
|
|
}
|
|
}
|
|
|
|
|
|