IDEA-86404 android-apt: add styleable attrs to validity state

This commit is contained in:
Eugene Kudelevsky
2012-06-19 16:18:30 +04:00
parent 8cc7863748
commit bfb08b2f74
@@ -11,6 +11,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileFilter;
import com.intellij.util.ArrayUtil;
import com.intellij.util.containers.HashMap;
import org.jetbrains.android.dom.resources.DeclareStyleable;
import org.jetbrains.android.dom.resources.ResourceElement;
import org.jetbrains.android.dom.resources.Resources;
import org.jetbrains.android.facet.AndroidFacet;
@@ -58,10 +59,19 @@ public class ResourceNamesValidityState implements ValidityState {
final VirtualFile file = pair.getSecond();
for (final ResourceType resType : AndroidResourceUtil.VALUE_RESOURCE_TYPES) {
addValueResources(file, resType, AndroidResourceUtil.getValueResourcesFromElement(resType.getName(), resources), myResources);
addValueResources(file, resType, AndroidResourceUtil.getValueResourcesFromElement(resType.getName(), resources), myResources, "");
}
addValueResources(file, ResourceType.ATTR, resources.getAttrs(), myResources, "");
final List<DeclareStyleable> styleables = resources.getDeclareStyleables();
addValueResources(file, ResourceType.DECLARE_STYLEABLE, styleables, myResources, "");
for (DeclareStyleable styleable : styleables) {
final String styleableName = styleable.getName().getValue();
if (styleableName != null) {
addValueResources(file, ResourceType.DECLARE_STYLEABLE, styleable.getAttrs(), myResources, styleableName + '_');
}
}
addValueResources(file, ResourceType.ATTR, resources.getAttrs(), myResources);
addValueResources(file, ResourceType.DECLARE_STYLEABLE, resources.getDeclareStyleables(), myResources);
}
for (final VirtualFile subdir : manager.getResourceSubdirs(null)) {
@@ -94,7 +104,8 @@ public class ResourceNamesValidityState implements ValidityState {
private static void addValueResources(VirtualFile file,
ResourceType resType,
Collection<? extends ResourceElement> resourceElements,
Map<String, ResourceFileData> result) {
Map<String, ResourceFileData> result,
String namePrefix) {
for (ResourceElement element : resourceElements) {
final String name = element.getName().getValue();
@@ -104,7 +115,7 @@ public class ResourceNamesValidityState implements ValidityState {
data = new ResourceFileData();
result.put(file.getPath(), data);
}
data.addValueResource(new ResourceEntry(resType.getName(), name));
data.addValueResource(new ResourceEntry(resType.getName(), namePrefix + name));
}
}
}