test_class.declarator: mockGazePlay
test_class.modifier: @Mock
test_class.original_string: @Mock
      GazePlay mockGazePlay;
test_class.type: GazePlay
test_class.var_name: mockGazePlay
test_class.declarator: mockTranslator
test_class.modifier: @Mock
test_class.original_string: @Mock
      Translator mockTranslator;
test_class.type: Translator
test_class.var_name: mockTranslator
test_class.declarator: mockMusicManager
test_class.modifier: @Mock
test_class.original_string: @Mock
      BackgroundMusicManager mockMusicManager;
test_class.type: BackgroundMusicManager
test_class.var_name: mockMusicManager
test_class.declarator: mockVolumeSlider
test_class.original_string: Slider mockVolumeSlider;
test_class.type: Slider
test_class.var_name: mockVolumeSlider
test_class.declarator: musicControl
test_class.modifier: private
test_class.original_string: private MusicControl musicControl;
test_class.type: MusicControl
test_class.var_name: musicControl
test_class.file: gazeplay-core/src/test/java/net/gazeplay/ui/MusicControlTest.java
test_class.identifier: MusicControlTest
test_case.body: @Test
      void shouldMuteVolumeWhenMuteButtonPressed() {
          mockVolumeSlider.setValue(0.5);
          StackPane result = (StackPane) musicControl.createMuteSwitchButton(mockVolumeSlider);
  
          Button mute = (Button) result.getChildren().get(0);
          mute.fire();
  
          assertEquals(0, mockVolumeSlider.getValue());
      }
test_case.class_method_signature: MusicControlTest.shouldMuteVolumeWhenMuteButtonPressed()
test_case.full_signature: @Test void shouldMuteVolumeWhenMuteButtonPressed()
test_case.identifier: shouldMuteVolumeWhenMuteButtonPressed
test_case.invocations: setValue createMuteSwitchButton get getChildren fire assertEquals getValue
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldMuteVolumeWhenMuteButtonPressed()
focal_class.declarator: RESOURCES_PATH = "data/common"
focal_class.modifier: private static final
focal_class.original_string: private static final String RESOURCES_PATH = "data/common";
focal_class.type: String
focal_class.var_name: RESOURCES_PATH
focal_class.declarator: IMAGES_PATH = RESOURCES_PATH + "/" + "images"
focal_class.modifier: private static final
focal_class.original_string: private static final String IMAGES_PATH = RESOURCES_PATH + "/" + "images";
focal_class.type: String
focal_class.var_name: IMAGES_PATH
focal_class.declarator: PREVIOUS_ICON = IMAGES_PATH + "/" + "previous.png"
focal_class.modifier: private static final
focal_class.original_string: private static final String PREVIOUS_ICON = IMAGES_PATH + "/" + "previous.png";
focal_class.type: String
focal_class.var_name: PREVIOUS_ICON
focal_class.declarator: NEXT_ICON = IMAGES_PATH + "/" + "skip.png"
focal_class.modifier: private static final
focal_class.original_string: private static final String NEXT_ICON = IMAGES_PATH + "/" + "skip.png";
focal_class.type: String
focal_class.var_name: NEXT_ICON
focal_class.declarator: PAUSE_ICON = IMAGES_PATH + "/" + "pause.png"
focal_class.modifier: private static final
focal_class.original_string: private static final String PAUSE_ICON = IMAGES_PATH + "/" + "pause.png";
focal_class.type: String
focal_class.var_name: PAUSE_ICON
focal_class.declarator: PLAY_ICON = IMAGES_PATH + "/" + "play-button.png"
focal_class.modifier: private static final
focal_class.original_string: private static final String PLAY_ICON = IMAGES_PATH + "/" + "play-button.png";
focal_class.type: String
focal_class.var_name: PLAY_ICON
focal_class.declarator: SPEAKER_ICON = IMAGES_PATH + "/" + "speaker.png"
focal_class.modifier: private static final
focal_class.original_string: private static final String SPEAKER_ICON = IMAGES_PATH + "/" + "speaker.png";
focal_class.type: String
focal_class.var_name: SPEAKER_ICON
focal_class.declarator: MUTE_ICON = IMAGES_PATH + "/" + "mute.png"
focal_class.modifier: private static final
focal_class.original_string: private static final String MUTE_ICON = IMAGES_PATH + "/" + "mute.png";
focal_class.type: String
focal_class.var_name: MUTE_ICON
focal_class.declarator: autoplayExecuted = new AtomicBoolean(false)
focal_class.modifier: private static final
focal_class.original_string: private static final AtomicBoolean autoplayExecuted = new AtomicBoolean(false);
focal_class.type: AtomicBoolean
focal_class.var_name: autoplayExecuted
focal_class.declarator: gazePlay
focal_class.modifier: @Getter
      private final
focal_class.original_string: @Getter
      private final GazePlay gazePlay;
focal_class.type: GazePlay
focal_class.var_name: gazePlay
focal_class.declarator: musicName
focal_class.modifier: private
focal_class.original_string: private MarqueeText musicName;
focal_class.type: MarqueeText
focal_class.var_name: musicName
focal_class.declarator: playButton
focal_class.modifier: private
focal_class.original_string: private Button playButton;
focal_class.type: Button
focal_class.var_name: playButton
focal_class.declarator: pauseButton
focal_class.modifier: private
focal_class.original_string: private Button pauseButton;
focal_class.type: Button
focal_class.var_name: pauseButton
focal_class.declarator: beforeMutedValue
focal_class.modifier: private
focal_class.original_string: private double beforeMutedValue;
focal_class.type: double
focal_class.var_name: beforeMutedValue
focal_class.file: gazeplay-core/src/main/java/net/gazeplay/ui/MusicControl.java
focal_class.identifier: MusicControl
focal_class.class_method_signature: MusicControl.updateMusicController()
focal_class.full_signature: public void updateMusicController()
focal_class.identifier: updateMusicController
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void updateMusicController()
focal_class.class_method_signature: MusicControl.createMusicControlPane()
focal_class.full_signature: public TitledPane createMusicControlPane()
focal_class.identifier: createMusicControlPane
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: TitledPane
focal_class.signature: TitledPane createMusicControlPane()
focal_class.class_method_signature: MusicControl.createButton(@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip)
focal_class.full_signature: private Button createButton(@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip)
focal_class.identifier: createButton
focal_class.modifiers: private
focal_class.parameters: (@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip)
focal_class.return: Button
focal_class.signature: Button createButton(@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip)
focal_class.class_method_signature: MusicControl.createButton(@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip, final double imageSize)
focal_class.full_signature: private Button createButton(@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip, final double imageSize)
focal_class.identifier: createButton
focal_class.modifiers: private
focal_class.parameters: (@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip, final double imageSize)
focal_class.return: Button
focal_class.signature: Button createButton(@NonNull final String altText, @NonNull final String imagePath, @NonNull final String toolTip, final double imageSize)
focal_class.class_method_signature: MusicControl.setUpSwitchButton(final Button button)
focal_class.full_signature: private void setUpSwitchButton(final Button button)
focal_class.identifier: setUpSwitchButton
focal_class.modifiers: private
focal_class.parameters: (final Button button)
focal_class.return: void
focal_class.signature: void setUpSwitchButton(final Button button)
focal_class.class_method_signature: MusicControl.createMuteSwitchButton(final Slider volumeSlider)
focal_class.full_signature:  Node createMuteSwitchButton(final Slider volumeSlider)
focal_class.identifier: createMuteSwitchButton
focal_class.parameters: (final Slider volumeSlider)
focal_class.return: Node
focal_class.signature: Node createMuteSwitchButton(final Slider volumeSlider)
focal_class.class_method_signature: MusicControl.createMediaVolumeSlider(final Configuration config)
focal_class.full_signature: private Slider createMediaVolumeSlider(final Configuration config)
focal_class.identifier: createMediaVolumeSlider
focal_class.modifiers: private
focal_class.parameters: (final Configuration config)
focal_class.return: Slider
focal_class.signature: Slider createMediaVolumeSlider(final Configuration config)
focal_class.class_method_signature: MusicControl.createEffectsVolumeSlider(final Configuration config)
focal_class.full_signature: private Slider createEffectsVolumeSlider(final Configuration config)
focal_class.identifier: createEffectsVolumeSlider
focal_class.modifiers: private
focal_class.parameters: (final Configuration config)
focal_class.return: Slider
focal_class.signature: Slider createEffectsVolumeSlider(final Configuration config)
focal_class.class_method_signature: MusicControl.createVolumeLevelControlPane(final Configuration config, final Translator translator)
focal_class.full_signature: public TitledPane createVolumeLevelControlPane(final Configuration config, final Translator translator)
focal_class.identifier: createVolumeLevelControlPane
focal_class.modifiers: public
focal_class.parameters: (final Configuration config, final Translator translator)
focal_class.return: TitledPane
focal_class.signature: TitledPane createVolumeLevelControlPane(final Configuration config, final Translator translator)
focal_class.class_method_signature: MusicControl.setMusicTitle(final MarqueeText musicLabel)
focal_class.full_signature: private void setMusicTitle(final MarqueeText musicLabel)
focal_class.identifier: setMusicTitle
focal_class.modifiers: private
focal_class.parameters: (final MarqueeText musicLabel)
focal_class.return: void
focal_class.signature: void setMusicTitle(final MarqueeText musicLabel)
focal_method.body: Node createMuteSwitchButton(final Slider volumeSlider) {
          final Button muteButton = createButton("mute", SPEAKER_ICON, "mute", ICON_SIZE / 2d);
          final Button unmuteButton = createButton("unmute", MUTE_ICON, "unmute", ICON_SIZE / 2d);
  
          setUpSwitchButton(muteButton);
          setUpSwitchButton(unmuteButton);
  
          final boolean muted = volumeSlider.getValue() == 0;
          muteButton.setVisible(!muted);
          unmuteButton.setVisible(muted);
  
          if (muted) {
              beforeMutedValue = Configuration.DEFAULT_VALUE_MUSIC_VOLUME;
          } else {
              beforeMutedValue = volumeSlider.getValue();
          }
  
          muteButton.setOnAction((event) -> {
              beforeMutedValue = volumeSlider.getValue();
              volumeSlider.setValue(0);
          });
  
          unmuteButton.setOnAction((event) -> volumeSlider.setValue(beforeMutedValue));
  
          volumeSlider.valueProperty().addListener((observable, oldValue, newValue) -> {
              final boolean localMuted = newValue.doubleValue() == 0;
              muteButton.setVisible(!localMuted);
              unmuteButton.setVisible(localMuted);
          });
  
          return new StackPane(muteButton, unmuteButton);
      }
focal_method.class_method_signature: MusicControl.createMuteSwitchButton(final Slider volumeSlider)
focal_method.full_signature:  Node createMuteSwitchButton(final Slider volumeSlider)
focal_method.identifier: createMuteSwitchButton
focal_method.invocations: createButton createButton setUpSwitchButton setUpSwitchButton getValue setVisible setVisible getValue setOnAction getValue setValue setOnAction setValue addListener valueProperty doubleValue setVisible setVisible
focal_method.parameters: (final Slider volumeSlider)
focal_method.return: Node
focal_method.signature: Node createMuteSwitchButton(final Slider volumeSlider)