From 05be51dcab192d8d8c424d85cd82e2c31ae5453e Mon Sep 17 00:00:00 2001 From: Oleg Shpynov Date: Tue, 26 Oct 2010 17:25:37 +0400 Subject: [PATCH] Automatically enable github tasks integration after project checkout --- .../vcs/checkout/NewProjectCheckoutListener.java | 6 +++++- .../vcs/checkout/ProjectCheckoutListener.java | 6 +++++- .../src/META-INF/PlatformLangPlugin.xml | 2 +- .../openapi/vcs/checkout/CheckoutListener.java | 2 ++ .../vcs/checkout/CompositeCheckoutListener.java | 12 ++++++++++-- .../checkout/PlatformProjectCheckoutListener.java | 4 ++++ 6 files changed, 27 insertions(+), 5 deletions(-) diff --git a/java/idea-ui/src/com/intellij/openapi/vcs/checkout/NewProjectCheckoutListener.java b/java/idea-ui/src/com/intellij/openapi/vcs/checkout/NewProjectCheckoutListener.java index 7de99f6a9030..465381c9f242 100644 --- a/java/idea-ui/src/com/intellij/openapi/vcs/checkout/NewProjectCheckoutListener.java +++ b/java/idea-ui/src/com/intellij/openapi/vcs/checkout/NewProjectCheckoutListener.java @@ -15,10 +15,10 @@ */ package com.intellij.openapi.vcs.checkout; +import com.intellij.ide.impl.NewProjectUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.vcs.VcsBundle; -import com.intellij.ide.impl.NewProjectUtil; import java.io.File; @@ -35,4 +35,8 @@ public class NewProjectCheckoutListener implements CheckoutListener { } return false; } + + @Override + public void processOpenedProject(Project lastOpenedProject) { + } } diff --git a/java/idea-ui/src/com/intellij/openapi/vcs/checkout/ProjectCheckoutListener.java b/java/idea-ui/src/com/intellij/openapi/vcs/checkout/ProjectCheckoutListener.java index 8323b6b8ed4f..8aed186bd0c3 100644 --- a/java/idea-ui/src/com/intellij/openapi/vcs/checkout/ProjectCheckoutListener.java +++ b/java/idea-ui/src/com/intellij/openapi/vcs/checkout/ProjectCheckoutListener.java @@ -15,8 +15,8 @@ */ package com.intellij.openapi.vcs.checkout; -import com.intellij.ide.impl.ProjectUtil; import com.intellij.ide.highlighter.ProjectFileType; +import com.intellij.ide.impl.ProjectUtil; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.vcs.VcsBundle; @@ -41,4 +41,8 @@ public class ProjectCheckoutListener implements CheckoutListener { } return false; } + + @Override + public void processOpenedProject(Project lastOpenedProject) { + } } \ No newline at end of file diff --git a/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml b/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml index 6b71e4775574..a22d0cd5bd5f 100644 --- a/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml +++ b/platform/platform-resources/src/META-INF/PlatformLangPlugin.xml @@ -85,7 +85,7 @@ - + diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/checkout/CheckoutListener.java b/platform/vcs-api/src/com/intellij/openapi/vcs/checkout/CheckoutListener.java index 2db34e060740..3cc796fcf2a2 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/checkout/CheckoutListener.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/checkout/CheckoutListener.java @@ -29,4 +29,6 @@ public interface CheckoutListener { ExtensionPointName COMPLETED_EP_NAME = ExtensionPointName.create("com.intellij.checkoutCompletedListener"); boolean processCheckedOutDirectory(Project project, File directory); + + void processOpenedProject(Project lastOpenedProject); } \ No newline at end of file diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/CompositeCheckoutListener.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/CompositeCheckoutListener.java index 4f9d718512f7..e1cdfad825b9 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/CompositeCheckoutListener.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/CompositeCheckoutListener.java @@ -19,6 +19,7 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.util.Ref; import com.intellij.openapi.vcs.CheckoutProvider; import com.intellij.openapi.vfs.LocalFileSystem; @@ -72,11 +73,18 @@ public class CompositeCheckoutListener implements CheckoutProvider.Listener { } private void notifyCheckoutListeners(final File directory, final ExtensionPointName epName) { - CheckoutListener[] listeners = Extensions.getExtensions(epName); - for(CheckoutListener listener: listeners) { + final CheckoutListener[] listeners = Extensions.getExtensions(epName); + for (CheckoutListener listener: listeners) { myFoundProject = listener.processCheckedOutDirectory(myProject, directory); if (myFoundProject) break; } + final Project[] openProjects = ProjectManager.getInstance().getOpenProjects(); + if (openProjects.length > 0){ + final Project lastOpenedProject = openProjects[openProjects.length - 1]; + for (CheckoutListener listener: listeners) { + listener.processOpenedProject(lastOpenedProject); + } + } } public void checkoutCompleted() { diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/PlatformProjectCheckoutListener.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/PlatformProjectCheckoutListener.java index 591f1ed0e54e..a117fae77cb6 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/PlatformProjectCheckoutListener.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/checkout/PlatformProjectCheckoutListener.java @@ -40,4 +40,8 @@ public class PlatformProjectCheckoutListener implements CheckoutListener { } return false; } + + @Override + public void processOpenedProject(Project lastOpenedProject) { + } }