/** * Invoked when an action occurs. * * @param evt */ @Override public void perform(ActionEvent evt) { boolean b = Conf.getBoolean(Const.CONF_STATE_REPEAT); UtilGUI.setRepeatSingleGui(!b); QueueModel.setRepeatModeToAll(false); if (!b) { // enabled button // if FIFO is not void, repeat over current item StackItem item = QueueModel.getCurrentItem(); if (item != null) { item.setRepeat(true); } } else { // disable repeat mode if (Conf.getBoolean(Const.CONF_DROP_PLAYED_TRACKS_FROM_QUEUE)) { // remove tracks before current position QueueModel.remove(0, QueueModel.getIndex() - 1); QueueModel.setIndex(0); // select first track } } // computes planned tracks QueueModel.computesPlanned(false); // Refresh Queue View ObservationManager.notify(new JajukEvent(JajukEvents.QUEUE_NEED_REFRESH)); }