From 8da6c43492a1710c0a3e3b62c84c8dd85b1486f8 Mon Sep 17 00:00:00 2001 From: breandan Date: Thu, 3 Dec 2015 17:21:16 -0500 Subject: [PATCH] Unzipped MaxOpenedProjects and added Gradle module --- .gitignore | 1 + .idea/gradle.xml | 23 ++++++++ .idea/libraries/gradle_wrapper.xml | 9 --- .idea/libraries/tasks.xml | 10 ---- .idea/misc.xml | 2 +- .idea/modules.xml | 1 + .idea/vcs.xml | 6 ++ attachments/MaxOpenedProjects.zip | Bin 11138 -> 0 bytes basics/plugin_structure/plugin_services.md | 5 +- .../MaxOpenedProjects/MaxOpenedProjects.iml | 12 ++++ .../MaxOpenedProjects/src/META-INF/plugin.xml | 29 ++++++++++ .../src/MyPackage/MaxProject.java | 54 ++++++++++++++++++ .../src/MyPackage/MyCounter.java | 29 ++++++++++ 13 files changed, 158 insertions(+), 23 deletions(-) create mode 100644 .idea/gradle.xml delete mode 100644 .idea/libraries/gradle_wrapper.xml delete mode 100644 .idea/libraries/tasks.xml delete mode 100644 attachments/MaxOpenedProjects.zip create mode 100644 code_samples/MaxOpenedProjects/MaxOpenedProjects.iml create mode 100644 code_samples/MaxOpenedProjects/src/META-INF/plugin.xml create mode 100644 code_samples/MaxOpenedProjects/src/MyPackage/MaxProject.java create mode 100644 code_samples/MaxOpenedProjects/src/MyPackage/MyCounter.java diff --git a/.gitignore b/.gitignore index db05674b1..ace16c9e1 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ _includes .idea/workspace.xml .idea/tasks.xml .idea/dictionaries + .idea/libraries/Gradle__*.xml # Sensitive or high-churn files: .idea/dataSources.ids diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 000000000..aabdd99a8 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/.idea/libraries/gradle_wrapper.xml b/.idea/libraries/gradle_wrapper.xml deleted file mode 100644 index 9063eaf07..000000000 --- a/.idea/libraries/gradle_wrapper.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/tasks.xml b/.idea/libraries/tasks.xml deleted file mode 100644 index 28567c398..000000000 --- a/.idea/libraries/tasks.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 1d921d38b..b5c42a85e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index d92dae7b4..b6fa6239c 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,6 +2,7 @@ + diff --git a/.idea/vcs.xml b/.idea/vcs.xml index aac4c972f..58f2fe940 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -12,6 +12,12 @@ + + + + + + \ No newline at end of file diff --git a/attachments/MaxOpenedProjects.zip b/attachments/MaxOpenedProjects.zip deleted file mode 100644 index 2e5f02067c01837f31c7c439c528c29339779237..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11138 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. * If necessary, change the [Run/Debug Configurations](http://www.jetbrains.com/idea/help/run-debug-configuration-plugin.html). diff --git a/code_samples/MaxOpenedProjects/MaxOpenedProjects.iml b/code_samples/MaxOpenedProjects/MaxOpenedProjects.iml new file mode 100644 index 000000000..347e916d5 --- /dev/null +++ b/code_samples/MaxOpenedProjects/MaxOpenedProjects.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/code_samples/MaxOpenedProjects/src/META-INF/plugin.xml b/code_samples/MaxOpenedProjects/src/META-INF/plugin.xml new file mode 100644 index 000000000..3e3ce844c --- /dev/null +++ b/code_samples/MaxOpenedProjects/src/META-INF/plugin.xml @@ -0,0 +1,29 @@ + + Plugin name here + short description of the plugin + 1.0 + YourCompany + + + + + + + + + + MyPackage.MaxProject + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code_samples/MaxOpenedProjects/src/MyPackage/MaxProject.java b/code_samples/MaxOpenedProjects/src/MyPackage/MaxProject.java new file mode 100644 index 000000000..dbf179d55 --- /dev/null +++ b/code_samples/MaxOpenedProjects/src/MyPackage/MaxProject.java @@ -0,0 +1,54 @@ +package MyPackage; + +import com.intellij.openapi.components.ProjectComponent; +import com.intellij.openapi.components.ServiceManager; +import com.intellij.openapi.project.Project; +import com.intellij.openapi.project.ProjectManager; +import com.intellij.openapi.ui.Messages; +import org.jetbrains.annotations.NotNull; + +/** + * Created by IntelliJ IDEA. + * User: Alexey.Chursin + * Date: Aug 13, 2010 + * Time: 3:50:25 PM + * To change this template use File | Settings | File Templates. + */ +public class MaxProject implements ProjectComponent { + public MaxProject(Project project) { + } + + public void initComponent() { + // TODO: insert component initialization logic here + } + + public void disposeComponent() { + // TODO: insert component disposal logic here + } + + @NotNull + public String getComponentName() { + return "MaxProject"; + } + + public void projectOpened() { + // called when project is opened + MyCounter CommandCounter = ServiceManager.getService(MyCounter.class); + + if (CommandCounter.IncreaseCounter() == -1) { + Messages.showMessageDialog("The maximum number of opened projects exceeds " + String.valueOf(CommandCounter.MaxCount) + + " projects!", "Error", Messages.getErrorIcon()); + ProjectManager PM=ProjectManager.getInstance(); + Project[] AllProjects = PM.getOpenProjects(); + Project project = AllProjects[AllProjects.length-1]; + PM.closeProject(project); + } + } + + + public void projectClosed() { + // called when project is being closed + MyCounter CommandCounter = ServiceManager.getService(MyCounter.class); + CommandCounter.DecreaseCounter(); + } +} diff --git a/code_samples/MaxOpenedProjects/src/MyPackage/MyCounter.java b/code_samples/MaxOpenedProjects/src/MyPackage/MyCounter.java new file mode 100644 index 000000000..f2e5417a8 --- /dev/null +++ b/code_samples/MaxOpenedProjects/src/MyPackage/MyCounter.java @@ -0,0 +1,29 @@ +package MyPackage; + +/** + * Created by IntelliJ IDEA. + * User: Alexey.Chursin + * Date: Aug 13, 2010 + * Time: 3:49:33 PM + * To change this template use File | Settings | File Templates. + */ +public class MyCounter { + private int Count = 0; + // Sets the maximum allowed number of opened projects. + public final int MaxCount = 3; + public MyCounter(){ + + + } + + public int IncreaseCounter() { + Count++; + return (Count > MaxCount) ? -1:Count; + } + + public int DecreaseCounter() { + Count--; + return (Count > MaxCount) ? -1:Count; + } + +}