1 /* 2 * Created on 18-dic-2005 3 * 4 * TODO To change the template for this generated file go to 5 * Window - Preferences - Java - Code Style - Code Templates 6 */ 7 package org.herac.tuxguitar.gui.actions; 8 9 import java.util.ArrayList; 10 import java.util.HashMap; 11 import java.util.Iterator; 12 import java.util.List; 13 import java.util.Map; 14 15 import org.herac.tuxguitar.gui.actions.caret.GoDownAction; 16 import org.herac.tuxguitar.gui.actions.caret.GoLeftAction; 17 import org.herac.tuxguitar.gui.actions.caret.GoRightAction; 18 import org.herac.tuxguitar.gui.actions.caret.GoUpAction; 19 import org.herac.tuxguitar.gui.actions.composition.ChangeClefAction; 20 import org.herac.tuxguitar.gui.actions.composition.ChangeInfoAction; 21 import org.herac.tuxguitar.gui.actions.composition.ChangeKeySignatureAction; 22 import org.herac.tuxguitar.gui.actions.composition.ChangeTempoAction; 23 import org.herac.tuxguitar.gui.actions.composition.ChangeTimeSignatureAction; 24 import org.herac.tuxguitar.gui.actions.composition.ChangeTripletFeelAction; 25 import org.herac.tuxguitar.gui.actions.duration.ChangeDottedDurationAction; 26 import org.herac.tuxguitar.gui.actions.duration.ChangeDoubleDottedDurationAction; 27 import org.herac.tuxguitar.gui.actions.duration.ChangeDivisionTypeAction; 28 import org.herac.tuxguitar.gui.actions.duration.DecrementDurationAction; 29 import org.herac.tuxguitar.gui.actions.duration.IncrementDurationAction; 30 import org.herac.tuxguitar.gui.actions.duration.SetEighthDurationAction; 31 import org.herac.tuxguitar.gui.actions.duration.SetHalfDurationAction; 32 import org.herac.tuxguitar.gui.actions.duration.SetQuarterDurationAction; 33 import org.herac.tuxguitar.gui.actions.duration.SetSixteenthDurationAction; 34 import org.herac.tuxguitar.gui.actions.duration.SetSixtyFourthDurationAction; 35 import org.herac.tuxguitar.gui.actions.duration.SetThirtySecondDurationAction; 36 import org.herac.tuxguitar.gui.actions.duration.SetWholeDurationAction; 37 import org.herac.tuxguitar.gui.actions.edit.RedoAction; Action(String name, int flags)38import org.herac.tuxguitar.gui.actions.edit.SetMouseModeEditionAction; 39 import org.herac.tuxguitar.gui.actions.edit.SetMouseModeSelectionAction; 40 import org.herac.tuxguitar.gui.actions.edit.SetNaturalKeyAction; 41 import org.herac.tuxguitar.gui.actions.edit.SetVoice1Action; 42 import org.herac.tuxguitar.gui.actions.edit.SetVoice2Action; execute(TypedEvent e)43import org.herac.tuxguitar.gui.actions.edit.UndoAction; 44 import org.herac.tuxguitar.gui.actions.effects.ChangeAccentuatedNoteAction; process(final TypedEvent e)45import org.herac.tuxguitar.gui.actions.effects.ChangeBendNoteAction; 46 import org.herac.tuxguitar.gui.actions.effects.ChangeDeadNoteAction; 47 import org.herac.tuxguitar.gui.actions.effects.ChangeFadeInAction; 48 import org.herac.tuxguitar.gui.actions.effects.ChangeGhostNoteAction; 49 import org.herac.tuxguitar.gui.actions.effects.ChangeGraceNoteAction; 50 import org.herac.tuxguitar.gui.actions.effects.ChangeHammerNoteAction; 51 import org.herac.tuxguitar.gui.actions.effects.ChangeHarmonicNoteAction; 52 import org.herac.tuxguitar.gui.actions.effects.ChangeHeavyAccentuatedNoteAction; 53 import org.herac.tuxguitar.gui.actions.effects.ChangePalmMuteAction; 54 import org.herac.tuxguitar.gui.actions.effects.ChangePoppingAction; 55 import org.herac.tuxguitar.gui.actions.effects.ChangeSlappingAction; 56 import org.herac.tuxguitar.gui.actions.effects.ChangeSlideNoteAction; 57 import org.herac.tuxguitar.gui.actions.effects.ChangeStaccatoAction; 58 import org.herac.tuxguitar.gui.actions.effects.ChangeTappingAction; 59 import org.herac.tuxguitar.gui.actions.effects.ChangeTremoloBarAction; 60 import org.herac.tuxguitar.gui.actions.effects.ChangeTremoloPickingAction; 61 import org.herac.tuxguitar.gui.actions.effects.ChangeTrillNoteAction; 62 import org.herac.tuxguitar.gui.actions.effects.ChangeVibratoNoteAction; 63 import org.herac.tuxguitar.gui.actions.file.ExitAction; 64 import org.herac.tuxguitar.gui.actions.file.ExportSongAction; 65 import org.herac.tuxguitar.gui.actions.file.ImportSongAction; 66 import org.herac.tuxguitar.gui.actions.file.NewFileAction; 67 import org.herac.tuxguitar.gui.actions.file.OpenFileAction; 68 import org.herac.tuxguitar.gui.actions.file.OpenURLAction; 69 import org.herac.tuxguitar.gui.actions.file.PrintAction; 70 import org.herac.tuxguitar.gui.actions.file.PrintPreviewAction; 71 import org.herac.tuxguitar.gui.actions.file.SaveAsFileAction; 72 import org.herac.tuxguitar.gui.actions.file.SaveFileAction; 73 import org.herac.tuxguitar.gui.actions.help.ShowAboutAction; 74 import org.herac.tuxguitar.gui.actions.help.ShowDocAction; 75 import org.herac.tuxguitar.gui.actions.insert.InsertChordAction; 76 import org.herac.tuxguitar.gui.actions.insert.InsertTextAction; 77 import org.herac.tuxguitar.gui.actions.insert.RepeatAlternativeAction; 78 import org.herac.tuxguitar.gui.actions.insert.RepeatCloseAction; 79 import org.herac.tuxguitar.gui.actions.insert.RepeatOpenAction; 80 import org.herac.tuxguitar.gui.actions.layout.SetChordDiagramEnabledAction; 81 import org.herac.tuxguitar.gui.actions.layout.SetChordNameEnabledAction; 82 import org.herac.tuxguitar.gui.actions.layout.SetCompactViewAction; 83 import org.herac.tuxguitar.gui.actions.layout.SetLinearLayoutAction; 84 import org.herac.tuxguitar.gui.actions.layout.SetMultitrackViewAction; 85 import org.herac.tuxguitar.gui.actions.layout.SetPageLayoutAction; 86 import org.herac.tuxguitar.gui.actions.layout.SetScoreEnabledAction; 87 import org.herac.tuxguitar.gui.actions.layout.SetTablatureEnabledAction; 88 import org.herac.tuxguitar.gui.actions.marker.AddMarkerAction; 89 import org.herac.tuxguitar.gui.actions.marker.GoFirstMarkerAction; 90 import org.herac.tuxguitar.gui.actions.marker.GoLastMarkerAction; 91 import org.herac.tuxguitar.gui.actions.marker.GoNextMarkerAction; getFlags()92import org.herac.tuxguitar.gui.actions.marker.GoPreviousMarkerAction; 93 import org.herac.tuxguitar.gui.actions.marker.ListMarkersAction; 94 import org.herac.tuxguitar.gui.actions.measure.AddMeasureAction; 95 import org.herac.tuxguitar.gui.actions.measure.CleanMeasureAction; getSongManager()96import org.herac.tuxguitar.gui.actions.measure.CopyMeasureAction; 97 import org.herac.tuxguitar.gui.actions.measure.GoFirstMeasureAction; 98 import org.herac.tuxguitar.gui.actions.measure.GoLastMeasureAction; 99 import org.herac.tuxguitar.gui.actions.measure.GoNextMeasureAction; getEditor()100import org.herac.tuxguitar.gui.actions.measure.GoPreviousMeasureAction; 101 import org.herac.tuxguitar.gui.actions.measure.PasteMeasureAction; 102 import org.herac.tuxguitar.gui.actions.measure.RemoveMeasureAction; 103 import org.herac.tuxguitar.gui.actions.note.ChangeNoteAction; getName()104import org.herac.tuxguitar.gui.actions.note.ChangeTiedNoteAction; 105 import org.herac.tuxguitar.gui.actions.note.ChangeVelocityAction; 106 import org.herac.tuxguitar.gui.actions.note.CleanBeatAction; 107 import org.herac.tuxguitar.gui.actions.note.DecrementNoteSemitoneAction; isKeyBindingAvailable()108import org.herac.tuxguitar.gui.actions.note.IncrementNoteSemitoneAction; 109 import org.herac.tuxguitar.gui.actions.note.InsertNoteAction; 110 import org.herac.tuxguitar.gui.actions.note.MoveBeatsCustomAction; 111 import org.herac.tuxguitar.gui.actions.note.MoveBeatsLeftAction; updateTablature()112import org.herac.tuxguitar.gui.actions.note.MoveBeatsRightAction; 113 import org.herac.tuxguitar.gui.actions.note.RemoveNoteAction; 114 import org.herac.tuxguitar.gui.actions.note.RemoveUnusedVoiceAction; 115 import org.herac.tuxguitar.gui.actions.note.SetStrokeDownAction; fireUpdate(int measureNumber)116import org.herac.tuxguitar.gui.actions.note.SetStrokeUpAction; 117 import org.herac.tuxguitar.gui.actions.note.SetVoiceAutoAction; 118 import org.herac.tuxguitar.gui.actions.note.SetVoiceDownAction; 119 import org.herac.tuxguitar.gui.actions.note.SetVoiceUpAction; addUndoableEdit(UndoableEdit anEdit)120import org.herac.tuxguitar.gui.actions.note.ShiftNoteDownAction; 121 import org.herac.tuxguitar.gui.actions.note.ShiftNoteUpAction; 122 import org.herac.tuxguitar.gui.actions.settings.EditConfigAction; 123 import org.herac.tuxguitar.gui.actions.settings.EditKeyBindingsAction; 124 import org.herac.tuxguitar.gui.actions.settings.EditPluginsAction; 125 import org.herac.tuxguitar.gui.actions.system.DisposeAction; 126 import org.herac.tuxguitar.gui.actions.tools.ScaleAction; 127 import org.herac.tuxguitar.gui.actions.tools.TGBrowserAction; 128 import org.herac.tuxguitar.gui.actions.tools.TransposeAction; 129 import org.herac.tuxguitar.gui.actions.track.AddTrackAction; 130 import org.herac.tuxguitar.gui.actions.track.CloneTrackAction; 131 import org.herac.tuxguitar.gui.actions.track.EditLyricsAction; 132 import org.herac.tuxguitar.gui.actions.track.GoFirstTrackAction; 133 import org.herac.tuxguitar.gui.actions.track.GoLastTrackAction; 134 import org.herac.tuxguitar.gui.actions.track.GoNextTrackAction; 135 import org.herac.tuxguitar.gui.actions.track.GoPreviousTrackAction; 136 import org.herac.tuxguitar.gui.actions.track.GoToTrackAction; 137 import org.herac.tuxguitar.gui.actions.track.MoveTrackDownAction; 138 import org.herac.tuxguitar.gui.actions.track.MoveTrackUpAction; 139 import org.herac.tuxguitar.gui.actions.track.RemoveTrackAction; 140 import org.herac.tuxguitar.gui.actions.track.TrackPropertiesAction; 141 import org.herac.tuxguitar.gui.actions.transport.TransportMetronomeAction; 142 import org.herac.tuxguitar.gui.actions.transport.TransportModeAction; 143 import org.herac.tuxguitar.gui.actions.transport.TransportPlayAction; 144 import org.herac.tuxguitar.gui.actions.transport.TransportSetLoopEHeaderAction; 145 import org.herac.tuxguitar.gui.actions.transport.TransportSetLoopSHeaderAction; 146 import org.herac.tuxguitar.gui.actions.transport.TransportStopAction; 147 import org.herac.tuxguitar.gui.actions.view.ShowFretBoardAction; 148 import org.herac.tuxguitar.gui.actions.view.ShowMatrixAction; 149 import org.herac.tuxguitar.gui.actions.view.ShowMixerAction; 150 import org.herac.tuxguitar.gui.actions.view.ShowPianoAction; 151 import org.herac.tuxguitar.gui.actions.view.ShowTransportAction; 152 153 /** 154 * @author julian 155 * 156 * TODO To change the template for this generated type comment go to 157 * Window - Preferences - Java - Code Style - Code Templates 158 */ 159 public class ActionManager { 160 161 private Map actions; 162 163 public ActionManager(){ 164 this.actions = new HashMap(); 165 this.init(); 166 } 167 168 public void init(){ 169 //file actions 170 addAction(new NewFileAction()); 171 addAction(new OpenFileAction()); 172 addAction(new SaveFileAction()); 173 addAction(new SaveAsFileAction()); 174 addAction(new ImportSongAction()); 175 addAction(new ExportSongAction()); 176 addAction(new PrintAction()); 177 addAction(new PrintPreviewAction()); 178 addAction(new OpenURLAction()); 179 addAction(new ExitAction()); 180 181 //edit actions 182 addAction(new UndoAction()); 183 addAction(new RedoAction()); 184 addAction(new SetMouseModeSelectionAction()); 185 addAction(new SetMouseModeEditionAction()); 186 addAction(new SetNaturalKeyAction()); 187 addAction(new SetVoice1Action()); 188 addAction(new SetVoice2Action()); 189 190 //layout actions 191 addAction(new SetPageLayoutAction()); 192 addAction(new SetLinearLayoutAction()); 193 addAction(new SetMultitrackViewAction()); 194 addAction(new SetScoreEnabledAction()); 195 addAction(new SetTablatureEnabledAction()); 196 addAction(new SetCompactViewAction()); 197 addAction(new SetChordNameEnabledAction()); 198 addAction(new SetChordDiagramEnabledAction()); 199 200 //view actions 201 addAction(new ShowFretBoardAction()); 202 addAction(new ShowPianoAction()); 203 addAction(new ShowMixerAction()); 204 addAction(new ShowTransportAction()); 205 addAction(new ShowMatrixAction()); 206 207 //composition actions 208 addAction(new ChangeTimeSignatureAction()); 209 addAction(new ChangeTempoAction()); 210 addAction(new ChangeClefAction()); 211 addAction(new ChangeKeySignatureAction()); 212 addAction(new ChangeTripletFeelAction()); 213 addAction(new ChangeInfoAction()); 214 215 //track actions 216 addAction(new AddTrackAction()); 217 addAction(new RemoveTrackAction()); 218 addAction(new CloneTrackAction()); 219 addAction(new GoFirstTrackAction()); 220 addAction(new GoLastTrackAction()); 221 addAction(new GoNextTrackAction()); 222 addAction(new GoToTrackAction()); 223 addAction(new GoPreviousTrackAction()); 224 addAction(new MoveTrackUpAction()); 225 addAction(new MoveTrackDownAction()); 226 addAction(new EditLyricsAction()); 227 addAction(new TrackPropertiesAction()); 228 229 //measure actions 230 addAction(new AddMeasureAction()); 231 addAction(new RemoveMeasureAction()); 232 addAction(new CopyMeasureAction()); 233 addAction(new PasteMeasureAction()); 234 addAction(new GoFirstMeasureAction()); 235 addAction(new GoLastMeasureAction()); 236 addAction(new GoNextMeasureAction()); 237 addAction(new GoPreviousMeasureAction()); 238 addAction(new CleanMeasureAction()); 239 240 //note actions 241 addAction(new ChangeNoteAction()); 242 addAction(new InsertNoteAction()); 243 addAction(new RemoveNoteAction()); 244 addAction(new RemoveUnusedVoiceAction()); 245 addAction(new CleanBeatAction()); 246 addAction(new ChangeTiedNoteAction()); 247 addAction(new ChangeVelocityAction()); 248 addAction(new ShiftNoteUpAction()); 249 addAction(new ShiftNoteDownAction()); 250 addAction(new IncrementNoteSemitoneAction()); 251 addAction(new DecrementNoteSemitoneAction()); 252 addAction(new SetStrokeUpAction()); 253 addAction(new SetStrokeDownAction()); 254 addAction(new MoveBeatsRightAction()); 255 addAction(new MoveBeatsLeftAction()); 256 addAction(new MoveBeatsCustomAction()); 257 258 //duration actions 259 addAction(new SetWholeDurationAction()); 260 addAction(new SetHalfDurationAction()); 261 addAction(new SetQuarterDurationAction()); 262 addAction(new SetEighthDurationAction()); 263 addAction(new SetSixteenthDurationAction()); 264 addAction(new SetThirtySecondDurationAction()); 265 addAction(new SetSixtyFourthDurationAction()); 266 addAction(new ChangeDottedDurationAction()); 267 addAction(new ChangeDoubleDottedDurationAction()); 268 addAction(new ChangeDivisionTypeAction()); 269 addAction(new IncrementDurationAction()); 270 addAction(new DecrementDurationAction()); 271 272 //insert actions 273 addAction(new RepeatOpenAction()); 274 addAction(new RepeatCloseAction()); 275 addAction(new RepeatAlternativeAction()); 276 addAction(new InsertChordAction()); 277 addAction(new InsertTextAction()); 278 279 //note effects action 280 addAction(new ChangeVibratoNoteAction()); 281 addAction(new ChangeBendNoteAction()); 282 addAction(new ChangeDeadNoteAction()); 283 addAction(new ChangeSlideNoteAction()); 284 addAction(new ChangeHammerNoteAction()); 285 addAction(new ChangeGhostNoteAction()); 286 addAction(new ChangeAccentuatedNoteAction()); 287 addAction(new ChangeHeavyAccentuatedNoteAction()); 288 addAction(new ChangeHarmonicNoteAction()); 289 addAction(new ChangeGraceNoteAction()); 290 addAction(new ChangeTrillNoteAction()); 291 addAction(new ChangeTremoloPickingAction()); 292 addAction(new ChangePalmMuteAction()); 293 addAction(new ChangeStaccatoAction()); 294 addAction(new ChangeTappingAction()); 295 addAction(new ChangeSlappingAction()); 296 addAction(new ChangePoppingAction()); 297 addAction(new ChangeTremoloBarAction()); 298 addAction(new ChangeFadeInAction()); 299 addAction(new SetVoiceAutoAction()); 300 addAction(new SetVoiceUpAction()); 301 addAction(new SetVoiceDownAction()); 302 303 //marker actions 304 addAction(new AddMarkerAction()); 305 addAction(new ListMarkersAction()); 306 addAction(new GoPreviousMarkerAction()); 307 addAction(new GoNextMarkerAction()); 308 addAction(new GoFirstMarkerAction()); 309 addAction(new GoLastMarkerAction()); 310 311 //player actions 312 addAction(new TransportPlayAction()); 313 addAction(new TransportStopAction()); 314 addAction(new TransportMetronomeAction()); 315 addAction(new TransportModeAction()); 316 addAction(new TransportSetLoopSHeaderAction()); 317 addAction(new TransportSetLoopEHeaderAction()); 318 319 //setting actions 320 addAction(new EditPluginsAction()); 321 addAction(new EditConfigAction()); 322 addAction(new EditKeyBindingsAction()); 323 324 //caret actions 325 addAction(new GoRightAction()); 326 addAction(new GoLeftAction()); 327 addAction(new GoUpAction()); 328 addAction(new GoDownAction()); 329 330 //help actions 331 addAction(new ShowDocAction()); 332 addAction(new ShowAboutAction()); 333 334 //tools 335 addAction(new TransposeAction() ); 336 addAction(new ScaleAction()); 337 addAction(new TGBrowserAction()); 338 339 //exit 340 addAction(new DisposeAction()); 341 } 342 343 public void addAction(Action action){ 344 this.actions.put(action.getName(),action); 345 } 346 347 public void removeAction(String name){ 348 this.actions.remove(name); 349 } 350 351 public Action getAction(String name){ 352 return (Action)this.actions.get(name); 353 } 354 355 public List getAvailableKeyBindingActions(){ 356 List availableKeyBindingActions = new ArrayList(); 357 Iterator it = this.actions.keySet().iterator(); 358 while(it.hasNext()){ 359 String actionName = (String)it.next(); 360 if(getAction(actionName).isKeyBindingAvailable()){ 361 availableKeyBindingActions.add(actionName); 362 } 363 } 364 return availableKeyBindingActions; 365 } 366 } 367