Skip to content
Snippets Groups Projects
Select Git revision
  • 1df19198a28a4f08ea4adcf1301a735d4149f1a3
  • master default protected
2 results

Wizard.java

Blame
  • Forked from NAVES Guyslain / ProgAvExercices
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    PersistentToggleGroup.java 963 B
    package firefighter.controller;
    
    import javafx.collections.ListChangeListener.Change;
    import javafx.scene.control.Toggle;
    import javafx.scene.control.ToggleButton;
    import javafx.scene.control.ToggleGroup;
    import javafx.scene.input.MouseEvent;
    
    /**
     * An extension of {@link ToggleGroup} that ensures that a {@link Toggle} in a group must always be
     * selected.
     *
     */
    class PersistentToggleGroup extends ToggleGroup {
    
      /**
       * Creates a new {@code PersistentToggleGroup}.
       */
      PersistentToggleGroup() {
        getToggles().addListener((Change<? extends Toggle> change) -> {
          while (change.next()) {
            for (Toggle toggle : change.getAddedSubList()) {
              ToggleButton toggleButton = (ToggleButton) toggle;
              toggleButton.addEventFilter(MouseEvent.MOUSE_RELEASED, mouseEvent -> {
                if (toggleButton.equals(getSelectedToggle())) {
                  mouseEvent.consume();
                }
              });
            }
          }
        });
      }
    
    }