package org.simantics.district.route.ui.handlers; import java.util.List; import java.util.concurrent.CompletableFuture; import javax.inject.Named; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.e4.ui.services.IServiceConstants; import org.eclipse.jface.viewers.ISelection; import org.eclipse.swt.widgets.Shell; import org.simantics.db.layer0.variable.Variable; import org.simantics.district.route.Route; import org.simantics.district.route.RouteJob; import org.simantics.district.route.RouterConfiguration; import org.simantics.utils.ui.ISelectionUtils; /** * @author Tuukka Lehtonen */ public class SelectRouteOnDiagram { @Execute public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell activeShell, @Named(IServiceConstants.ACTIVE_PART) MPart part, @Named(IServiceConstants.ACTIVE_SELECTION) ISelection selection) { // get selected route Route route = ISelectionUtils.filterSingleSelection(selection, Route.class); if (route == null) return; CompletableFuture> result = new CompletableFuture<>(); RouterConfiguration config = new RouterConfiguration(); new RouteJob(config, route, result).schedule(); } }