Search in sources :

Example 1 with WarSelectDialog

use of com.microsoft.azuretools.ijidea.ui.WarSelectDialog in project azure-tools-for-java by Microsoft.

the class AzureWebDeployAction method onActionPerformed.

public void onActionPerformed(AnActionEvent e) {
    //        Module module = LangDataKeys.MODULE.getData(e.getDataContext());
    //        Module module1 = e.getData(LangDataKeys.MODULE);
    Project project = DataKeys.PROJECT.getData(e.getDataContext());
    JFrame frame = WindowManager.getInstance().getFrame(project);
    try {
        if (!AzureSignInAction.doSignIn(AuthMethodManager.getInstance(), project))
            return;
        //Project project = module.getProject();
        ModifiableArtifactModel artifactModel = ProjectStructureConfigurable.getInstance(project).getArtifactsStructureConfigurable().getModifiableArtifactModel();
        Artifact artifactToDeploy = null;
        Collection<? extends Artifact> artifacts = artifactModel.getArtifactsByType(ArtifactType.findById("war"));
        List<String> issues = new LinkedList<>();
        if (artifacts.size() == 0) {
            issues.add("A web archive (WAR) Artifact has not been configured yet. The artifact configurations are managed in the <b>Project Structure</b> dialog (<b>File | Project Structure | Artifacts</b>).");
            ArtifactValidationWindow.go(project, issues);
            return;
        } else if (artifacts.size() > 1) {
            WarSelectDialog d = WarSelectDialog.go(project, new ArrayList<>(artifacts));
            if (d == null) {
                return;
            }
            artifactToDeploy = d.getSelectedArtifact();
        } else {
            artifactToDeploy = (Artifact) artifacts.toArray()[0];
        }
        // check artifact name is valid
        String name = artifactToDeploy.getName();
        if (!name.matches("^[A-Za-z0-9]*[A-Za-z0-9]$")) {
            issues.add("The artifact name <b>'" + name + "'</b> is invalid. An artifact name may contain only the ASCII letters 'a' through 'z' (case-insensitive),\nand the digits '0' through '9'.");
        }
        boolean exists = Files.exists(Paths.get(artifactToDeploy.getOutputFilePath()));
        if (!exists) {
            issues.add("The Artifact has not been built yet. You can initiate building an artifact using <b>Build | Build Artifacts...</b> menu.");
        }
        if (issues.size() > 0) {
            ArtifactValidationWindow.go(project, issues);
            return;
        }
        WebAppDeployDialog d = WebAppDeployDialog.go(project, artifactToDeploy);
    } catch (Exception ex) {
        ex.printStackTrace();
        //LOGGER.error("actionPerformed", ex);
        ErrorWindow.show(project, ex.getMessage(), "Azure Web Deploy Action Error");
    }
}
Also used : WebAppDeployDialog(com.microsoft.azuretools.ijidea.ui.WebAppDeployDialog) WarSelectDialog(com.microsoft.azuretools.ijidea.ui.WarSelectDialog) ArrayList(java.util.ArrayList) Artifact(com.intellij.packaging.artifacts.Artifact) LinkedList(java.util.LinkedList) Project(com.intellij.openapi.project.Project) ModifiableArtifactModel(com.intellij.packaging.artifacts.ModifiableArtifactModel)

Aggregations

Project (com.intellij.openapi.project.Project)1 Artifact (com.intellij.packaging.artifacts.Artifact)1 ModifiableArtifactModel (com.intellij.packaging.artifacts.ModifiableArtifactModel)1 WarSelectDialog (com.microsoft.azuretools.ijidea.ui.WarSelectDialog)1 WebAppDeployDialog (com.microsoft.azuretools.ijidea.ui.WebAppDeployDialog)1 ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1