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
}
});
}
|
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.
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
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
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
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
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
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.
|