package org.eclipse.ui.views.midi; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.ui.IViewPart; import org.eclipse.ui.handlers.HandlerUtil; import org.eclipse.ui.views.file.FileView; import org.eclipse.ui.views.file.IFileViewType; public class PlayPauseHandler extends AbstractHandler { private static final String PARAMETER_VIEW = "org.eclipse.ui.views.midi.commands.PlayPause.view"; //$NON-NLS-1$ //XXX see plugin.xml @Override public Object execute(ExecutionEvent event) throws ExecutionException { String viewId = event.getParameter(PARAMETER_VIEW); if (viewId != null) { IViewPart view = HandlerUtil.getActivePart(event).getSite().getPage().findView(viewId); if (view instanceof FileView) { FileView fileView = (FileView)view; IFileViewType<?> fileViewType = fileView.getType(); if (fileViewType instanceof MidiViewType) { MidiViewType midiViewType = (MidiViewType)fileViewType; MidiViewPage midiViewPage = midiViewType.getPage(); if (midiViewPage != null) { midiViewPage.togglePlayback(); } } } } return null; } }