Object style¶
Alguns elementos incluem uma propriedade chamada "estilo" que define um ícone e uma cor. Essas informações visuais são muito úteis para navegar rapidamente pelo aplicativo. Alguns casos de uso típicos:
- Distinguir programas diferentes e trackedEntityTypes em uma lista de programas.
- Em formulários de entrada de dados com um optionSet, mostra as opções com ícones e cores em vez de nomes.
- Estágios de programa diferentes dentro de um programa.
Esta propriedade é opcional e não é definida na maioria dos casos. Um estilo de objeto pode ter um ícone, uma cor ou ambos.
Ícone¶
DHIS2 includes a predefined set of icons. Those icons are included in the SDK and are located within the resources, in the "drawable" folder.
Staring on version v41, it is possible to upload user-defined icons and assign them to metadata objects. The actual images of these icons are stored as a FileResource and must be explicitly downloaded in a separate query.
d2.fileResourceModule().fileResourceDownloader()
.byDomainType().eq(FileResourceDomainType.ICON)
.download()
You can get the information about a particular icon by using the IconCollectionRepository. It returns an Icon object, which is a sealed class with two possible values: Default or Custom.
The way to render the actual image will depend on the Icon type.
val icon = d2.iconModule().icons().key("icon_key").blockingGet()
icon?.let {
when (icon) {
is Icon.Custom -> {
val path = icon.path
val fileResourceUid = icon.fileResourceUid
// Use this information to load the file
}
is Icon.Default -> {
val resourceName = icon.key
// Use this information to load the resource
}
}
}
Cor¶
Ele contém o valor hexadecimal para a cor. Ele pode ser usado para personalizar o fundo, a cor do texto, os títulos das linhas, etc.
program.style().color() // For example #9C33FF