|
|
@@ -25,6 +25,8 @@ public class RestPanel extends JPanel {
|
|
|
ObservableListener<JFormattedTextField, Rest> upToController;
|
|
|
|
|
|
JComboBox<Rest.Where> jcbLocation;
|
|
|
+ DurationPanel panelDuration;
|
|
|
+ DurationPanel panelUpTo;
|
|
|
|
|
|
// TODO
|
|
|
Rest model;
|
|
|
@@ -51,20 +53,21 @@ public class RestPanel extends JPanel {
|
|
|
gbc_lblLocation.gridy = 0;
|
|
|
add(jcbLocation, gbc_lblLocation);
|
|
|
|
|
|
- DurationPanel panelDuration = new DurationPanel("");
|
|
|
+ panelDuration = new DurationPanel("");
|
|
|
GridBagConstraints gbc_panelDuration = new GridBagConstraints();
|
|
|
gbc_panelDuration.gridx = 2;
|
|
|
gbc_panelDuration.gridy = 0;
|
|
|
add(panelDuration, gbc_panelDuration);
|
|
|
|
|
|
- DurationPanel panelUpTo = new DurationPanel("and up to");
|
|
|
+ panelUpTo = new DurationPanel("and up to");
|
|
|
GridBagConstraints gbc_panelUpTo = new GridBagConstraints();
|
|
|
gbc_panelUpTo.gridx = 3;
|
|
|
gbc_panelUpTo.gridy = 0;
|
|
|
add(panelUpTo, gbc_panelUpTo);
|
|
|
|
|
|
jcbLocation.addItemListener(e -> {
|
|
|
- panelDuration.txtTime.setEditable(!e.getItem().equals(Rest.Where.NONE));
|
|
|
+ panelDuration.txtTime.setEditable(!isResting());
|
|
|
+ panelUpTo.txtTime.setEditable(!isResting());
|
|
|
this.model.setWhere(Rest.Where.class.cast(e.getItem()));
|
|
|
});
|
|
|
durationController = ObservableController.from(panelDuration.txtTime,
|
|
|
@@ -73,6 +76,7 @@ public class RestPanel extends JPanel {
|
|
|
Rest::getUpTo, Rest::setUpTo);
|
|
|
|
|
|
panelDuration.txtTime.setEditable(false);
|
|
|
+ panelUpTo.txtTime.setEditable(false);
|
|
|
}
|
|
|
|
|
|
public RestPanel(final Rest rest) {
|
|
|
@@ -87,10 +91,22 @@ public class RestPanel extends JPanel {
|
|
|
upToController.setObserved(rest);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void setEnabled(boolean enabled) {
|
|
|
+ super.setEnabled(enabled);
|
|
|
+ jcbLocation.setEnabled(enabled);
|
|
|
+ panelDuration.txtTime.setEditable(enabled && !isResting());
|
|
|
+ panelUpTo.txtTime.setEditable(enabled && !isResting());
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void removeNotify() {
|
|
|
super.removeNotify();
|
|
|
ObserverDispatch.unsubscribeAll(durationController);
|
|
|
}
|
|
|
|
|
|
+ private boolean isResting() {
|
|
|
+ return jcbLocation.getSelectedItem().equals(Rest.Where.NONE);
|
|
|
+ }
|
|
|
+
|
|
|
}
|