mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
CR-IC-1832 (explicit API)
This commit is contained in:
@@ -23,7 +23,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/** @deprecated use {@link ModuleListener#OLD_NAME_KEY} (to remove in IDEA 14) */
|
||||
/** @deprecated use {@link ModuleListener#modulesRenamed(Project, java.util.List, com.intellij.util.Function)} (to remove in IDEA 14) */
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
public abstract class ModuleNameTracker extends ModuleAdapter {
|
||||
private final Map<Module, String> myModulesNames = new HashMap<Module, String>();
|
||||
|
||||
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 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.
|
||||
@@ -34,6 +34,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.util.EventDispatcher;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.messages.MessageBusConnection;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -224,7 +225,7 @@ public class FacetPointersManagerImpl extends FacetPointersManager implements Pr
|
||||
}
|
||||
|
||||
@Override
|
||||
public void modulesRenamed(Project project, final List<Module> modules) {
|
||||
public void modulesRenamed(Project project, List<Module> modules, Function<Module, String> oldNameProvider) {
|
||||
for (Module module : modules) {
|
||||
refreshPointers(module);
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.module.ModifiableModuleModel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleComponent;
|
||||
import com.intellij.openapi.project.ModuleListener;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.impl.storage.ClasspathStorage;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
@@ -365,9 +364,9 @@ public class ModuleImpl extends ComponentManagerImpl implements ModuleEx {
|
||||
final VirtualFile moduleFile = getModuleFile();
|
||||
if (moduleFile == null) return;
|
||||
if (moduleFile.equals(event.getFile())) {
|
||||
ModuleImpl.this.putUserData(ModuleListener.OLD_NAME_KEY, myName);
|
||||
String oldName = myName;
|
||||
myName = moduleNameByFileName(moduleFile.getName());
|
||||
ModuleManagerImpl.getInstanceImpl(getProject()).fireModuleRenamedByVfsEvent(ModuleImpl.this);
|
||||
ModuleManagerImpl.getInstanceImpl(getProject()).fireModuleRenamedByVfsEvent(ModuleImpl.this, oldName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package com.intellij.openapi.project;
|
||||
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.util.Function;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -32,6 +33,12 @@ public abstract class ModuleAdapter implements ModuleListener {
|
||||
@Override
|
||||
public void moduleRemoved(Project project, Module module) { }
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
public void modulesRenamed(Project project, List<Module> modules, Function<Module, String> oldNameProvider) {
|
||||
modulesRenamed(project, modules);
|
||||
}
|
||||
|
||||
/** @deprecated implement {@link #modulesRenamed(Project, List, Function)} (to remove in IDEA 14) */
|
||||
public void modulesRenamed(Project project, List<Module> modules) { }
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package com.intellij.openapi.project;
|
||||
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.util.Function;
|
||||
|
||||
import java.util.EventListener;
|
||||
import java.util.List;
|
||||
@@ -25,13 +25,11 @@ import java.util.List;
|
||||
* @author max
|
||||
*/
|
||||
public interface ModuleListener extends EventListener {
|
||||
Key<String> OLD_NAME_KEY = Key.create("module.rename.old.name");
|
||||
|
||||
void moduleAdded(Project project, Module module);
|
||||
|
||||
void beforeModuleRemoved(Project project, Module module);
|
||||
|
||||
void moduleRemoved(Project project, Module module);
|
||||
|
||||
void modulesRenamed(Project project, List<Module> modules);
|
||||
void modulesRenamed(Project project, List<Module> modules, Function<Module, String> oldNameProvider);
|
||||
}
|
||||
|
||||
+16
-11
@@ -26,7 +26,6 @@ import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.module.*;
|
||||
import com.intellij.openapi.progress.ProgressIndicator;
|
||||
import com.intellij.openapi.progress.ProgressIndicatorProvider;
|
||||
import com.intellij.openapi.project.ModuleListener;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||
@@ -39,6 +38,8 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.StandardFileSystems;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import com.intellij.util.containers.StringInterner;
|
||||
@@ -303,12 +304,14 @@ public abstract class ModuleManagerImpl extends ModuleManager implements Project
|
||||
myMessageBus.syncPublisher(ProjectTopics.MODULES).beforeModuleRemoved(myProject, module);
|
||||
}
|
||||
|
||||
protected void fireModulesRenamed(List<Module> modules) {
|
||||
protected void fireModulesRenamed(List<Module> modules, final Map<Module, String> oldNames) {
|
||||
if (!modules.isEmpty()) {
|
||||
myMessageBus.syncPublisher(ProjectTopics.MODULES).modulesRenamed(myProject, modules);
|
||||
for (Module module : modules) {
|
||||
module.putUserData(ModuleListener.OLD_NAME_KEY, null);
|
||||
}
|
||||
myMessageBus.syncPublisher(ProjectTopics.MODULES).modulesRenamed(myProject, modules, new Function<Module, String>() {
|
||||
@Override
|
||||
public String fun(Module module) {
|
||||
return oldNames.get(module);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -970,9 +973,11 @@ public abstract class ModuleManagerImpl extends ModuleManager implements Project
|
||||
final Map<Module, String> modulesToNewNamesMap = moduleModel.myModuleToNewName;
|
||||
final Set<Module> modulesToBeRenamed = modulesToNewNamesMap.keySet();
|
||||
modulesToBeRenamed.removeAll(moduleModel.myModulesToDispose);
|
||||
final List<Module> modules = new ArrayList<Module>();
|
||||
|
||||
List<Module> modules = new ArrayList<Module>();
|
||||
Map<Module, String> oldNames = ContainerUtil.newHashMap();
|
||||
for (final Module module : modulesToBeRenamed) {
|
||||
module.putUserData(ModuleListener.OLD_NAME_KEY, module.getName());
|
||||
oldNames.put(module, module.getName());
|
||||
moduleModel.myPathToModule.remove(module.getModuleFilePath());
|
||||
modules.add(module);
|
||||
((ModuleEx)module).rename(modulesToNewNamesMap.get(module));
|
||||
@@ -996,17 +1001,17 @@ public abstract class ModuleManagerImpl extends ModuleManager implements Project
|
||||
cleanCachedStuff();
|
||||
}
|
||||
cleanCachedStuff();
|
||||
fireModulesRenamed(modules);
|
||||
fireModulesRenamed(modules, oldNames);
|
||||
cleanCachedStuff();
|
||||
}
|
||||
}, false, true);
|
||||
}
|
||||
|
||||
void fireModuleRenamedByVfsEvent(@NotNull final Module module) {
|
||||
void fireModuleRenamedByVfsEvent(@NotNull final Module module, @NotNull final String oldName) {
|
||||
ProjectRootManagerEx.getInstanceEx(myProject).makeRootsChange(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
fireModulesRenamed(Collections.singletonList(module));
|
||||
fireModulesRenamed(Collections.singletonList(module), Collections.singletonMap(module, oldName));
|
||||
}
|
||||
}, false, true);
|
||||
}
|
||||
|
||||
+3
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2013 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.
|
||||
@@ -24,6 +24,7 @@ import com.intellij.openapi.module.ModulePointerManager;
|
||||
import com.intellij.openapi.project.ModuleAdapter;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.util.Function;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -52,7 +53,7 @@ public class ModulePointerManagerImpl extends ModulePointerManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void modulesRenamed(Project project, List<Module> modules) {
|
||||
public void modulesRenamed(Project project, List<Module> modules, Function<Module, String> oldNameProvider) {
|
||||
for (Module module : modules) {
|
||||
moduleAppears(module);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user