Segunda-feira, Março 05, 2007

Desktop API: Integração entre Aplicativos Java e o Sistema Operacional Nativo

A Desktop API, do Java SE 6, permite que softwares baseados na tecnologia Java interajam com aplicativos padrões do sistema operacional nativo; ou seja, aplicativos que estão associados com certas extensões de arquivos numa determina plataforma.

Isso equivale a dizer que o software que utiliza a Desktop Api pode:

  • executar o navegador de Internet padrão com determinado URI (Uniform Resource Identifier)
  • executar o cliente de e-mail padrão, opcionalmente com determinado mailto URI
  • executar um aplicativo registrado no sistema operacional hospedeiro, abrir, editar ou imprimir um arquivo associado a esse aplicativo.

Desktop API in Action

Ao clicar no hyperlink Pedir Suporte desse aplicativo, o cliente de e-mail padrão abre uma janela de composição de e-mail com o endereço do suporte técnico e o título "Pedido de Suporte".

O hyperlink é criado automaticamente após adicionar o Action AskForSuporte num JXTaskPane.

public class AskForSuporte extends AbstractAction{
.....// O ator pincipal desse artigo. Se atuar bem, ganha o Oscar!
.....private Desktop desktop;
.....private URI uri;
.....// A URI maito.
.....private static final String MAILTO =
...............mailto:rafaelfiume_fatec@yahoo.com.br?subject=Pedido%20de%20Suporte%20Técnico";
.....// O rótulo do hyperlink.
.....private static final String NAME = "Pedir Suporte";
.....private static final String ACTION = "pedir_suporte";
.....// O tooltip text do hyperlink.
.....private static final String SHORT_DESCRIPTION = "Requisita suporte para o sistema";

.....
public AskForSuporte() {
..........super();
..........putValue(Action.NAME, NAME);
..........putValue(Action.SHORT_DESCRIPTION, SHORT_DESCRIPTION);
..........putValue(Action.ACTION_COMMAND_KEY, ACTION);
..........// Verifica se a a plataforma em questão provê suporte para a classe Desktop.
..........if (Desktop.isDesktopSupported()) {
...............desktop = Desktop.getDesktop();
..........}
..........try {
...............uri = new URI(MAILTO);
..........} catch (URISyntaxException ex) {
...............ex.printStackTrace();
..........}
.....}

.....public void actionPerformed(final ActionEvent e) {
..........if (desktop != null) {
...............// Verifica se a plataforma em questão provê suporte para essa ação.
...............if (desktop.isSupported(Desktop.Action.MAIL)) {
....................try {
........................./* Finalmente, o ator principal entra em cena.
.........................* Abre a janela de composição do cliente de e-mail padrão
.........................* com os campos da mensagem especificados pela mailto URI. */
.........................desktop.mail(uri);
....................} catch (IOException ex) {
.........................ex.printStackTrace();
....................}
...............}
..........} else {
.............../* Oh, my!! O sistema operacional não provê suporte,
...............* ou para a classe Desktop, ou para a Desktop.Action.MAIL. */
...............JOptionPane.showMessageDialog(
..............................null,
.............................."Impossível executar o cliente de e-mail padrão do sistema.",
..............................Atenção",
..............................JOptionPane.WARNING_MESSAGE);
..........}
.....}
}

Veja também:
Outras funcionalidades do Java SE 6 em:
Referências:

0 comentários: