Criando um Task Flow mestre-detalhe

O Oracle ADF (Application Development Framework) é um framework de aplicação baseado na plataforma Java, padrões Java EE e tecnologias open-source. Por ser declarativo, o Oracle ADF simplifica e acelera o desenvolvimento, possibilitando que os desenvolvedores foquem na lógica de negócio da aplicação, ao invés dos detalhes de codificação.

Vamos começar a programar em Oracle ADF, criando um Task Flow mestre-detalhe de departamentos e funcionários. Baixe a aplicação de exemplo: MasterDetailApp.zip

Para criar uma nova aplicação ADF Oracle, navegue até Arquivo | Geral | Applications, selecione Web Application Fusion (ADF), e clique em OK.

Altere as seguintes propriedades:

  • Application Name: MasterDetailApp
  • Application Package Prefix: br.com.waslleysouza

Nós não precisamos alterar os projetos, portanto, clique em Finish.

creating-a-master-detail-task-flow1

Agora, temos uma aplicação com dois projetos, Model que é responsável pela camada de modelo (model layer) e ViewController que é responsável pelas camadas de visão e controle (view e controller layer).

Para criar Business Components, clique com o botão direito no projeto Model e selecione New.
Navegue até Business Tier | ADF Business Components, selecione Business Components from Tables, e clique em OK.

Se esta é a primeira vez que você cria uma aplicação, você terá que criar uma conexão de banco de dados.
Clique no ícone de adição para criar a conexão.
Depois de configurar as propriedades, clique em OK duas vezes.

creating-a-master-detail-task-flow2

Um Entity Object representa uma linha em uma tabela de banco de dados e simplifica a modificação de seus dados.
Nós só precisamos das tabelas de Empregados e Departamentos para esta aplicação.
Clique em Query para procurar tabelas do esquema HR e selecione Employees e Departments. Clique em Next.

creating-a-master-detail-task-flow3

Um View Object representa uma consulta SQL e simplifica o trabalho com seus resultados.
Selecione Employees e Departments, e clique em Next.

creating-a-master-detail-task-flow4

Nós não precisamos de Read-Only View Object. Clique em Next.

Application Module é o componente transacional que os componentes de interface do usuário usam para trabalhar com dados de aplicações.
Clique em Finish.

creating-a-master-detail-task-flow5

Agora, nós temos doze arquivos em nosso projeto:

  • AppModule é um Application Module.
  • Employees e Departments são Entity Objects.
  • EmployeesView e DepartmentsView são View Objects.
  • EmpManagerFkAssoc, DepMgrFkAssoc e EmpDepFkAssoc são Entity Associations. Entity Associations são componentes de negócios que definem uma relação entre dois Entity Objects.
  • EmpManagerFkLink, DepMgrFkLink e EmpDepFkLink são View Links. View Links são componentes de negócios que definem uma relação entre dois View Objects.
  • O arquivo Model.jpx contém informações de configuração que o JDeveloper usa em design time para permitir que você crie o projeto Model com ADF Business Components.

creating-a-master-detail-task-flow6

Para criar Task Flow, clique com o botão direito no projeto ViewController e selecione New.
Navegue até Web Tier | JSF, selecione ADF Task Flow, e clique em OK.
Desmarque a opção Create with Page Fragments, e clique em OK.

creating-a-master-detail-task-flow7

Arraste e solte um componente view do Component Palette dentro do Task Flow.
Renomeie para DepartmentEmployees.

creating-a-master-detail-task-flow8

Clique duas vezes em DepartmentEmployees, e clique em OK para criar a página.

creating-a-master-detail-task-flow9

Vá para Component Palette e arraste e solte um Panel Splitter da seção Layout dentro da página.
Mude a propriedade Orientation para vertical.

creating-a-master-detail-task-flow10

creating-a-master-detail-task-flow11

Vá para Data Controls do painel Application Navigator, e expanda AppModuleDataControl.
Arraste e solte DepartmentsView1 dentro do first facet, e selecione Table | ADF Read-only Table.
Selecione a opção Single Row, e clique em OK.

creating-a-master-detail-task-flow12

Vá para Data Controls do painel Application Navigator, e expanda DepartmentsView1.
Arraste e solte EmployeesView3 dentro do second facet, e selecione Table | ADF Read-only Table.
Clique em OK.

creating-a-master-detail-task-flow13

Nós precisamos atualizar a segunda tabela quando selecionarmos uma linha na primeira, para pegar os funcionários do departamento.
Selecione a segunda tabela, e vá para o painel Property Inspector.
Edite a propriedade PartialTriggers, selecione a primeira tabela, e clique em OK.

creating-a-master-detail-task-flow14

Salve tudo.
Para executar a aplicação, clique com o botão direito em task-flow-definition.xml e selecione Run.

creating-a-master-detail-task-flow15

Obs.: Em vez de criar duas tabelas dentro da página, você pode arrastar e soltar EmployeesView3 dentro da página e selecionar Master-Detail | ADF Master Table, Detail Table.
Dessa forma você tem o mesmo resultado. =D

creating-a-master-detail-task-flow16

Waslley Souza

Autor: Waslley Souza

Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle WebCenter Portal, Oracle ADF e Java.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *