mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Android migrated to FacetDependentToolWindow
This commit is contained in:
@@ -128,11 +128,11 @@
|
||||
<annotator language="XML" implementationClass="org.jetbrains.android.AndroidColorAnnotator" order="first"/>
|
||||
<xml.elementDescriptorProvider implementation="org.jetbrains.android.dom.AndroidDomElementDescriptorProvider" order="first"/>
|
||||
|
||||
<toolWindow id="Android Logcat"
|
||||
anchor="bottom"
|
||||
icon="/icons/android.png"
|
||||
factoryClass="org.jetbrains.android.logcat.AndroidLogcatToolWindowFactory"
|
||||
conditionClass="org.jetbrains.android.logcat.AndroidLogcatToolWindowFactory"/>
|
||||
<facet.toolWindow id="Android Logcat"
|
||||
facetIdList="android"
|
||||
anchor="bottom"
|
||||
icon="/icons/android.png"
|
||||
factoryClass="org.jetbrains.android.logcat.AndroidLogcatToolWindowFactory"/>
|
||||
<projectService serviceInterface="org.jetbrains.android.logcat.AndroidLogcatFiltersPreferences"
|
||||
serviceImplementation="org.jetbrains.android.logcat.AndroidLogcatFiltersPreferences"/>
|
||||
<xml.xmlExtension implementation="org.jetbrains.android.dom.AndroidXmlExtension" order="first"/>
|
||||
|
||||
@@ -16,11 +16,6 @@
|
||||
package org.jetbrains.android;
|
||||
|
||||
import com.intellij.openapi.components.ApplicationComponent;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.project.ProjectManagerAdapter;
|
||||
import org.jetbrains.android.logcat.AndroidLogcatToolWindowFactory;
|
||||
import org.jetbrains.android.sdk.AndroidSdk;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -28,7 +23,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
* @author coyote
|
||||
*/
|
||||
public class AndroidPlugin implements ApplicationComponent {
|
||||
private static final Logger LOG = Logger.getInstance("#org.jetbrains.android.AndroidPlugin");
|
||||
|
||||
@NotNull
|
||||
public String getComponentName() {
|
||||
@@ -36,12 +30,6 @@ public class AndroidPlugin implements ApplicationComponent {
|
||||
}
|
||||
|
||||
public void initComponent() {
|
||||
ProjectManager.getInstance().addProjectManagerListener(new ProjectManagerAdapter() {
|
||||
@Override
|
||||
public void projectOpened(final Project project) {
|
||||
new AndroidLogcatToolWindowFactory().configureToolWindow(project);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void disposeComponent() {
|
||||
|
||||
+4
-46
@@ -18,21 +18,13 @@ package org.jetbrains.android.logcat;
|
||||
|
||||
import com.intellij.CommonBundle;
|
||||
import com.intellij.facet.ProjectFacetManager;
|
||||
import com.intellij.facet.ProjectWideFacetAdapter;
|
||||
import com.intellij.facet.ProjectWideFacetListenersRegistry;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.wm.ToolWindow;
|
||||
import com.intellij.openapi.wm.ToolWindowAnchor;
|
||||
import com.intellij.openapi.wm.ToolWindowFactory;
|
||||
import com.intellij.openapi.wm.ToolWindowManager;
|
||||
import com.intellij.openapi.wm.ex.ToolWindowManagerEx;
|
||||
import com.intellij.openapi.wm.ex.ToolWindowManagerAdapter;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.wm.ex.ToolWindowManagerEx;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.ui.content.ContentManager;
|
||||
import org.jetbrains.android.facet.AndroidFacet;
|
||||
@@ -46,10 +38,11 @@ import java.util.List;
|
||||
/**
|
||||
* @author Eugene.Kudelevsky
|
||||
*/
|
||||
public class AndroidLogcatToolWindowFactory implements ToolWindowFactory, Condition<Project> {
|
||||
public class AndroidLogcatToolWindowFactory implements ToolWindowFactory {
|
||||
public static final String TOOL_WINDOW_ID = AndroidBundle.message("android.logcat.title");
|
||||
|
||||
public void createToolWindowContent(final Project project, final ToolWindow toolWindow) {
|
||||
toolWindow.setSplitMode(true, null);
|
||||
toolWindow.setIcon(AndroidUtils.ANDROID_ICON);
|
||||
toolWindow.setAvailable(true, null);
|
||||
toolWindow.setToHideOnEmptyContent(true);
|
||||
@@ -108,39 +101,4 @@ public class AndroidLogcatToolWindowFactory implements ToolWindowFactory, Condit
|
||||
Messages.showErrorDialog(project, AndroidBundle.message("specify.platform.error"), CommonBundle.getErrorTitle());
|
||||
}
|
||||
}
|
||||
|
||||
public boolean value(Project project) {
|
||||
ModuleManager manager = ModuleManager.getInstance(project);
|
||||
for (Module module : manager.getModules()) {
|
||||
AndroidFacet facet = AndroidFacet.getInstance(module);
|
||||
if (facet != null) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void configureToolWindow(final Project project) {
|
||||
ProjectWideFacetListenersRegistry.getInstance(project)
|
||||
.registerListener(AndroidFacet.ID, new ProjectWideFacetAdapter<AndroidFacet>() {
|
||||
@Override
|
||||
public void firstFacetAdded() {
|
||||
final ToolWindowManager manager = ToolWindowManager.getInstance(project);
|
||||
final ToolWindow toolWindow = manager.getToolWindow(AndroidLogcatToolWindowFactory.TOOL_WINDOW_ID);
|
||||
if (toolWindow == null) {
|
||||
final ToolWindow window =
|
||||
manager.registerToolWindow(AndroidLogcatToolWindowFactory.TOOL_WINDOW_ID, false, ToolWindowAnchor.BOTTOM, project);
|
||||
window.setSplitMode(true, null);
|
||||
createToolWindowContent(project, window);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void allFacetsRemoved() {
|
||||
final ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow(AndroidLogcatToolWindowFactory.TOOL_WINDOW_ID);
|
||||
if (toolWindow != null) {
|
||||
ToolWindowManager.getInstance(project).unregisterToolWindow(AndroidLogcatToolWindowFactory.TOOL_WINDOW_ID);
|
||||
Disposer.dispose(toolWindow.getContentManager());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user