Skip to content
Snippets Groups Projects
Select Git revision
  • 0e6314ed5f6e948a0990e6fa1e38d0c4448b149d
  • main default protected
2 results

Compiler.java

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    PersistentToggleGroup.java 951 B
    package 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();
                }
              });
            }
          }
        });
      }
    
    }