package org.projectusus.ui.dependencygraph.handlers; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import org.eclipse.core.commands.ExecutionException; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PlatformUI; import org.projectusus.core.basis.SinglePackageHotspot; import org.projectusus.core.filerelations.model.ClassDescriptor; import org.projectusus.ui.dependencygraph.filters.ClassDescriptorNodeFilter; import org.projectusus.ui.dependencygraph.views.ClassGraphView; import org.projectusus.ui.internal.DisplayHotspot; import org.projectusus.ui.internal.hotspots.commands.AbstractOpenHotspotHandler; public class OpenHotspotInClassGraph extends AbstractOpenHotspotHandler<SinglePackageHotspot> { @Override protected void open( List<DisplayHotspot<SinglePackageHotspot>> hotspots ) throws ExecutionException { ClassDescriptorNodeFilter filter = new ClassDescriptorNodeFilter(); Set<ClassDescriptor> classes = new LinkedHashSet<ClassDescriptor>(); for( DisplayHotspot<SinglePackageHotspot> hotspot : hotspots ) { classes.addAll( hotspot.getCurrentOrOldHotspot().getRelevantClasses() ); } filter.setClasses( classes ); new DependencyGraphViewFilterer( getActivePage() ).applyFilterToView( ClassGraphView.VIEW_ID, filter ); } private IWorkbenchPage getActivePage() { return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); } }