correct getting of resource name by file name

This commit is contained in:
Eugene Kudelevsky
2010-10-21 21:09:02 +04:00
parent be7d6a707c
commit 5c7244ab6e
4 changed files with 11 additions and 8 deletions
@@ -201,7 +201,7 @@ public class AndroidRenameResourceProcessor extends RenamePsiElementProcessor {
String type = manager.getFileResourceType(file);
if (type == null) return;
String name = file.getName();
List<PsiFile> resourceFiles = manager.findResourceFiles(type, FileUtil.getNameWithoutExtension(name));
List<PsiFile> resourceFiles = manager.findResourceFiles(type, ResourceManager.getResourceName(type, name));
List<PsiFile> alternativeResources = new ArrayList<PsiFile>();
for (PsiFile resourceFile : resourceFiles) {
if (!resourceFile.getManager().areElementsEquivalent(file, resourceFile) && resourceFile.getName().equals(name)) {
@@ -15,17 +15,17 @@
*/
package org.jetbrains.android.dom.converters;
import com.intellij.psi.PsiReferenceBase;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReferenceBase;
import com.intellij.psi.xml.XmlElement;
import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.xml.*;
import com.intellij.util.xml.impl.ConvertContextImpl;
import com.intellij.util.xml.impl.DomCompletionContributor;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.android.dom.AndroidDomUtil;
import org.jetbrains.android.dom.resources.ResourceValue;
import org.jetbrains.android.resourceManagers.ResourceManager;
import org.jetbrains.android.util.AndroidResourceUtil;
import org.jetbrains.annotations.NotNull;
@@ -70,8 +70,11 @@ public abstract class BaseResourceReference extends PsiReferenceBase.Poly<XmlEle
}
ResourceValue value = myValue.getValue();
assert value != null;
myValue.setValue(ResourceValue.referenceTo(value.getPrefix(), value.getPackage(), value.getResourceType(),
FileUtil.getNameWithoutExtension(newElementName)));
String resType = value.getResourceType();
if (resType != null && newElementName != null) {
myValue.setValue(ResourceValue.referenceTo(value.getPrefix(), value.getPackage(), resType,
ResourceManager.getResourceName(resType, newElementName)));
}
return myValue.getXmlTag();
}
}
@@ -122,7 +122,7 @@ public abstract class ResourceManager {
return dirs;
}
@Nullable
@NotNull
public static String getResourceName(@NotNull String resourceType, @NotNull String fileName) {
String extension = FileUtil.getExtension(fileName);
String s = FileUtil.getNameWithoutExtension(fileName);
@@ -21,7 +21,6 @@ import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ModulePackageIndex;
import com.intellij.openapi.roots.ModuleRootManager;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
@@ -40,6 +39,7 @@ import org.jetbrains.android.dom.resources.DeclareStyleable;
import org.jetbrains.android.dom.resources.ResourceElement;
import org.jetbrains.android.facet.AndroidFacet;
import org.jetbrains.android.resourceManagers.LocalResourceManager;
import org.jetbrains.android.resourceManagers.ResourceManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -167,7 +167,7 @@ public class AndroidResourceUtil {
LocalResourceManager manager = facet.getLocalResourceManager();
String resourceType = manager.getFileResourceType(file);
if (resourceType != null) {
String resourceName = FileUtil.getNameWithoutExtension(file.getName());
String resourceName = ResourceManager.getResourceName(resourceType, file.getName());
return findResourceFields(facet, resourceType, resourceName, onlyInOwnPackages);
}
}