From caeb2fca8445582651d184820b8d82b1ef7394bb Mon Sep 17 00:00:00 2001 From: Arne Keller Date: Fri, 12 Mar 2021 11:22:37 +0100 Subject: [PATCH] Limit scope of close shortcut in type assumptions --- .../view/main/TypeAssumptionsArea.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/main/java/edu/kit/typicalc/view/main/TypeAssumptionsArea.java b/src/main/java/edu/kit/typicalc/view/main/TypeAssumptionsArea.java index b96ed73..81c2aa8 100644 --- a/src/main/java/edu/kit/typicalc/view/main/TypeAssumptionsArea.java +++ b/src/main/java/edu/kit/typicalc/view/main/TypeAssumptionsArea.java @@ -51,7 +51,7 @@ public class TypeAssumptionsArea extends Dialog implements LocaleChangeObserver private final Button saveAssumptions; private final Notification invalidInputNotification; private final Label hintLabel; - + private final List fields = new ArrayList<>(); /** @@ -62,19 +62,19 @@ public class TypeAssumptionsArea extends Dialog implements LocaleChangeObserver protected TypeAssumptionsArea(Map types) { heading = new H3(""); invalidInputNotification = createInvInputNotification(); - + VerticalLayout layout = new VerticalLayout(); layout.setId(ASS_LAYOUT_ID); + assumptionContainer = new VerticalLayout(); + assumptionContainer.setId(ASS_CONTAINER_ID); + addAssumption = new Button("", new Icon(VaadinIcon.PLUS_CIRCLE)); deleteAll = new Button("", new Icon(VaadinIcon.TRASH)); saveAssumptions = new Button(getTranslation("root.save"), event -> closeAction()); HorizontalLayout buttons = makeButtons(); buttons.setId(ASS_BUTTONS_ID); - assumptionContainer = new VerticalLayout(); - assumptionContainer.setId(ASS_CONTAINER_ID); - hintLabel = new Label(""); hintLabel.setId(HINT_ID); @@ -86,10 +86,10 @@ public class TypeAssumptionsArea extends Dialog implements LocaleChangeObserver // attach and trigger javascript event listener after reopening the dialog addOpenedChangeListener(this::onOpenedChange); } - + private void onOpenedChange(OpenedChangeEvent event) { if (event.isOpened()) { - fields.forEach(TypeAssumptionField::refresh); + fields.forEach(TypeAssumptionField::refresh); } } @@ -104,7 +104,7 @@ public class TypeAssumptionsArea extends Dialog implements LocaleChangeObserver invalidInputNotification.close(); this.close(); } - + private Notification createInvInputNotification() { Notification notification = new Notification(); notification.addThemeVariants(NotificationVariant.LUMO_ERROR); @@ -112,7 +112,7 @@ public class TypeAssumptionsArea extends Dialog implements LocaleChangeObserver notification.setDuration(5000); // set the duration to 5 seconds return notification; } - + private HorizontalLayout makeHeader() { HorizontalLayout headingLayout = new HorizontalLayout(); headingLayout.setId(HEADING_LAYOUT_ID); @@ -134,10 +134,11 @@ public class TypeAssumptionsArea extends Dialog implements LocaleChangeObserver deleteAll.setIconAfterText(true); deleteAll.addThemeVariants(ButtonVariant.LUMO_ERROR); saveAssumptions.addThemeVariants(ButtonVariant.LUMO_SUCCESS); - saveAssumptions.addClickShortcut(Key.ENTER); + saveAssumptions.addClickShortcut(Key.ENTER).listenOn(assumptionContainer); buttons.add(addAssumption, deleteAll, saveAssumptions); return buttons; } + /** * Creates a new empty TypeAssumptionsArea. */