package org.eclipse.ui.views.midi; import static java.text.MessageFormat.format; import java.util.HashMap; import java.util.Map; import org.eclipse.core.commands.IParameterValues; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.Platform; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.views.IViewDescriptor; import org.eclipse.ui.views.file.FileView; import org.eclipse.ui.views.file.IFileViewType; public class PlayPauseViewParameterValues implements IParameterValues { @Override public Map<String, String> getParameterValues() { final Map<String, String> result = new HashMap<String, String>(); IConfigurationElement[] configurationElements = Platform.getExtensionRegistry().getConfigurationElementsFor(org.eclipse.ui.views.file.Activator.getId(), FileView.BINDINGS); for (IConfigurationElement configurationElement : configurationElements) { try { Object type = configurationElement.createExecutableExtension(FileView.TYPE); if (type instanceof IFileViewType) { IFileViewType<?> fileViewType = (IFileViewType<?>)type; if (fileViewType instanceof MidiViewType) { for (IViewDescriptor view : PlatformUI.getWorkbench().getViewRegistry().getViews()) { if (view.getId().equals(configurationElement.getAttribute(FileView.VIEW_ID))) { result.put(view.getLabel(), view.getId()); } } } } } catch (CoreException e) { Activator.logError(format("Can''t determine type of file view {0}", configurationElement.getAttribute(FileView.VIEW_ID)), e); } } return result; } }