/*
* 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.Iterator;
import java.util.List;
import java.util.Map;
import org.herac.tuxguitar.gui.actions.layout.SetChordDiagramEnabledAction;
import org.herac.tuxguitar.gui.actions.layout.SetChordNameEnabledAction;
import org.herac.tuxguitar.gui.actions.layout.SetScoreEnabledAction;
import org.herac.tuxguitar.gui.actions.layout.SetTablatureEnabledAction;
import org.herac.tuxguitar.gui.actions.measure.GoNextMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.GoPreviousMeasureAction;
import org.herac.tuxguitar.gui.actions.measure.SelectMeasureAction;
import org.herac.tuxguitar.gui.actions.settings.SettingsAction;
import org.herac.tuxguitar.gui.actions.track.SelectTrackAction;
import org.herac.tuxguitar.gui.actions.transport.TransportMixerAction;
import org.herac.tuxguitar.gui.actions.transport.TransportPlayAction;
import org.herac.tuxguitar.gui.actions.transport.TransportSetupAction;
import org.herac.tuxguitar.gui.actions.transport.TransportStopAction;
/**
* @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 actions;
public ActionManager(){
this.actions = new HashMap();
this.init();
}
public void init(){
//layout actions
addAction(new SetScoreEnabledAction());
addAction(new SetTablatureEnabledAction());
addAction(new SetChordNameEnabledAction());
addAction(new SetChordDiagramEnabledAction());
//track actions
addAction(new SelectTrackAction());
//measure actions
addAction(new SelectMeasureAction());
addAction(new GoNextMeasureAction());
addAction(new GoPreviousMeasureAction());
//player actions
addAction(new TransportPlayAction());
addAction(new TransportStopAction());
addAction(new TransportMixerAction());
addAction(new TransportSetupAction());
//Settings
addAction(new SettingsAction());
}
public void addAction(Action action){
this.actions.put(action.getName(),action);
}
public void removeAction(String name){
this.actions.remove(name);
}
public Action getAction(String name){
return (Action)this.actions.get(name);
}
public List getAvailableKeyBindingActions(){
List availableKeyBindingActions = new ArrayList();
Iterator it = this.actions.keySet().iterator();
while(it.hasNext()){
String actionName = (String)it.next();
if(getAction(actionName).isKeyBindingAvailable()){
availableKeyBindingActions.add(actionName);
}
}
return availableKeyBindingActions;
}
}