Este projeto ainda está em desenvolvimento; esperamos em breve fazer algum release, ou disponibilizar algum aplicativo de teste, então fique de olho.
Artigo sobre o projeto: [Breve]
Downloads:
Windows98/2000/XP
O que é o Mana?
A idéia do Mana é criar formas de anotar interfaces gráficas.
O objetivo é propor alguns modelos de ajuda de aplicações, que são diferentes
(e procuram ser melhores em alguns aspectos) daquelas ajudas geralmente acicionadas
através de um comando F1, que se tornaram tão comuns nas
interfaces atuais.
Como seriam esses modelos de ajuda propostos?
Existem 2 modelos propostos até o momento: anotação de tutorial, e anotação pessoal.
Uma explicação das duas pode ser encontradas no artigo acima. A anotação pessoal ainda
não está muito bem desenvolvida, mas a idéia é permitir ao usuário poder anotar (como uma
espécie de lembrete) os componentes da interface gráfica de uma aplicação.
Já a anotação de tutorial (que está mais bem desenvolvida), tem alguma semelhança com
a popular ajuda-F1. O problema que encontramos na ajuda-F1 é o seguinte é que ela é muito
verbal, apenas texto para ser lido, e possui pouquíssima interação com o usuário. Sendo assim,
a anotação de tutorial busca guiar o usuário, levando o usuário pela mão. Ela pode apontar
pros componentes, dizer o que eles fazem, pedir para que o usuário mexa neles (para que ele possa
aprender a utilizá-los), etc. Ela busca interagir melhor com o usuário.
O que me deixa curioso é o seguinte... como o Mana processaria o estado do programa
e reverteria a entrada de fluxos de programas incorretos que o usuario adentrasse?
Os tutoriais do Mana tentam ser de uma forma que o usuário não consegue trilhar outros caminhos,
além daquele que o tutorial deseja. Isto é, se o tutorial vai lhe ensinar a mexer com um
componente A, ele deve procurar impedir que vc possa mexer com o componente B,
o que faria você desviar sua atenção, e acabar seguindo outros fluxos. Para conseguir isso,
o Mana possui um esquema de aplicar um "vidro" sobre a aplicacao, filtrando o que o usuário pode
e não pode usar (quem define essas regras de poder e nao poder é o proprio tutorial).
Isto também está melhor exemplificado (com fotos, etc) no artigo.
O Mana então meio que encapsularia as funcionalidades de entrada do programa? É isso? Ele pegaria os eventos gerados
pelo usuário, os checaria e os repassaria para o aplicativo? Você poderia me explicar melhor o relacionamento
entre essa camada do Mana e os aplicativos?
Quantas perguntas :) Sim, o Mana possui uma parte responsável por capturar os eventos do usuário, filtrar, e repassar.
Essa parte é justamente o tal "vidro" (ou "painél translúcido") que fica sobreposto à interface gráfica do aplicativo.
Mas esse painél não fica habilitado o tempo inteiro, ele só é habilitado quando o usuário deseja obter ajuda acerca de
alguma funcionalidade do programa.
O Mana seria uma camada acima do aplicativo ou estaria abaixo do mesmo?
Abaixo. Este é um dos problemas: para um aplicativo fazer uso do Mana, ele precisa utilizar os componentes
Mana - o que exige alterar o código-fonte do seu programa, se ele já está implementado e você deseja utilizar Mana. Por outro
lado, todos os componentes Mana são herdeiros diretos do Swing, ou seja, procuramos fazer eles de uma forma que a migração
de uma interface Swing para Mana seja o menos difícil possível.
Eu já posso fazer meu programa utilizando os componentes Mana?
Sim, mas atualmente ainda não será possível aproveitar todas as coisas que estamos propondo. O núcleo do Mana já está pronto
(que é a parte que você utilizaria para desenvolver seu programa), porém, os plugins ainda estão em desenvolvimento.
(Mais detalhes sobre os plugins no artigo). Além disso, Mana de uma certa forma é um trabalho conceitual. Tivemos uma idéia,
e estamos querendo provar que ela pode funcionar.