// Copyright 2016 Pants project contributors (see CONTRIBUTORS.md). // Licensed under the Apache License, Version 2.0 (see LICENSE). package com.twitter.intellij.pants.compiler.actions; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.twitter.intellij.pants.util.PantsUtil; import org.jetbrains.annotations.NotNull; import java.util.stream.Stream; /** * PantsCompileAllTargetsInModuleAction is a UI action that is used to compile all Pants targets for a module */ public class PantsCompileAllTargetsInModuleAction extends PantsCompileActionBase { private Module myModule; public PantsCompileAllTargetsInModuleAction(Module module) { super("Compile all targets in module"); myModule = module; } public PantsCompileAllTargetsInModuleAction() { super("Compile all targets in module"); } @NotNull @Override public Stream<String> getTargets(@NotNull AnActionEvent e, @NotNull Project project) { if (myModule == null) { VirtualFile file = e.getData(CommonDataKeys.VIRTUAL_FILE); if (file == null) { return Stream.empty(); } myModule = ModuleUtil.findModuleForFile(file, project); } return PantsUtil.getNonGenTargetAddresses(myModule).stream(); } }