/*
* Created on 18-dic-2005
*
* TODO To change the template for this generated file go to Window -
* Preferences - Java - Code Style - Code Templates
*/
package org.herac.tuxguitar.gui.actions;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.herac.tuxguitar.gui.actions.caret.GoDownAction;
import org.herac.tuxguitar.gui.actions.caret.GoLeftAction;
import org.herac.tuxguitar.gui.actions.caret.GoRightAction;
import org.herac.tuxguitar.gui.actions.caret.GoUpAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeClefAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeInfoAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeKeySignatureAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeTempoAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeTimeSignatureAction;
import org.herac.tuxguitar.gui.actions.composition.ChangeTripletFeelAction;
import org.herac.tuxguitar.gui.actions.duration.ChangeDivisionTypeAction;
import org.herac.tuxguitar.gui.actions.duration.ChangeDottedDurationAction;
import org.herac.tuxguitar.gui.actions.duration.ChangeDoubleDottedDurationAction;
import org.herac.tuxguitar.gui.actions.duration.DecrementDurationAction;
import org.herac.tuxguitar.gui.actions.duration.IncrementDurationAction;
import org.herac.tuxguitar.gui.actions.duration.SetEighthDurationAction;
import org.herac.tuxguitar.gui.actions.duration.SetHalfDurationAction;
import org.herac.tuxguitar.gui.actions.duration.SetQuarterDurationAction;
import org.herac.tuxguitar.gui.actions.duration.SetSixteenthDurationAction;
import org.herac.tuxguitar.gui.actions.duration.SetSixtyFourthDurationAction;
import org.herac.tuxguitar.gui.actions.duration.SetThirtySecondDurationAction;
import org.herac.tuxguitar.gui.actions.duration.SetWholeDurationAction;
import org.herac.tuxguitar.gui.actions.edit.RedoAction;
import org.herac.tuxguitar.gui.actions.edit.SetMouseModeEditionAction;
import org.herac.tuxguitar.gui.actions.edit.SetMouseModeSelectionAction;
import org.herac.tuxguitar.gui.actions.edit.SetNaturalKeyAction;
import org.herac.tuxguitar.gui.actions.edit.SetVoice1Action;
import org.herac.tuxguitar.gui.actions.edit.SetVoice2Action;
import org.herac.tuxguitar.gui.actions.edit.UndoAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeAccentuatedNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeBendNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeDeadNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeFadeInAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeGhostNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeGraceNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeHammerNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeHarmonicNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeHeavyAccentuatedNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeLetRingAction;
import org.herac.tuxguitar.gui.actions.effects.ChangePalmMuteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangePoppingAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeSlappingAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeSlideNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeStaccatoAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeTappingAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeTremoloBarAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeTremoloPickingAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeTrillNoteAction;
import org.herac.tuxguitar.gui.actions.effects.ChangeVibratoNoteAction;
import org.herac.tuxguitar.gui.actions.file.ExitAction;
import org.herac.tuxguitar.gui.actions.file.ExportSongAction;
import org.herac.tuxguitar.gui.actions.file.ImportSongAction;
import org.herac.tuxguitar.gui.actions.file.NewFileAction;
import org.herac.tuxguitar.gui.actions.file.OpenFileAction;
import org.herac.tuxguitar.gui.actions.file.OpenURLAction;
import org.herac.tuxguitar.gui.actions.file.PrintAction;
import org.herac.tuxguitar.gui.actions.file.PrintPreviewAction;
import org.herac.tuxguitar.gui.actions.file.SaveAsFileAction;
import org.herac.tuxguitar.gui.actions.file.SaveFileAction;
import org.herac.tuxguitar.gui.actions.help.ShowAboutAction;
import org.herac.tuxguitar.gui.actions.help.ShowDocAction;
import org.herac.tuxguitar.gui.actions.insert.InsertChordAction;
import org.herac.tuxguitar.gui.actions.insert.InsertTextAction;
import org.herac.tuxguitar.gui.actions.insert.RepeatAlternativeAction;
import org.herac.tuxguitar.gui.actions.insert.RepeatCloseAction;
import org.herac.tuxguitar.gui.actions.insert.RepeatOpenAction;
import org.herac.tuxguitar.gui.actions.layout.SetChordDiagramEnabledAction;
import org.herac.tuxguitar.gui.actions.layout.SetChordNameEnabledAction;
import org.herac.tuxguitar.gui.actions.layout.SetCompactViewAction;
import org.herac.tuxguitar.gui.actions.layout.SetLinearLayoutAction;
import org.herac.tuxguitar.gui.actions.layout.SetMultitrackViewAction;
import org.herac.tuxguitar.gui.actions.layout.SetPageLayoutAction;
import org.herac.tuxguitar.gui.actions.layout.SetScoreEnabledAction;
import org.herac.tuxguitar.gui.actions.layout.SetTablatureEnabledAction;
import org.herac.tuxguitar.gui.actions.marker.AddMarkerAction;
import org.herac.tuxguitar.gui.actions.marker.GoFirstMarkerAction;
import org.herac.tuxguitar.gui.actions.marker.GoLastMarkerAction;
import org.herac.tuxguitar.gui.actions.marker.GoNextMarkerAction;
import org.herac.tuxguitar.gui.actions.marker.GoPreviousMarkerAction;
import org.herac.tuxguitar.gui.actions.marker.ListMarkersAction;
import org.herac.tuxguitar.gui.actions.measure.AddMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.CleanMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.CopyMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoFirstMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoLastMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoNextMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoPreviousMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.PasteMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.RemoveMeasureAction;
import org.herac.tuxguitar.gui.actions.note.ChangeNoteAction;
import org.herac.tuxguitar.gui.actions.note.ChangeTiedNoteAction;
import org.herac.tuxguitar.gui.actions.note.ChangeVelocityAction;
import org.herac.tuxguitar.gui.actions.note.CleanBeatAction;
import org.herac.tuxguitar.gui.actions.note.DecrementNoteSemitoneAction;
import org.herac.tuxguitar.gui.actions.note.IncrementNoteSemitoneAction;
import org.herac.tuxguitar.gui.actions.note.InsertNoteAction;
import org.herac.tuxguitar.gui.actions.note.MoveBeatsCustomAction;
import org.herac.tuxguitar.gui.actions.note.MoveBeatsLeftAction;
import org.herac.tuxguitar.gui.actions.note.MoveBeatsRightAction;
import org.herac.tuxguitar.gui.actions.note.RemoveNoteAction;
import org.herac.tuxguitar.gui.actions.note.RemoveUnusedVoiceAction;
import org.herac.tuxguitar.gui.actions.note.SetStrokeDownAction;
import org.herac.tuxguitar.gui.actions.note.SetStrokeUpAction;
import org.herac.tuxguitar.gui.actions.note.SetVoiceAutoAction;
import org.herac.tuxguitar.gui.actions.note.SetVoiceDownAction;
import org.herac.tuxguitar.gui.actions.note.SetVoiceUpAction;
import org.herac.tuxguitar.gui.actions.note.ShiftNoteDownAction;
import org.herac.tuxguitar.gui.actions.note.ShiftNoteUpAction;
import org.herac.tuxguitar.gui.actions.settings.EditConfigAction;
import org.herac.tuxguitar.gui.actions.settings.EditKeyBindingsAction;
import org.herac.tuxguitar.gui.actions.settings.EditPluginsAction;
import org.herac.tuxguitar.gui.actions.system.DisposeAction;
import org.herac.tuxguitar.gui.actions.tools.ScaleAction;
import org.herac.tuxguitar.gui.actions.tools.TGBrowserAction;
import org.herac.tuxguitar.gui.actions.tools.TransposeAction;
import org.herac.tuxguitar.gui.actions.track.AddTrackAction;
import org.herac.tuxguitar.gui.actions.track.CloneTrackAction;
import org.herac.tuxguitar.gui.actions.track.EditLyricsAction;
import org.herac.tuxguitar.gui.actions.track.GoFirstTrackAction;
import org.herac.tuxguitar.gui.actions.track.GoLastTrackAction;
import org.herac.tuxguitar.gui.actions.track.GoNextTrackAction;
import org.herac.tuxguitar.gui.actions.track.GoPreviousTrackAction;
import org.herac.tuxguitar.gui.actions.track.GoToTrackAction;
import org.herac.tuxguitar.gui.actions.track.MoveTrackDownAction;
import org.herac.tuxguitar.gui.actions.track.MoveTrackUpAction;
import org.herac.tuxguitar.gui.actions.track.RemoveTrackAction;
import org.herac.tuxguitar.gui.actions.track.TrackPropertiesAction;
import org.herac.tuxguitar.gui.actions.transport.TransportMetronomeAction;
import org.herac.tuxguitar.gui.actions.transport.TransportModeAction;
import org.herac.tuxguitar.gui.actions.transport.TransportPlayAction;
import org.herac.tuxguitar.gui.actions.transport.TransportSetLoopEHeaderAction;
import org.herac.tuxguitar.gui.actions.transport.TransportSetLoopSHeaderAction;
import org.herac.tuxguitar.gui.actions.transport.TransportStopAction;
import org.herac.tuxguitar.gui.actions.view.ShowFretBoardAction;
import org.herac.tuxguitar.gui.actions.view.ShowMatrixAction;
import org.herac.tuxguitar.gui.actions.view.ShowMixerAction;
import org.herac.tuxguitar.gui.actions.view.ShowPianoAction;
import org.herac.tuxguitar.gui.actions.view.ShowToolbarsAction;
import org.herac.tuxguitar.gui.actions.view.ShowTransportAction;
/**
* @author julian
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ActionManager {
private Map<String, Action> actions;
public ActionManager() {
this.actions = new HashMap<String, Action>();
this.init();
}
public void addAction(Action action) {
this.actions.put(action.getName(), action);
}
public Action getAction(String name) {
return this.actions.get(name);
}
public List<String> getAvailableKeyBindingActions() {
List<String> availableKeyBindingActions = new ArrayList<String>();
for (final String actionName : this.actions.keySet()) {
if (getAction(actionName).isKeyBindingAvailable()) {
availableKeyBindingActions.add(actionName);
}
}
return availableKeyBindingActions;
}
public void init() {
// file actions
addAction(new NewFileAction());
addAction(new OpenFileAction());
addAction(new SaveFileAction());
addAction(new SaveAsFileAction());
addAction(new ImportSongAction());
addAction(new ExportSongAction());
addAction(new PrintAction());
addAction(new PrintPreviewAction());
addAction(new OpenURLAction());
addAction(new ExitAction());
// edit actions
addAction(new UndoAction());
addAction(new RedoAction());
addAction(new SetMouseModeSelectionAction());
addAction(new SetMouseModeEditionAction());
addAction(new SetNaturalKeyAction());
addAction(new SetVoice1Action());
addAction(new SetVoice2Action());
// layout actions
addAction(new SetPageLayoutAction());
addAction(new SetLinearLayoutAction());
addAction(new SetMultitrackViewAction());
addAction(new SetScoreEnabledAction());
addAction(new SetTablatureEnabledAction());
addAction(new SetCompactViewAction());
addAction(new SetChordNameEnabledAction());
addAction(new SetChordDiagramEnabledAction());
// view actions
addAction(new ShowToolbarsAction());
addAction(new ShowFretBoardAction());
addAction(new ShowPianoAction());
addAction(new ShowMixerAction());
addAction(new ShowTransportAction());
addAction(new ShowMatrixAction());
// composition actions
addAction(new ChangeTimeSignatureAction());
addAction(new ChangeTempoAction());
addAction(new ChangeClefAction());
addAction(new ChangeKeySignatureAction());
addAction(new ChangeTripletFeelAction());
addAction(new ChangeInfoAction());
// track actions
addAction(new AddTrackAction());
addAction(new RemoveTrackAction());
addAction(new CloneTrackAction());
addAction(new GoFirstTrackAction());
addAction(new GoLastTrackAction());
addAction(new GoNextTrackAction());
addAction(new GoToTrackAction());
addAction(new GoPreviousTrackAction());
addAction(new MoveTrackUpAction());
addAction(new MoveTrackDownAction());
addAction(new EditLyricsAction());
addAction(new TrackPropertiesAction());
// measure actions
addAction(new AddMeasureAction());
addAction(new RemoveMeasureAction());
addAction(new CopyMeasureAction());
addAction(new PasteMeasureAction());
addAction(new GoFirstMeasureAction());
addAction(new GoLastMeasureAction());
addAction(new GoNextMeasureAction());
addAction(new GoPreviousMeasureAction());
addAction(new CleanMeasureAction());
// note actions
addAction(new ChangeNoteAction());
addAction(new InsertNoteAction());
addAction(new RemoveNoteAction());
addAction(new RemoveUnusedVoiceAction());
addAction(new CleanBeatAction());
addAction(new ChangeTiedNoteAction());
addAction(new ChangeVelocityAction());
addAction(new ShiftNoteUpAction());
addAction(new ShiftNoteDownAction());
addAction(new IncrementNoteSemitoneAction());
addAction(new DecrementNoteSemitoneAction());
addAction(new SetStrokeUpAction());
addAction(new SetStrokeDownAction());
addAction(new MoveBeatsRightAction());
addAction(new MoveBeatsLeftAction());
addAction(new MoveBeatsCustomAction());
// duration actions
addAction(new SetWholeDurationAction());
addAction(new SetHalfDurationAction());
addAction(new SetQuarterDurationAction());
addAction(new SetEighthDurationAction());
addAction(new SetSixteenthDurationAction());
addAction(new SetThirtySecondDurationAction());
addAction(new SetSixtyFourthDurationAction());
addAction(new ChangeDottedDurationAction());
addAction(new ChangeDoubleDottedDurationAction());
addAction(new ChangeDivisionTypeAction());
addAction(new IncrementDurationAction());
addAction(new DecrementDurationAction());
// insert actions
addAction(new RepeatOpenAction());
addAction(new RepeatCloseAction());
addAction(new RepeatAlternativeAction());
addAction(new InsertChordAction());
addAction(new InsertTextAction());
// note effects action
addAction(new ChangeVibratoNoteAction());
addAction(new ChangeBendNoteAction());
addAction(new ChangeDeadNoteAction());
addAction(new ChangeSlideNoteAction());
addAction(new ChangeHammerNoteAction());
addAction(new ChangeGhostNoteAction());
addAction(new ChangeAccentuatedNoteAction());
addAction(new ChangeHeavyAccentuatedNoteAction());
addAction(new ChangeHarmonicNoteAction());
addAction(new ChangeGraceNoteAction());
addAction(new ChangeTrillNoteAction());
addAction(new ChangeTremoloPickingAction());
addAction(new ChangePalmMuteAction());
addAction(new ChangeLetRingAction());
addAction(new ChangeStaccatoAction());
addAction(new ChangeTappingAction());
addAction(new ChangeSlappingAction());
addAction(new ChangePoppingAction());
addAction(new ChangeTremoloBarAction());
addAction(new ChangeFadeInAction());
addAction(new SetVoiceAutoAction());
addAction(new SetVoiceUpAction());
addAction(new SetVoiceDownAction());
// marker actions
addAction(new AddMarkerAction());
addAction(new ListMarkersAction());
addAction(new GoPreviousMarkerAction());
addAction(new GoNextMarkerAction());
addAction(new GoFirstMarkerAction());
addAction(new GoLastMarkerAction());
// player actions
addAction(new TransportPlayAction());
addAction(new TransportStopAction());
addAction(new TransportMetronomeAction());
addAction(new TransportModeAction());
addAction(new TransportSetLoopSHeaderAction());
addAction(new TransportSetLoopEHeaderAction());
// setting actions
addAction(new EditPluginsAction());
addAction(new EditConfigAction());
addAction(new EditKeyBindingsAction());
// caret actions
addAction(new GoRightAction());
addAction(new GoLeftAction());
addAction(new GoUpAction());
addAction(new GoDownAction());
// help actions
addAction(new ShowDocAction());
addAction(new ShowAboutAction());
// tools
addAction(new TransposeAction());
addAction(new ScaleAction());
addAction(new TGBrowserAction());
// exit
addAction(new DisposeAction());
}
public void removeAction(String name) {
this.actions.remove(name);
}
}