use of org.jetbrains.android.dom.resources.Item in project android by JetBrains.
the class AndroidResourceUtil method addValueResource.
@NotNull
public static ResourceElement addValueResource(@NotNull final ResourceType resType, @NotNull final Resources resources, @Nullable final String value) {
switch(resType) {
case STRING:
return resources.addString();
case PLURALS:
return resources.addPlurals();
case DIMEN:
if (value != null && value.trim().endsWith("%")) {
// Deals with dimension values in the form of percentages, e.g. "65%"
final Item item = resources.addItem();
item.getType().setStringValue(ResourceType.DIMEN.getName());
return item;
}
if (value != null && value.indexOf('.') > 0) {
// Deals with dimension values in the form of floating-point numbers, e.g. "0.24"
final Item item = resources.addItem();
item.getType().setStringValue(ResourceType.DIMEN.getName());
item.getFormat().setStringValue("float");
return item;
}
return resources.addDimen();
case COLOR:
return resources.addColor();
case DRAWABLE:
return resources.addDrawable();
case STYLE:
return resources.addStyle();
case ARRAY:
// todo: choose among string-array, integer-array and array
return resources.addStringArray();
case INTEGER:
return resources.addInteger();
case FRACTION:
return resources.addFraction();
case BOOL:
return resources.addBool();
case ID:
final Item item = resources.addItem();
item.getType().setValue(ResourceType.ID.getName());
return item;
case ATTR:
return resources.addAttr();
case STYLEABLE:
return resources.addDeclareStyleable();
default:
throw new IllegalArgumentException("Incorrect resource type");
}
}
use of org.jetbrains.android.dom.resources.Item in project android by JetBrains.
the class ValueResourceInfoImpl method computeDomElement.
@Nullable
public ResourceElement computeDomElement() {
final PsiFile file = PsiManager.getInstance(myProject).findFile(myFile);
if (!(file instanceof XmlFile)) {
return null;
}
final XmlTag tag = PsiTreeUtil.findElementOfClassAtOffset(file, myOffset, XmlTag.class, true);
if (tag == null) {
return null;
}
final DomElement domElement = DomManager.getDomManager(myProject).getDomElement(tag);
if (!(domElement instanceof ResourceElement)) {
return null;
}
final String resType = domElement instanceof Item ? ((Item) domElement).getType().getStringValue() : AndroidCommonUtils.getResourceTypeByTagName(tag.getName());
if (!myType.getName().equals(resType)) {
return null;
}
final ResourceElement resDomElement = (ResourceElement) domElement;
final String resName = ((ResourceElement) domElement).getName().getStringValue();
return myName.equals(resName) ? resDomElement : null;
}
use of org.jetbrains.android.dom.resources.Item in project android by JetBrains.
the class AndroidResourceUtil method getValueResourcesFromElement.
@NotNull
public static List<ResourceElement> getValueResourcesFromElement(@NotNull ResourceType resourceType, @NotNull Resources resources) {
final List<ResourceElement> result = new ArrayList<>();
//noinspection EnumSwitchStatementWhichMissesCases
switch(resourceType) {
case STRING:
result.addAll(resources.getStrings());
break;
case PLURALS:
result.addAll(resources.getPluralses());
break;
case DRAWABLE:
result.addAll(resources.getDrawables());
break;
case COLOR:
result.addAll(resources.getColors());
break;
case DIMEN:
result.addAll(resources.getDimens());
break;
case STYLE:
result.addAll(resources.getStyles());
break;
case ARRAY:
result.addAll(resources.getStringArrays());
result.addAll(resources.getIntegerArrays());
result.addAll(resources.getArrays());
break;
case INTEGER:
result.addAll(resources.getIntegers());
break;
case FRACTION:
result.addAll(resources.getFractions());
break;
case BOOL:
result.addAll(resources.getBools());
break;
}
for (Item item : resources.getItems()) {
String type = item.getType().getValue();
if (resourceType.getName().equals(type)) {
result.add(item);
}
}
return result;
}
Aggregations