From 9e41ec1bf80a36b724d4581975f9e7e6ba7cc57f Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Thu, 10 Nov 2016 22:40:27 +0300 Subject: [PATCH] [groovy] convert DynamicManager from project component to service --- .../src/META-INF/groovy-dynamic-members.xml | 27 +++++++++++ plugins/groovy/src/META-INF/plugin.xml | 20 +-------- .../intentions/dynamic/DynamicManager.java | 6 +-- .../dynamic/DynamicManagerImpl.java | 45 ++----------------- .../DynamicMembersStartupActivity.java | 31 +++++++++++++ 5 files changed, 66 insertions(+), 63 deletions(-) create mode 100644 plugins/groovy/src/META-INF/groovy-dynamic-members.xml create mode 100644 plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicMembersStartupActivity.java diff --git a/plugins/groovy/src/META-INF/groovy-dynamic-members.xml b/plugins/groovy/src/META-INF/groovy-dynamic-members.xml new file mode 100644 index 000000000000..3215480dc421 --- /dev/null +++ b/plugins/groovy/src/META-INF/groovy-dynamic-members.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/groovy/src/META-INF/plugin.xml b/plugins/groovy/src/META-INF/plugin.xml index 8af4657b1f95..2aa342ea7748 100644 --- a/plugins/groovy/src/META-INF/plugin.xml +++ b/plugins/groovy/src/META-INF/plugin.xml @@ -94,7 +94,6 @@ - @@ -1573,9 +1572,6 @@ org.jetbrains.plugins.groovy.intentions.declaration.GrRemoveExplicitTypeDeclarationIntention - - @@ -1668,17 +1664,6 @@ - - - - - - - - org.jetbrains.plugins.groovy.annotator.GrReferenceHighlighterFactory - - org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManager - org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManagerImpl - org.jetbrains.plugins.groovy.mvc.MvcModuleStructureSynchronizer + diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java index a508214f394f..b9bac95e0357 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManager.java @@ -16,7 +16,7 @@ package org.jetbrains.plugins.groovy.annotator.intentions.dynamic; import com.intellij.openapi.components.PersistentStateComponent; -import com.intellij.openapi.components.ProjectComponent; +import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiVariable; @@ -32,11 +32,11 @@ import java.util.List; * User: Dmitry.Krasilschikov * Date: 23.11.2007 */ -public abstract class DynamicManager implements ProjectComponent, PersistentStateComponent { +public abstract class DynamicManager implements PersistentStateComponent { @NotNull public static DynamicManager getInstance(@NotNull Project project) { - return project.getComponent(DynamicManager.class); + return ServiceManager.getService(project, DynamicManager.class); } /** diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java index 030995bf1a7f..0d10c21ed91f 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicManagerImpl.java @@ -20,7 +20,6 @@ import com.intellij.openapi.application.TransactionGuard; import com.intellij.openapi.components.State; import com.intellij.openapi.components.Storage; import com.intellij.openapi.project.Project; -import com.intellij.openapi.startup.StartupManager; import com.intellij.openapi.wm.ToolWindow; import com.intellij.psi.PsiManager; import com.intellij.psi.PsiMethod; @@ -53,22 +52,12 @@ public class DynamicManagerImpl extends DynamicManager { public DynamicManagerImpl(final Project project) { myProject = project; - StartupManager.getInstance(project).registerPostStartupActivity(() -> { - if (!myRootElement.getContainingClasses().isEmpty()) { - DynamicToolWindowWrapper.getInstance(project).getToolWindow(); //initialize myToolWindow - } - }); } public Project getProject() { return myProject; } - - @Override - public void initComponent() { - } - @Override public void addProperty(DynamicElementSettings settings) { assert settings != null; @@ -390,8 +379,8 @@ public class DynamicManagerImpl extends DynamicManager { } @Nullable - private static DPropertyElement findConcreteDynamicProperty(DRootElement rootElement, final String conatainingClassName, final String propertyName) { - final DClassElement classElement = rootElement.getClassElement(conatainingClassName); + private static DPropertyElement findConcreteDynamicProperty(DRootElement rootElement, final String containingClassName, final String propertyName) { + final DClassElement classElement = rootElement.getClassElement(containingClassName); if (classElement == null) return null; @@ -399,43 +388,17 @@ public class DynamicManagerImpl extends DynamicManager { } @Nullable - private static DClassElement findClassElement(DRootElement rootElement, final String conatainingClassName) { - return rootElement.getClassElement(conatainingClassName); + private static DClassElement findClassElement(DRootElement rootElement, final String containingClassName) { + return rootElement.getClassElement(containingClassName); } - @Override - public void disposeComponent() { - } - - @Override - @NotNull - public String getComponentName() { - return "DynamicManagerImpl"; - } - - @Override - public void projectOpened() { - } - - @Override - public void projectClosed() { - } - - /** - * On exit - */ @Override public DRootElement getState() { -// return XmlSerializer.serialize(myRootElement); return myRootElement; } - /* - * On loading - */ @Override public void loadState(DRootElement element) { -// myRootElement = XmlSerializer.deserialize(element, myRootElement.getClass()); myRootElement = element; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicMembersStartupActivity.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicMembersStartupActivity.java new file mode 100644 index 000000000000..603a10578a72 --- /dev/null +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/intentions/dynamic/DynamicMembersStartupActivity.java @@ -0,0 +1,31 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.plugins.groovy.annotator.intentions.dynamic; + +import com.intellij.openapi.project.Project; +import com.intellij.openapi.startup.StartupActivity; +import org.jetbrains.annotations.NotNull; + +public class DynamicMembersStartupActivity implements StartupActivity { + + @Override + public void runActivity(@NotNull Project project) { + DynamicManager manager = DynamicManager.getInstance(project); + if (!manager.getRootElement().getContainingClasses().isEmpty()) { + DynamicToolWindowWrapper.getInstance(project).getToolWindow(); //initialize toolWindow + } + } +}