package org.herac.tuxguitar.gui.editors; import java.util.ArrayList; import java.util.List; import org.herac.tuxguitar.song.models.TGBeat; public class TGEditorManager { private List<TGExternalBeatViewerListener> beatViewerListeners; private List<TGRedrawListener> redrawListeners; private List<TGUpdateListener> updateListeners; public TGEditorManager() { this.redrawListeners = new ArrayList<TGRedrawListener>(); this.updateListeners = new ArrayList<TGUpdateListener>(); this.beatViewerListeners = new ArrayList<TGExternalBeatViewerListener>(); } public void addBeatViewerListener(TGExternalBeatViewerListener listener) { if (!this.beatViewerListeners.contains(listener)) { this.beatViewerListeners.add(listener); } } public void addRedrawListener(TGRedrawListener listener) { if (!this.redrawListeners.contains(listener)) { this.redrawListeners.add(listener); } } public void addUpdateListener(TGUpdateListener listener) { if (!this.updateListeners.contains(listener)) { this.updateListeners.add(listener); } } public void doRedraw(int type) { for (int i = 0; i < this.redrawListeners.size(); i++) { TGRedrawListener listener = (TGRedrawListener) this.redrawListeners .get(i); listener.doRedraw(type); } } public void doUpdate(int type) { for (int i = 0; i < this.updateListeners.size(); i++) { TGUpdateListener listener = (TGUpdateListener) this.updateListeners .get(i); listener.doUpdate(type); } } public void hideExternalBeat() { for (int i = 0; i < this.beatViewerListeners.size(); i++) { TGExternalBeatViewerListener listener = (TGExternalBeatViewerListener) this.beatViewerListeners .get(i); listener.hideExternalBeat(); } } public void removeBeatViewerListener(TGExternalBeatViewerListener listener) { if (this.beatViewerListeners.contains(listener)) { this.beatViewerListeners.remove(listener); } } public void removeRedrawListener(TGRedrawListener listener) { if (this.redrawListeners.contains(listener)) { this.redrawListeners.remove(listener); } } public void removeUpdateListener(TGUpdateListener listener) { if (this.updateListeners.contains(listener)) { this.updateListeners.remove(listener); } } public void showExternalBeat(TGBeat beat) { for (int i = 0; i < this.beatViewerListeners.size(); i++) { TGExternalBeatViewerListener listener = (TGExternalBeatViewerListener) this.beatViewerListeners .get(i); listener.showExternalBeat(beat); } } }