mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] convert DynamicManager from project component to service
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
<idea-plugin>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<projectService serviceInterface="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManager"
|
||||
testServiceImplementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManagerImpl"/>
|
||||
<projectService serviceImplementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicToolWindowWrapper"/>
|
||||
<postStartupActivity implementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicMembersStartupActivity"/>
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="org.intellij.groovy">
|
||||
<membersContributor implementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicMembersContributor"/>
|
||||
</extensions>
|
||||
|
||||
<actions>
|
||||
<group id="Groovy.Dynamic.Toolbar">
|
||||
<action id="Groovy.Dynamic.Remove"
|
||||
class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.RemoveDynamicAction"
|
||||
icon="AllIcons.General.Remove" text="Remove" description="Remove dynamic element"/>
|
||||
<separator/>
|
||||
<action id="Groovy.Dynamic.ExpandAll"
|
||||
class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.ExpandAllAction"
|
||||
icon="AllIcons.Actions.Expandall" text="Expand all" description="Collapse all"/>
|
||||
<action id="Groovy.Dynamic.CollapseAll"
|
||||
class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.CollapseAllAction"
|
||||
icon="AllIcons.Actions.Collapseall" text="Collapse all" description="Collapse all"/>
|
||||
</group>
|
||||
</actions>
|
||||
</idea-plugin>
|
||||
@@ -94,7 +94,6 @@
|
||||
<groovyFrameworkConfigNotification order="last"
|
||||
implementation="org.jetbrains.plugins.groovy.config.DefaultGroovyFrameworkConfigNotification"/>
|
||||
|
||||
<membersContributor implementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicMembersContributor"/>
|
||||
<membersContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.GrCollectionTypeMembersProvider"/>
|
||||
<membersContributor implementation="org.jetbrains.plugins.groovy.spock.SpockMemberContributor"/>
|
||||
<membersContributor implementation="org.jetbrains.plugins.groovy.lang.resolve.noncode.MixinMemberContributor"/>
|
||||
@@ -1573,9 +1572,6 @@
|
||||
<className>org.jetbrains.plugins.groovy.intentions.declaration.GrRemoveExplicitTypeDeclarationIntention</className>
|
||||
</intentionAction>
|
||||
|
||||
<projectService
|
||||
serviceImplementation="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicToolWindowWrapper"/>
|
||||
|
||||
<projectService serviceInterface="org.jetbrains.plugins.groovy.griffon.GriffonProjectViewState"
|
||||
serviceImplementation="org.jetbrains.plugins.groovy.griffon.GriffonProjectViewState"/>
|
||||
|
||||
@@ -1668,17 +1664,6 @@
|
||||
<add-to-group group-id="NewGroup" anchor="last"/>
|
||||
</action>
|
||||
|
||||
<group id="Groovy.Dynamic.Toolbar">
|
||||
<action id="Groovy.Dynamic.Remove" class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.RemoveDynamicAction"
|
||||
icon="AllIcons.General.Remove" text="Remove" description="Remove dynamic element"/>
|
||||
<separator/>
|
||||
<action id="Groovy.Dynamic.ExpandAll" class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.ExpandAllAction"
|
||||
icon="AllIcons.Actions.Expandall" text="Expand all" description="Collapse all"/>
|
||||
<action id="Groovy.Dynamic.CollapseAll" class="org.jetbrains.plugins.groovy.annotator.intentions.dynamic.CollapseAllAction"
|
||||
icon="AllIcons.Actions.Collapseall" text="Collapse all" description="Collapse all"/>
|
||||
</group>
|
||||
|
||||
|
||||
<action id="ConvertGroovyToJava"
|
||||
class="org.jetbrains.plugins.groovy.actions.ConvertToJavaAction"
|
||||
text="Convert to Java"
|
||||
@@ -1794,16 +1779,13 @@
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.groovy.annotator.GrReferenceHighlighterFactory</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<interface-class>org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManager</interface-class>
|
||||
<implementation-class>org.jetbrains.plugins.groovy.annotator.intentions.dynamic.DynamicManagerImpl</implementation-class>
|
||||
</component>
|
||||
<component>
|
||||
<implementation-class>org.jetbrains.plugins.groovy.mvc.MvcModuleStructureSynchronizer</implementation-class>
|
||||
</component>
|
||||
</project-components>
|
||||
|
||||
<xi:include href="groovy-templates.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||
<xi:include href="groovy-dynamic-members.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||
<xi:include href="groovy-indexed-property-support.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||
<xi:include href="groovy-logback-support.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||
</idea-plugin>
|
||||
|
||||
+3
-3
@@ -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<DRootElement> {
|
||||
public abstract class DynamicManager implements PersistentStateComponent<DRootElement> {
|
||||
|
||||
@NotNull
|
||||
public static DynamicManager getInstance(@NotNull Project project) {
|
||||
return project.getComponent(DynamicManager.class);
|
||||
return ServiceManager.getService(project, DynamicManager.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+4
-41
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+31
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user