Talvez você queira estender o SWT implementando o widget próprio customizado. O SWT fornece um pacote, org.eclipse.swt.custom, que contém controles personalizados que não estão no conjunto núcleo dos controles do SWT, mas são necessários para implementar o workbench da plataforma.
Controle |
Propósito |
---|---|
CBanner | CBanner é utilizado no workbench para fazer layout da área da barra de ferramentas e da barra de ferramentas de comutação de perspectiva. |
CCombo | Semelhante ao Combo, mas é verticalmente redimensionável permitindo que seja ajustado dentro das células da tabela. |
CLabel | Semelhante ao Label, mas suporta recorte de texto com reticências. Suporta também um efeito gradual para as cores do plano de fundo vistas na visualização ativa do workbench. Não suporta agrupamento. |
CTabFolder | Semelhante ao TabFolder, mas suporta a configuração adicional da aparência visual das guias (superior ou inferior) e molduras. |
CTabItem | Objeto selecionável da interface com o usuário que corresponde a uma guia de uma página em um CTabFolder. |
SashForm | Controle composto que forma o layout de seus filhos em uma disposição de linha ou coluna e utiliza um Sash para separá-los de forma que o usuário possa redimensioná-los. |
ScrolledComposite | Controle composto que rola seu conteúdo e opcionalmente expande seu conteúdo para preencher o espaço disponível. |
StyledText | Controle editável que permite ao usuário digitar texto. Os intervalos de texto dentro do controle podem ter cores distintas e estilos de fonte. |
ViewForm | Utilizado no workbench para posicionar e ajustar a etiqueta/barra de ferramentas/barra local do menu de uma visualização. |
Depois de determinar a necessidade de um widget personalizado e de ter decidido quais plataformas devem ser suportadas, você pode considerar várias técnicas de implementação do widget. Essas técnicas podem ser mescladas e combinadas, dependendo do que está disponível na plataforma do sistema operacional subjacente.
Se o aplicativo exige um widget nativo que não seja fornecido pelo SWT, será necessário implementá-lo de forma nativa. Ele pode ser um widget da plataforma, de terceiros ou qualquer outro em uma biblioteca compartilhada da plataforma. Um exemplo completo de implementação de um widget customizado nativo pode ser localizado em Criando Widget Próprios Utilizando o SWT.
Os widgets podem ser combinados para formarem widgets mais sofisticados. Por exemplo, um Combo pode ser implementado utilizando um widget de entrada de texto juntamente com um botão e uma lista drop-down. Para implementar um widget combinado, crie uma subclasse de Composite e gerencie os filhos internamente.
Um exemplo simples pode ser localizado em CCombo.
Em alguns casos, você não tem qualquer código nativo ou widgets existentes que ajudem na implementação do novo widget. Isso significa que você mesmo deve desenhar o widget na rotina de tratamento para o evento Paint. Embora essa técnica possa tornar-se bastante complicada, ela tem a vantagem de produzir uma implementação completamente portátil.
Os controles de desenho customizado são implementados através da subclassificação de Canvas ou Composite. Divida Canvas se o widget não tiver nenhum controle de filho.
A implementação interna de um widget de desenho personalizado normalmente envolve estas tarefas importantes:
Muitos dos widgets implementados em org.eclipse.swt.custom utilizam essa abordagem.Um exemplo simples pode ser localizado em CLabel.
Informações adicionais sobre widgets personalizados podem ser localizadas em Criando seus próprios widgets utilizando o SWT.