O que Há de Novo no 3.2

Aqui estão as descrições de algumas alterações de interesse dos desenvolvedores de plug-in feitas na Plataforma Eclipse e no SWT para o release 3.2 do Eclipse.

Há também muitos recursos novos orientados aos usuários finais da plataforma que podem ser visualizados na seção O Que Há de Novo do Guia do Usuário do Ambiente de Trabalho.

Alterações de Plataforma

Refatoração de tempo de execução

Para tornar o tempo de execução do Eclipse mais flexível e permitir o uso independente dos componentes de tempo de execução, o plug-in org.eclipse.core.runtime foi dividido em vários plug-ins:

  • org.eclipse.equinox.common - código comum utilizado por mais de uma parte do antigo plug-in de tempo de execução (isto é, IPath, IStatus, IProgressMonitor).
  • org.eclipse.equinox.registry - Registro de extensão
  • org.eclipse.equinox.preferences - Mecanismo de preferências
  • org.eclipse.core.jobs - Mecanismo de tarefas
  • org.eclipse.core.contenttype - Mecanismo de conteúdo
  • org.eclipse.equinox.supplement - Um "plug-in" suplementar que é utilizado para suportar execução sem o OSGi.

Novas APIs foram incluídas para facilitar o controle das partes de tempo de execução divididas.

A refatoração do tempo de execução deve ser transparente aos outros plug-ins. Para obter mais detalhes, consulte o guia de migração do Eclipse 3.2.

Navegador comum

Um novo plug-in, org.eclipse.ui.navigator, introduz uma estrutura para criação de visualizadores que combinam o conteúdo de vários modelos de domínio. A estrutura permite contribuição declarativa de conteúdo, rótulos, ações, filtros e outros recursos. O plug-in org.eclipse.ui.navigator.resources fornece um uso concreto dessa estrutura na forma de uma visualização Explorador de Projetos e extensões de visualizador declarativo para o modelo IResource.

Figura mostrando a visualização explorador de projetos

Estrutura de propriedades tabulada

Foi incluída uma estrutura de propriedades tabulada. A estrutura de propriedades tabulada fornece uma página de propriedades de substituição, permitindo mostrá-las na visualização Propriedades utilizando controles arbitrários, organizados por guias e seções contribuídas por meio do registro de extensão.

Figura mostrando uma estrutura de propriedades tabulada

Consulte o artigo The Eclipse Tabbed Properties View para obter detalhes.

API do sistema de arquivo

Um novo plug-in, org.eclipse.core.filesystem, introduz uma nova API genérica para interagir com sistemas de arquivo. A plataforma foi migrada para utilizar essa API de sistema de arquivo vem vez das APIs java.io. Isso significa que recursos podem ser criados em sistemas de arquivo auxiliares arbitrários e plug-ins podem fornecer suporte para novos tipos de sistemas de arquivo.

Foi incluído suporte no projeto e assistentes de recurso vinculado para criar recursos vinculados a outros sistemas de arquivo. Os plug-ins que definem sistemas de arquivo alternativos podem vincular-se a esse suporte de assistente utilizando o ponto de extensão org.eclipse.ui.ide.filesystemSupport.

Figura mostrando um sistema de arquivo não local

Categorização incluída em Importação e Exportação

Os pontos de extensão org.eclipse.ui.importWizards e org.eclipse.ui.exportWizards agora suportam categorização.

Figura mostrando pontos de extensão

Dicas de ferramentas para anotações em Editores de Texto

O foco de anotação foi estendido de Texto JDT para Texto de Plataforma. O suporte para foco de controle de texto, vertical e visão geral é instalado por TextSourceViewerConfiguration que é utilizado por editores de texto:

Figura da dica de ferramenta de anotação

Navegação de anotação em Editores de Texto

A navegação de anotação foi estendida de Texto JDT para Texto de Plataforma e agora está disponível em todos os editores de texto.

Figura de ícones de navegação

Assistência do campo JFace

O JFace introduz novo suporte para auxiliar o usuário no preenchimento de campos em diálogos e formulários. O pacote org.eclipse.jface.fieldassist fornece classes que permitem decorar controles arbitrários com imagens e texto de foco correspondente. Estes podem ser utilizados com finalidades como marcar campos obrigatórios em um diálogo, mostrando condições de erro baseadas em campo ou prompts de assistência de conteúdo. O pacote também permite instalar propostas de conteúdo em um controle, incluindo um diálogo pop-up com propostas de conteúdo, pop-ups secundários para informações adicionais e opções para chamar propostas explicitamente ou em estilo automático (entrada direta).

Figura mostrando assistência de campo

Aprimoramentos JFace TreeViewer

O AbstractTreeViewer agora suporta vários elementos iguais na árvore, cada um com uma cadeia pai diferente. Esse suporte exige que os clientes ativem o mapeamento de elementos chamando setUseHashLookup(true).

O TreeViewer agora suporta árvores SWT.VIRTUAL. Há um provedor de conteúdo inativo correspondente ILazyTreeContentProvider que só retorna conteúdo quando é necessário.

Suporte para conteúdo dinâmico de Ajuda

O sistema de ajuda agora suporta composição dinâmica de conteúdo de ajuda. Tópicos criados em XHMTL podem conter marcação adicional específica do Eclipse para filtragem dinâmica de conteúdo com base nos valores os/ws/arch, na presença de plug-ins, em recursos ativados etc. Conteúdo compartilhado pode ser incluído em diversos documentos. Por último, os plug-ins podem contribuir com fragmentos XHTML que se conectam a âncoras em outros documentos. Tudo isso agora permite que os desenvolvedores de informações forneçam documentos dinâmicos que se adaptam ao contexto no momento da visualização.

Aprimoramentos de procura de ajuda

Indexação e procura de assistência do usuário foram aprimoradas de várias maneiras. Participantes adicionais de procura podem ser registrados por meio do ponto de extensão que pode incluir conteúdo no índice Lucene. A ajuda agora contribui com um participante de procura XHTML que pode indexar documentos de ajuda dinâmicos, criados em XHMTL (consulte o mencionado anteriormente). Além disso, os documentos que não estavam anteriormente no índice agora serão exibidos (por exemplo, folhas de dicas e páginas de boas-vindas). Acertos de procura agora podem ter diferentes ícones e a ação 'abrir' pode ser delegada ao mecanismo de procura.

Figura mostrando aprimoramentos de Procura

Problemas podem ser agrupados

Agora você pode agrupar problemas na visualização Problemas. Existem agrupamentos padrão por gravidade e tipo de problema, e grupos adicionais podem ser definidos por meio do ponto de extensão org.eclipse.ui.ide.markerSupport.

Ajuda aperfeiçoada nos diálogos

A maioria dos diálogos do Eclipse agora tem um botão de ajuda padrão no canto inferior esquerdo. Esse botão chama a ajuda de contexto, o mesmo que pressionar F1 (no Windows). Além disso, o conteúdo da ajuda agora aparecerá na bandeja do diálogo em vez de em uma janela separada. Diálogos customizados podem herdar essa funcionalidade subclassificando a nova classe TrayDialog, em vez de Dialog. Folhas de dicas agora podem acompanhar você nos diálogos (na bandeja) naquelas etapas que envolvem abertura de diálogos.

Links de comando incorporados no conteúdo de Assistência do Usuário

Links na Ajuda, folhas de dicas e o conteúdo de Introdução agora podem executar comandos quando ativados pelo usuário. Links de comando podem ser utilizados para abrir páginas de preferência, ativar assistentes, mostrar visualizações, abrir perspectivas e para muitas outras finalidades. A estrutura de comando é extensível, possibilitando muito mais usos de links de comando. O Guia do Usuário do Ambiente de Trabalho foi aprimorado com links de comando em várias partes. A figura a seguir mostra dois links de comando em um tópico de ajuda:

Links de comando no tópico de ajuda

Suporte para ativar comandos nas folhas de dicas

Agora você pode ativar comandos nas folhas de dicas. O arquivo de conteúdo a seguir contém os comandos para abrir a visualização Procura e o Explorador de Pacote.
<?xml version="1.0" encoding="UTF-8"?>
<cheatsheet title="Exemplo de Comandos em uma Folha de Dicas">
  <intro>

    <description>Uma folha de dicas mostra o
			explorador de pacotes</description>
  </intro>
  <item title="Mostrar Visualização de Procura">
     <description>Esta é uma etapa com um comando
		que mostra a visualização de procura.</description>

     <serialização de comando=
		"org.eclipse.search.ui.views.SearchView"/>  
  </item>
  <item title="Etapa 2">
    <description>Esta é uma etapa com um comando e
		parâmetros que mostra o explorador de pacotes.</description>

     <serialização de comando="org.eclipse.ui.views.showView(
		org.eclipse.ui.views.showView.viewId=
		org.eclipse.jdt.ui.PackageExplorer)"/> 
     <onCompletion>
         Exemplo de comando concluído.
     </onCompletion>
  </item>
</cheatsheet>

Mensagem de conclusão

Uma mensagem de conclusão pode ser incluída em uma etapa, na folha de dicas exibida quando essa etapa é concluída.

Figura mostrando uma mensagem de conclusão de folha de dicas

Folhas de dicas compostas

Folhas de dicas compostas são novidade no Eclipse 3.2. Uma folha de dicas composta fornece orientação para um problema grande, dividindo-o em tarefas menores com sua própria folha de dicas. As tarefas podem ser organizadas em grupos. As folhas de dicas compostas são abertas na visualização de folha de dicas e são ativadas utilizando o diálogo de seleção de folha de dicas. Cada tarefa tem uma descrição; hyperlinks conduzem o usuário em uma seqüência de tarefas.

Figura mostrando uma folha de dicas composta

Folhas de dicas compostas têm uma árvore que mostra as tarefas e seus status. O painel direito/inferior contém as tarefas individuais.

Figura mostrando uma folha de dicas composta

O conteúdo de uma folha de dicas composta é definido em um arquivo XML. O arquivo de conteúdo pode especificar quais dependências existem entre as tarefas para que uma tarefa só possa ser iniciada depois que todas as tarefas de pré-requisito tiverem sido concluídas.

Índice de palavra-chave de ajuda

A ajuda agora tem um índice de palavras-chave, no qual você pode registrar as palavras-chave de sua documentação e fornecer um link para um documento de ajuda apropriado. O índice está disponível na visualização Ajuda e na janela Ajuda (visualização mostrada a seguir).

Nota: o conteúdo do índice ainda não está disponível para o SDK (o índice só aparecerá se o conteúdo estiver disponível).

Figura mostrando a visualização Ajuda

Ferramenta de conversão de documentos de ajuda XHTML

O PDE tem um novo utilitário para converter rapidamente os documentos de ajuda HTML de um plug-in em XHTML. Além de converter o HTML em XHTML válido, a ferramenta atualizará a extensão de nome de arquivo, o índice e incluirá as ligações necessárias para ativar conteúdo dinâmico e procura de conteúdo XHTML. Após essa conversão, os usuários podem aproveitar a vantagem dos novos recursos de Ajuda 3.2, como filtragem de conteúdo dinâmico, reutilização de conteúdo e contribuição de conteúdo dinâmico, todos que exigem formato de conteúdo XHTML.

Essa função pode ser chamada em Ferramentas do PDE > Converter Arquivos de Ajuda em XHTML no menu de contexto de projetos de plug-in.

Figura mostrando a ferramenta de conversão XHTML

Boas-vindas universais

Com base em nossa experiência com implementações de boas-vindas concretas, oferecemos agora as Boas-vindas Universais configuráveis, a serem utilizadas por qualquer produto. Os produtos podem escolher entre 7 seções principais predefinidas: Visão Geral, Primeiras Etapas, Tutoriais, Amostras, O Que Há de Novo, Recursos da Web e Migrar (o Eclipse SDK utiliza 4 delas). As Boas-vindas Universais têm layouts de página configuráveis e níveis de importância para cada contribuição, e é totalmente ciente de temas. Além disso, oferecem apresentações HTML e SWT para 100% de cobertura de plataforma.

Uma página de preferências Bem-vindo fornecida pelas Boas-vindas Universais abre a customização de boas-vindas aos usuários finais e pode ser incluída em qualquer produto que deseja oferecê-la. Leia mais a respeito disso na Especificação Boas-vindas Universais.

Figura mostrando as Boas-vindas Universais

Suporte para configuração e temas em Bem-vindo

A estrutura de Introdução tem suporte de maior capacidade de configuração. Pode ser contribuído um configurador de introdução que oferece cálculo único dos filhos do grupo, suporte de substituição variável e resolução de caminho de âncora recente. Esse suporte é utilizado intensamente pelas Boas-vindas Universais, mas também pode ser usado por outras implementações de boas-vindas.

Temas representam coleções nomeadas de arquivos CSS, propriedades e imagens que definem coletivamente a aparência do conteúdo de boas-vindas. As Boas Vindas Universais aproveitam a vantagem desse suporte fornecendo recurso de seleção de tema e dois temas concretos na versão 3.2: 'Círculos' e 'Malha Roxa'.

Figura mostrando temas em Bem-vindo

Suporte a espaço de nomes para os pontos de extensão Ant

Os pontos de extensão org.eclipse.ant.core antTasks e antTypes agora permitem a designação de um URI no qual deverá residir a definição. Consulte erro 133190 para obter detalhes completos de todas as alterações.

Equipe de suporte para integração de modelo lógico

Foi incluída uma API que permite aos modelos lógicos participar da operação de Equipe. Com essa API, os provedores de Equipe podem:
  • Consultar os modelos para garantir que todos os recursos necessários sejam incluídos em uma operação de Equipe.
  • Utilizar a semântica de modelo para auxiliar na resolução de conflitos de mesclagem.
  • Permitir que os modelos participem da exibição de recursos durante Operações de Equipe

Sincronização com modelos de Recurso e Java

Alterações SWT

Indicador de classificação em tabelas e árvores

Tabela e Árvore agora suportam um indicador de ordem de classificação no cabeçalho da coluna.

Figura mostrando um indicador de ordem de classificação

Snippets do SWT mostrando classificação por coluna (simples) e classificação por coluna (tabela virtual).

Colunas reordenáveis em árvores

No Eclipse 3.1, foi incluída a capacidade de reordenar colunas em uma Tabela. Esse suporte agora foi incluído na Árvore.

A ordem de exibição das colunas em uma árvore pode ser alterada arrastando o cabeçalho da coluna, ou pode ser definida por programa.

Figura mostrando colunas reordenáveis

Exemplo de snippet.

Suporte de temas do XP aprimorado

No Windows XP, o SWT agora mostra o plano de fundo em textura nas pastas de guia. Grupos, rótulos, caixas de opções etc. são todos transparentes nesse plano de fundo. Além disso, widgets customizados, como StyledText, agora mostram a borda correta para o tema predominante do Windows XP.

Figura mostrando o suporte de temas do XP

Consulte as Perguntas Freqüentes do SWT para obter instruções de como executar com um skin do Windows XP.

GIFs animados

Imagens em GIF animado podem ser salvas em arquivo.

Figura mostrando suporte para GIF animado

Para obter um exemplo, consulte o snippet do SWT.

Notificação da aparência do desktop

Quando configurações de aparência, como tema, fonte ou cores padrão, são alteradas para o desktop, é emitido um evento SWT.Settings para a Exibição.

Figura mostrando uma notificação da aparência do desktop

Notificação de descarte

Anteriormente, quando um evento SWT.Dispose era recebido para um pai composto, todos os filhos eram descartados e portanto não podiam ser referidos. Na versão 3.2, o evento de Descarte é recebido antes da liberação dos filhos no sistema operacional.

Dicas de ferramentas para colunas

O texto das dicas de ferramenta pode ser definido no cabeçalho da coluna de uma tabela ou árvore TableColumn/TreeColumn.setTooltipText(String).

CoolBar vertical

Uma coolbar vertical pode ser criada utilizando o estilo SWT.VERTICAL.

Figura mostrando uma CoolBar vertical

Suporte OpenGL

Agora você pode utilizar OpenGL em aplicativos SWT. A interface OpenGL funciona com bibliotecas OpenGL de terceiros, como a LWJGL.

Figura mostrando um exemplo de OpenGL

Para obter exemplos, consulte os snippets do SWT

Árvore virtual

A árvore agora suporta o estilo SWT.VIRTUAL. Isso permite criar árvores com grandes quantidades de dados rapidamente. Quando TreeItems são necessários, eles são criados on-demand.

Para obter um exemplo, consulte o snippet do SWT.

Botões com imagem e texto

Os botões agora podem mostrar uma imagem e também texto. Esse recurso é suportado no Windows XP, Mac OS X e GTK.

Figura mostrando um botão com uma imagem

HIView no Mac OS X

O SWT agora utiliza o HIView no Mac OS X. Isso resolve muitos problemas de recorte e dimensionamento.

Incorporando objetos em texto

O uso do TextLayout agora possibilita incorporar objetos, como imagens ou widgets no texto. Métricas de glifo, como ascensão, declínio e largura, podem ser especificadas. Os objetos são agrupados com o texto.

Figura mostrando uma imagem incorporada no texto

Para obter um exemplo, consulte o snippet do SWT.

Recuar, alinhar e justificar texto

O TextLayout agora suporta recuo, justificação e alinhamento de texto.

Figura mostrando texto sendo alinhado

Para obter um exemplo, consulte o snippet do SWT.

Subida da linha de base do texto

O uso do TextLayout e do TextStyle agora possibilita especificar a subida da linha de base para uma área do texto.

Figura mostrando o texto recebendo uma subida da linha de base

Para obter um exemplo, consulte o snippet do SWT.

Suporte de cor HSB

Uma cor pode ser criada especificando matiz, saturação e brilho. Além disso, para uma determinada cor, é possível consultar os valores de matiz, saturação e brilho.

Figura mostrando o suporte HSB

Para obter um exemplo, consulte o snippet do SWT

Alinhamento, recuo, justificação de StyledText

O StyledText agora suporta recuo, justificação e alinhamento de texto.

Figura mostrando o StyledText sendo alinhado

Para obter um exemplo, consulte o snippet do SWT

Objetos incorporados no StyledText

O StyledText agora permite incorporar objetos, como imagens ou widgets no texto. Os objetos são agrupados com o texto.

Figura mostrando uma imagem incorporada no texto

Para obter um exemplo, consulte o snippet do SWT

Imagem do plano de fundo

Uma imagem de plano de fundo pode ser definida em um controle. Além disso, o plano de fundo pode ser herdado pelos widgets filho, como rótulos.

Figura mostrando uma imagem de plano de fundo em um controle

Para obter um exemplo, consulte o snippet do SWT

Carregamento de imagem nativa

O construtor Image(Device device, String filename) agora carregará imagens utilizando chamadas do sistema operacional nativo. Isso aprimorou o desempenho do carregamento de imagem e aumentou o tamanho máximo da imagem que pode ser carregada.

Arrastando texto

Se o evento SWT.DragDetect estiver vinculado a Text ou StyledText, a seleção não será limpa quando o usuário arrastar de uma área selecionada do texto. Isso possibilita oferecer suporte para arrastar a partir dos widgets Text e StyledText.

Para obter um exemplo, consulte este snippet do SWT

Novo widget ExpandBar

O widget ExpandBar permite ao usuário mostrar e ocultar coleções de widgets clicando em um cabeçalho. O ExpandBar contém diversos itens, cada um podendo ter uma imagem e um título no cabeçalho.

Figura mostrando widgets sendo ocultados

Para obter um exemplo, consulte este snippet do SWT.

Bullets em StyledText

StyledText agora pode mostrar listas formatadas em diversos estilos, incluindo bullets, numeradas, letras maiúsculas ou minúsculas e estilos com definição customizada.

Figura mostrando bullets em StyledText

Para obter um exemplo, consulte este snippet do SWT.

Árvore de Traçado Customizado

O widget Árvore agora suporta traçado customizado para células individuais. Os aplicativos podem aprimorar a aparência e o comportamento nativos da árvore pela renderização customizada dos dados. O aplicativo tem controle sobre a altura da linha, de modo que várias linhas de texto podem ser traçadas. Além disso, ele pode apresentar várias imagens na mesma célula, alterar a fonte ou a cor várias vezes, e ainda alterar a maneira em que as seleções são traçadas.

Figura mostrando traçado customizado para células individuais da árvore

Para obter exemplos, consulte os seguintes snippets:

Tabela de Traçado Customizado

O widget Tabela agora suporta traçado customizado para células individuais. Embora ainda mantendo a aparência e o comportamento nativos da tabela, os usuários podem customizar o modo como as células são traçadas para exibir dados em um formulário diferente de texto com imagem, mostrar várias linhas de texto em uma única célula, alterar a fonte e a cor várias vezes na mesma célula, substituir o traçado de seleção nativa etc.

Figura mostrando traçado customizado para células individuais da tabela

Para obter exemplos, consulte os seguintes snippets:

Arrastar sobre efeitos de Tabela e Árvore

Os widgets Tabela e Árvore agora fornecem feedback visual do que está sendo arrastado.

Figura mostrando feedback ao arrastar

Nova classe Tooltip

A nova classe ToolTip pode ser utilizada para exibir dicas de ferramentas que não estão diretamente vinculadas a um Controle. Essas dicas de ferramentas podem ser colocadas em qualquer local, e podem ainda ter a aparência padrão da plataforma ou uma aparência de BALÃO, conforme mostrado a seguir.

Figura mostrando dicas de ferramentas com estilo BALÃO