Os arquivos de propriedades do Storex, também conhecidos por nós como "properties", são arquivos que armazenam conjuntos de constantes e valores usados pela aplicação para exibição de mensagens e mudanças de comportamento durante sua operação.
Por padrão, todos os arquivos de propriedades do Storex ficam armazenados nas aplicações Standard. Mas as aplicações Custom podem modificar os valores destas constantes ou criar novas constantes para suas operações customizadas.
Por isso, criamos um engenho que vai facilitar a customização destas constantes, para que a aplicação Customizada manipule apenas seus "properties", sem modificar os "properties" Standard.
Como funciona o engenho?
O engenho de customização funciona da seguinte forma: basta você adicionar "_custom" ao nome do properties e adicionar as constantes a serem modificadas ou criar as novas constantes.
Hoje os arquivos "properties" podem ser reconhecidos pela aplicação de duas formas: com locale (indicador do idioma do arquivo), ou sem locale (o nome puro do arquivo).
Quando o "properties" possui locale, o seu nome é complementado com o indicador de idioma do arquivo, para que seja possível ter vários "properties" com idiomas diferentes, mas que representam o mesmo arquivo.
Veja o exemplo a seguir: o "properties" mensagensPDV.properties, se possuir locale, passa a ter os seguintes nomes:
Locale pt_BR: português - Brasil --> mensagensPDV_pt_BR.properties Locale pt_PT: português - Portugal --> mensagensPDV_pt_PT.properties Locale es_ES: espanhol - Espanha --> mensagensPDV_es_ES.properties Sem locale: mensagensPDV.properties
Ao utilizar o engenho, passa a existir no ambiente customizado o "properties "_custom", podendo conter ou não o locale.
Veja o exemplo a seguir: o mesmo "properties" mensagensPDV.properties, usado no exemplo anterior, pode ter os seguintes nomes customizados:
Locale pt_BR: português - Brasil --> mensagensPDV_custom_pt_BR.properties Locale pt_PT: português - Portugal --> mensagensPDV_custom_pt_PT.properties Locale es_ES: espanhol - Espanha --> mensagensPDV_custom_es_ES.properties Sem locale: mensagensPDV_custom.properties
Fique atento!
O "properties" customizado deve ficar sempre em um diretório acessível pelo classpath da aplicação. Sugerimos que seja o diretório ./bin/ da aplicação, ou embarcado no jar da aplicação!
Como chamo o "properties" customizado?
A chamada no código não muda. O engenho foi criado para estabelecer uma ordem de prioridade na busca do "properties". Como assim?
- Busca-se primeiro a constante no "properties" custom.
- Existe o arquivo ou a constante? Ótimo! É de lá que o sistema vai pegar o valor da constante!
- Não existe? Segue o processo atual de buscar a constante no "properties" standard
No exemplo abaixo, mostramos como uma constante é recuperada na aplicação.
try { control.limpaDisplay(ControladorPerifericos.DISPLAY_OPERADOR); control.imprimeDisplayOperMonet(MensagensPDV.getDescricao("CADUS06"), ConstantesPDV.MASCARA_MONETARIA); evento = (EventoTeclado) control.leDados(new long[] {EntradaDeDados.TECLADO}); } catch (ExcecaoNaoLocal e) { return ALTERNATIVA_DOIS; }
A classe MensagensPDV.java, que recupera o valor da constante "CADUS06", já está fazendo uso do engenho. Desta forma, não precisa mudar a forma de codificação para customizar um "properties". Basta realmente criar o arquivo _custom e inserir as constantes a serem customizadas.
Vamos customizar?
Aqui vamos utilizar o mesmo "properties" mensagensPDV_pt_BR.properties, que concentra todas as mensagens que são exibidas nas telas da aplicação durante sua operação.
No trecho abaixo, você pode ver como funciona este "properties". Ele é composto por um conjunto de "CONSTANTE = VALOR", para armazenar cada mensagem a ser exibida pela aplicação.
... CADUS05 = Senha invalida CADUS06 = Fundo troco: CADUS07 = Fnd troco: CADUS08 = Fundo de troco invalido[VOLTA] CADUS09 = Uso de fundo troco invalido CADUS10 = Suprimento: CADUS11 = Suprimento Inicial: ParametrizacoesOperacao = Inicio do Pacote ENOP01 = Fundo de troco -> ENOP02 = Operador nao cadastrado ENOP03 = Senha invalida ENOP04 = Operacao nao autorizada ENOP05 = Produto inconsistente ENOP06 = REDUCAO JA REALIZADA ENOP07 = Erro sincroniz impr ENOP08 = A receber: ENOP11 = Fechar gaveta ENOP12 = Aguarde Impressao ...
Vamos selecionar a constante CADUS06 para customizar. Observe o valor desta constante, e onde ela é usada na aplicação (marcado em amarelo)
CADUS06 = Fundo troco:
Agora vamos criar o arquivo customizado, onde você poderá modificar o valor desta constante, para que na sua aplicação custom seja exibida uma mensagem diferente da padronizada. Como faremos isso?
Vamos criar o arquivo mensagensPDV_custom.properties e colocá-lo no diretório ./bin da aplicação.
Agora vamos dar uma olhada no seu conteúdo. Vamos usar a mesma constante e trocar o seu valor! Observe que o arquivo só possui 1 constante. Ou seja, você só precisa colocar no "properties" custom o que você deseja criar ou modificar. Nada de replicar valores, ok?
CADUS06 = Informe o fundo de troco:
Agora, vamos subir a aplicação!
Veja que a aplicação mudou a mensagem de exibição! Isso porque o mensagensPDV_custom.properties possuía a constante modificada!