Avançar para a área de conteúdo

ir para o conteúdo principal

developerWorks Brasil  >  Linux  >

Usando Eclipse Ganymede para Desenvolvimento de Dispositivos para Desktop, Web e Remotos, Parte 3: Desenvolvendo para a Plataforma Rich Client, da Maneira Ganymede

eRCP: Tornando-se Remoto

developerWorks
Ir para a página anteriorPágina 3 de 10 Ir para a próxima página

Opções de documento

Código de amostra


Classificar este tutorial

Ajude-nos a melhorar este conteúdo


Refatorando o Ambiente Remoto

Assim como o RAP, o eRCP é um subconjunto do RCP completo. Desse modo, você precisa refatorar seu código para utilizar o eRCP. Além disso, você precisa levar em consideração os limitadores da plataforma remota e fazer algumas mudanças no layout da UI. Nesta seção, você verá como fazer essas mudanças no organizador pessoal.

Mudando de SelectionAdapter para SelectionListener

O eRCP se assemelha ao RCP na forma como cria um pacote configurável de seus aplicativos. Cada um é um plug-in único, empacotado como um pacote configurável OSGi completo (OSGi define uma estrutura para ativar e executar aplicativos baseados em Java), com sua própria exibição e um shell para controles de GUI.

Mas devido aos diferentes limitadores de exibição de um aplicativo remoto, o eRCP requer que você modifique os tipos de controles que você utiliza para aqueles mais adequados para um aplicativo integrado. Vamos percorrer cada controle utilizado em seu organizador pessoal e ver seu eRCP equivalente.

Primeiro, o SelectionAdapter utilizado pelo RCP é um SelectionListener no eRCP. Localize cada instância de SelectionAdapter no organizador pessoal e substitua-as por SelectionListener (consulte Listagem 1). Elas estão em PersonalTaskView.java e PersonalTaskViewer.java.


Listagem 1. createPartControl de PersonalTaskView Utilizando SelectionAdapter

public void createPartControl(Composite parent) {
    viewer = new PersonalTaskViewer(parent);
    viewer.getCloseButton().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            handleDispose();
        }
    });
}

A Listagem 2 mostra o método createPartControl de PersonalTaskViewer refatorado para utilizar SelectionListener em vez de SelectionAdapter.


Listagem 2. createPartControl Utilizando SeletionListener do eRCP

public void createPartControl(Composite parent) {
    viewer = new PersonalTaskViewer(parent);
    viewer.getCloseButton().addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            handleDispose();
        }

        public void widgetDefaultSelected(SelectionEvent arg0) {
            // TODO stub de método gerado automaticamente
            // TODO Por enquanto, isso não será implementado
    }
    });
}



Voltar para parte superior


Utilizando eWorkbench em vez de Workbench

O modelo Workbench é fundamental para o Eclipse. Ele define a estrutura de um plug-in para o ambiente do Eclipse. Um Workbench utiliza uma perspectiva para alocar espaço de tela e controlar a exibição de um aplicativo. Cada aplicativo é composto de várias visualizações.

O eRCP faz uso de um subconjunto do modelo Workbench através da implementação de uma versão adequada para a plataforma remota chamado eWorkbench (por exemplo, o eWorkbench não possui o modelo de perspectiva do Workbench integral). Um aplicativo eRCP de plug-in não possui um método main, mas estende uma instância do eWorkbench, que permite que ele seja descoberto e executado no encadeamento do Workbench principal. O Workbench compartilha seu encadeamento de execução entre todos os aplicativos eRCP, permitindo que vários aplicativos sejam executados dentro de uma única JVM.

Para modificar o organizador pessoal para utilizar o eWorkbench, você deve remover essas classes utilizadas pelo Workbench integral que não se aplicam a uma plataforma remota. No Package Explorer, exclua os seguintes arquivos:

  • ApplicationActionBarAdvisor.java
  • ApplicationWorkbenchWindowAdvisor.java
  • ApplicationWorkbenchAdvisor.java
  • Perspective.java
  • TaskOrganizerApplication.java

Observe que alguns dos arquivos que você removeu não têm eWorkbench equivalente. Por exemplo, o eWorkbench não possui nenhuma perspectiva. Da mesma forma, ele não não possui um main e não requer uma classe Application. Esses arquivos dão uma idéia de algumas das diferenças entre um Workbench e um eWorkbench.



Voltar para parte superior


Remover os Modificadores de Célula

Como seu trabalho no RAP na Parte 2, você precisa remover o CellModifier e substituí-lo por um mecanismo utilizando uma caixa pop-up. Isso foi discutido com detalhes na Parte 2 e está disponível no download do código. Após você fazer essas mudanças, o Eclipse deve ser compilado sem erros.


Figura 6. Visualização Package Explorer do Projeto após Modificações no eRCP
Visualização Package Explorer do Projeto após Modificações no eRCP



Voltar para parte superior


Refatorando os Pontos de Extensão

Agora que o código está em compilação, é hora de modificar os pontos de extensão para corresponder aos que são necessários para o eRCP. Remova quaisquer pontos de extensão irrelevantes para o eRCP. Como o código que você excluiu, existem extensões relacionadas aos aspectos do Workbench que não se aplicam ao eRCP, como as perspectivas.

Abra plugin.xml e clique na guia Extensões. O Eclipse exibirá um editor para as extensões, listando aquelas utilizadas pelo organizador pessoal. Remova o seguinte:

  • org.eclipse.core.runtime.applications
  • org.eclipse.ui.perspectives
  • org.eclipse.core.runtime.products

Como o código que você excluiu na seção anterior, existem extensões relacionadas aos aspectos do Workbench que não se aplicam ao eRCP, como as perspectivas.

Agora você quer incluir as extensões importantes para o eRCP. Clique em Incluir para ver a tela Nova Seleção de Ponto de Extensão.


Figura 7. Incluindo o Ponto de Extensão dos Aplicativos eWorkbench do eRCP
Incluindo o Ponto de Extensão dos Aplicativos eWorkbench do eRCP

Selecione org.eclipse.ercp.eworkbench.applications e pressione Concluir. Essa extensão é como o eRCP vai reconhecer o organizador de tarefa pessoal e vai servir de ponto de ativação, semelhante à extensão de aplicativo utilizada no RCP. Após a inclusão da extensão, o Eclipse exibirá propriedades para ela. Insira com.devworks.tutorial.po.application como o ID e Organizador de Tarefa Pessoal como o nome. Você também deve garantir que a propriedade singleton seja configurada como true, já que isso informará a estrutura do eRCP de que deve haver somente um organizador pessoal por vez em execução no dispositivo.


Figura 8. Configurando as Propriedades para a Visualização de Aplicativos
Configurando as Propriedades para a Visualização de Aplicativos

Após todas as inserções, o ID aparecerá na visualização em árvore sob o nome do aplicativo. Selecione-o e, no campo rotulado como normal, insira com.devworks.tutorial.view. Esse é o ID da visualização do organizador de tarefa pessoal que o eWorkbench exibirá quando o aplicativo for ativado.


Figura 9. Configurando a Visualização Utilizada por eWorkbench
Configurando a Visualização Utilizada por eWorkbench

Se você selecionar a guia Dependências no plugin.xml, você verá que o Eclipse incluiu automaticamente o org.eclipse.ercp.eworkbench como um plug-in dependente.


Figura 10. O eWorkbench Listado como um Plug-in Dependente
O eWorkbench Listado como um Plug-in Dependente

Certifique-se de salvar suas mudanças. Seu plugin.xml agora deve ser semelhante à Listagem 3.


Listagem 3. plugin.xml com as Dependências Apropriadas

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.2"?>
<plugin>
   <extension
         point="org.eclipse.ui.views">
      <view class="com.devworks.tutorial.po.view.PersonalTaskView"
            icon="icons/alt_window_16.gif"
            id="com.devworks.tutorial.po.view"
            name="Personal Task Organizer">
      </view>
   </extension>
   <extension
         point="org.eclipse.ercp.eworkbench.applications">
      <application
            id="com.devworks.tutorial.po.application"
            name="Personal Task Organizer"
            singleton="true">
         <views normal="com.devworks.tutorial.po.view">
         </views>
      </application>
   </extension>
</plugin>

Agora você já fez todas as mudanças necessárias para adaptar seu aplicativo RCP ao eRCP. Na próxima seção, você verá o que é necessário para a execução do organizador pessoal no simulador de dispositivo remoto como uma maneira eficiente de testar seu código e vê-lo em execução.



Voltar para parte superior



Ir para a página anteriorPágina 3 de 10 Ir para a próxima página