package org.ebayopensource.turmeric.eclipse.ui.handlers; import org.ebayopensource.turmeric.eclipse.ui.views.registry.RegistryView; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.ViewerComparator; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.handlers.HandlerUtil; /** * Used to toggle the state of sorting on and off. This uses the views * comparator to toggle whether items are sorted or not in the view. * * @author dcarver * @since 1.0 */ public class SortRegistryHandler extends AbstractHandler { /** * {@inheritDoc} * * This sets the state of the comparator for the view for sorting puproses. * */ @Override public Object execute(ExecutionEvent event) throws ExecutionException { IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage(); IViewPart viewPart = page.findView(RegistryView.VIEW_ID); if (!(viewPart instanceof RegistryView)) { return null; } RegistryView view = (RegistryView) viewPart; StructuredViewer viewer = view.getTypeLibraryViewer(); if (viewer.getComparator() != null) { // Toggle sorting off viewer.setComparator(null); } else { ViewerComparator comparator = view.getLibraryComparator(); viewer.setComparator(comparator); } return null; } }