<< Clique para Mostrar o Sumário >>
Customizando a Biblioteca PowerControls |
Customizar a biblioteca PowerControls requer um certo cuidado. É importante lembrar que esta biblioteca é desenvolvida e mantida pela Elipse Software, ou seja, caso o usuário realize alguma modificação em um XControl da biblioteca, esta customização é perdida quando a biblioteca é eventualmente atualizada. Visando este cenário, este exercício demonstra a maneira recomendada para a personalização da biblioteca PowerControls, que consiste na criação de uma nova biblioteca contendo uma instância da biblioteca padrão.
Nesta aplicação, todos os Disjuntores devem conter o ícone da Proteção 79 ao lado do objeto. Para isto, vamos criar uma versão customizada do objeto Breaker.
1.Apague o objeto ProtectionItem criado em Tela no exercício anterior.
2.Crie um novo XControl usando a opção Inserir Xcontrol em no item Bibliotecas de Objetos - XControls do Organizer, selecionando a opção <Nova Biblioteca>.
Opção Inserir XControl em
3.Configure o nome desta nova biblioteca.
4.Renomeie o objeto criado de "XControl1" para "BreakerCustom".
5.Instancie um objeto Breaker dentro do objeto BreakerCustom.
Inserir objeto Breaker
NOTA |
Ao instanciar um XControl dentro de outro, cria-se uma dependência entre as bibliotecas. Agora, o objeto BreakerCustom da biblioteca criada só funciona corretamente caso a biblioteca PowerControls também esteja presente no Domínio. |
6.Crie a propriedade SourceObject, que deve ser exatamente igual à do XControl original.
Propriedade SourceObject
7.Associe a propriedade SourceObject à mesma propriedade interna da biblioteca. Para isto, selecione a aba Design do objeto BreakerCustom, clique com o botão direito do mouse no objeto Breaker1 e selecione a aba Associações. Associe a propriedade SourceObject do objeto Breaker1 à propriedade SourceObject do objeto BreakerCustom, conforme a figura a seguir.
Associação com a propriedade SourceObject
8.Após este procedimento, crie os pontos referentes aos terminais. Isto deve ser realizado com o auxílio da ferramenta Editar Pontos de Conexão . O primeiro destes deve se chamar "Terminal1", e o sufixo deve ser incrementado de acordo com o número de pontos necessários (neste caso, "Terminal1" e "Terminal2").
Criação do Terminal 1
Criação do Terminal 2
9.Além da propriedade SourceObject, o Importador de Telas necessita das propriedades Orientation, ShowTerminals e ColorMode para realizar a importação dos objetos customizados para a Tela de operação. Da mesma forma que com a propriedade SourceObject, crie as propriedades Orientation, ShowTerminals e ColorMode, conforme a figura a seguir.
Criação de propriedades
NOTA |
A propriedade ColorMode só está disponível em aplicações criadas a partir da versão 4.7 do Elipse Power. |
10.Associe as propriedades criadas às suas respectivas propriedades internas da biblioteca, conforme mostrado anteriormente neste exercício.
Associações das novas propriedades
11.Para as modificações necessárias, vamos inserir um objeto ProtectionItem. Para isto, selecione a aba Design do objeto BreakerCustom, clique com o botão direito do mouse na área cinza e selecione o item Inserir - PowerProtectionControls - ProtectionItem.
Inserir objeto ProtectionItem
12.Posicione o objeto ao lado do Disjuntor.
Posicionando o objeto ProtectionItem
13.Clique com o botão direito do mouse no objeto e selecione o item Propriedades. Na aba Associações, clique em à direita da propriedade ProtectionSource para abrir o AppBrowser.
14.Com o auxílio do AppBrowser, selecione a propriedade SourceObject do objeto BreakerCustom.
15.Complete a expressão digitando o texto ".Protections.[79]". A expressão final deve ser semelhante à da figura a seguir.
Propriedade SourceObject com expressão
NOTA |
O XControl ProtectionItem, configurado desta forma, só funciona corretamente caso exista, dentro do Disjuntor associado, uma pasta Protections e uma Proteção com o nome 79. Note que o Verificador de Domínio indica que a Associação está incorreta, colorindo a expressão em vermelho. Caso o aplicativo siga esta regra proposta, esta indicação pode ser ignorada. |
16.Salve as alterações.
17.Clique com o botão direito do mouse no item Bibliotecas de Objetos do Organizer e selecione a opção Registrar Bibliotecas Carregadas .
18.Por último, importe a Tela novamente, mas agora utilizando o objeto BreakerCustom. Para realizar esta importação, clique com o botão direito do mouse no item ConfiguracaoPower em Objetos de Servidor - Power - Configuração e selecione a opção Modelo Elétrico - Importar para Tela(s).
Opção Importar para Tela(s)
19.Na janela Importação para Telas, selecione a opção Preferências.
20.Na janela Preferências de Importação para Telas, desabilite a opção Usar classes padrão da biblioteca PowerControls.lib e, no objeto Disjuntor, selecione o objeto Breaker customizado (BreakerCustom), clicando em na coluna Classe.
Janela Preferências de Importação para Telas
NOTA |
Se todas as configurações foram executadas com sucesso (propriedades e terminais), o nome da classe aparece em negrito, informando que aquela não é uma classe padrão. Caso contrário, uma mensagem é mostrada indicando quais pontos não foram configurados com sucesso. |
21.Clique em OK e, na janela Importação para Telas, selecione a Subestação SE1 e a Tela para onde esta Subestação deve ser importada. Importe para a Tela e verifique que a Tela é importada com o objeto criado anteriormente.
22.Execute a aplicação e verifique as novas funcionalidades.
NOTA |
Este formato de customização de bibliotecas torna possível atualizar a biblioteca base da Elipse Software (PowerControls.Lib) e toda melhoria realizada no objeto base é aplicada automaticamente à biblioteca customizada. Porém, caso esta característica não seja necessária e se deseje realizar a modificação mais rapidamente, pode-se simplesmente criar as novas funcionalidades na biblioteca padrão. Com isto, todas as Telas já importadas recebem estas novas funcionalidades. |
DESAFIO XII |
Crie um Display, ao lado do Disjuntor, para indicar se ele está em modo Local ou Remoto. Execute esta configuração dentro da biblioteca. |