Escolar Documentos
Profissional Documentos
Cultura Documentos
Agenda
Contexto
Exercícios e recapitulação.
Contexto
Component controller
• Existe somente um por componente Web Dynpro.
• Pode ser visualizado pelos demais controladores, uma vez que é global.
Custom controllers
•Elementos opcionais em um componente.
Configuration controllers
• Tipo especial de controlador customizado.
• Qualquer controlador pode acessá-lo, mas este não pode acessar nenhum outro
(“somente leitura”).
View controllers
• Cada visão consiste de um layout e de um controlador.
• Gerencia lógicas específicas da camada de visão, tais como validação de entrada dos
usuários e manipulação de ações (“clique no botão”).
Web Dynpro
Controllers
Tipos de controladores (3/3)
Window controllers
• Cada janela possui somente um controlador.
• Seus métodos podem ser chamados dos métodos de inbound plug da janela.
Web Dynpro
Controllers
Em tempo de execução, todas as instâncias de controladores são únicas em relação a
seus componentes pais -> SINGLETON
Encapsular uma view mais de uma vez em uma view asembly não é então possível.
Custom controllers
• São instanciados no momento que chamamos um método pela primeia vez.
Configuration controllers
• É o primeiro a ser instanciado em um componente.
Window controllers
• São instanciados somente quando o primeiro método é chamado.
Existem métodos standards nos controladores, que são sempre chamados em uma
determinada sequência. Estes são chamados de “hook methods” ( métodos
encadeados).
Estes métodos são executados somente uma vez durante o ciclo de vida do
controlador
Web Dynpro
Controllers Elementos comuns a todos os controladores
Atributos não ligados a nenhum elemento UI devem ser definidos na aba atributos,
sendo visíveis em todos os métodos do controlador.
Os métodos dos controladores podem acessar módulos de função, classes, BAPIs, etc.
Web Dynpro
Controllers Elementos comuns a todos os controladores
Web Dynpro
Controllers Componente e customizados: entidades especiais
Eventos podem ser definidos nestes dois tipos de controladores.
Posso ter métodos que irão tratar estes eventos em qualquer outro controlador
(visão, janela).
...
... Evento Método x.
Raise X X Message ‘oi’
Fimmétodo.
Web Dynpro
Controllers Componente e customizados: entidades especiais
Se dois ou mais métodos forem subscritos a um mesmo evento, a ordem que serão
executados é indefinida.
IMG CHECKBOX
Web Dynpro
Controllers Componente e customizados: entidades especiais
Web Dynpro
Controllers Controladores de visões: entidades especiais
O controlador da visão pode ser encarado com uma entidade do Web Dynpro
desenhada para tratar todos os aspectos dos dados exibidos e da interação com o
usuário.
Navigation Plugs: eventos, com seus respectivos tratadores, criados para permitir a
navegação entre diferentes controladores.
Possuem também inbound e outbound plugs. Estes podem ser utilizados para
navegações entre componentes (devem estar marcados como interface).
Web Dynpro
Controllers Controladores de janelas: entidades especiais
Contexto
Dados utilizados para controlar os elementos de interface são armazenados no
contexto do controlador.
Esta técnica possibilita que dois ou mais controles possam acessar a informação em
tempo de execução.
Novamente, vale ressaltar que não é possível compartilhar os dados do contexto de uma
visão.
Um atributo sempre está associado a um nó, mesmo que este seja o nó raiz.
Cardinalidade:
Mínima: 0 ou 1
Máxima: 1 ou n
Supply functions são mecanismos para popular os nós filhos e podem ser associadas a
qualquer nó presente no contexto do controlador.
Se o nó estiver vazio;
Se o index do “lead selection” mudar;
Se, através de programação, a coleção do nó for invalidada.
Não podemos utilizar nenhum comando para utilizar uma supply function, somente o
runtime do Web Dynpro pode acessá-las
Contexto
Supply Function
Quando associamos uma supply function, um método adicional no controlador será
criado com a seguinte assinatura:
PARENT_ELEMENT: referência para o nó pai;
NODE: referência para o nó atual.
Lazy data instantiation: O Web Dynpro sgue este princípio, no qual os dados somente
são criados quando são realmente precisos.
Aplicando este princípio ao contexto, significa que o dado em um filho será somente
carregado quando a aplicação precisar dele, do contrário o filho permanecerá vazio.
ID ALUNO
1 José
2 Daniela
3 João
4 Fernanda
Matemática 10 Matemática 6
Física 8 Física 5
Química 9 Química 7
Contexto
Context Mapping
Ferramenta WYSIWYG.
Existem elementos que não são visíveis, utilizados para organização, tais como:
TransparentContainer
ViewContainerUIElement
InvisibleElement.
Todos os layouts de visões são compostos por uma hierarquia de elementos UI.
RootUIElementContainer:
Nó raiz do tipo TransparentContainer.
Não pode ser alterado, muito menos excluído.
Context_Menus:
Menus definidos em tempo de projeto.
Em tempo de execução estes podem ser instanciados e associados a um UI.
Ficam acessíveis através do clique com o botão direito do mouse.
Definindo a interface com o
usuário Containers e Layouts
Containers
São elementos de UI que possuem elementos filhos.
Ocupam uma área retangular de um layout de visão.
Definem como seus elementos filhos serão arrumados através da
propriedade Layout, na qual um gerenciador de layout é associado.
Todos os filhos são exibidos em uma linha, contanto que o container seja largo o
suficiente.
RowLayout
Todos os filhos herdam a propriedade LayoutData.
Elementos com LayoutData = MatrixData serão exibidos na mesma linha, mesmo que
a margem direita seja excedida.
Os dados que são enviados pelo usuário são validados em tempo de execução. Caso
ocorra um conflito com o nó ou atributo do contexto, incluindo casos de domínio fixo,
os dados não são transportados para o contexto e uma mensagem de validação é
exibida.
Definindo a interface com o
usuário Controlando o comportamento de elementos UI
Após a criação deste atributo, basta realizar a ligação com a propriedade em questão.
Definindo a interface com o
usuário Controlando o comportamento de elementos UI
Definindo a interface com o
usuário Controlando o comportamento de elementos UI
Definindo a interface com o
usuário Controlando o comportamento de elementos UI
Definindo a interface com o
usuário Composite UI
O elemento do tipo tabela (Table UI) atua como pai para alguns elementos de coluna
(TableColumn UI), organizando-os em linhas e colunas.
Um editor de célula pode ser, por exemplo, dos seguintes tipos: TextView, InputField,
DropDownByKey, Checkbox, Button….
O tipo de interação que a coluna terá com o usuário é determinante para a definição
do elemento de edição da célula.
Exemplos:
TextInput: o dado apresentado poderá ser alterado.
TextView: o dado não é passível de atualização.
Button: o dado é apresentado como texto do botão. Neste caso o usuário não
pode alterar diretamente o dado, mas pode disparar um evento.
Definindo a interface com o
usuário
Definindo a interface com o
usuário
Quando selecionamos uma linha na tabela, um “round trip” é iniciado.
WDR_TEST_UI_ELEMENTS
Definindo a interface com o
usuário