Tutorial Básico: Meu Primeiro Projeto
Esse é um tutorial básico e essencial. Leitura obrigatória!
Você irá aprender a:
- Criar um projeto e colocar arquivos .graph nele, prontos para serem editador visualmente.
- Escrever uma análise simples que checa se o grafo é completo.
- Mostrar ao usuário o que você acabou de descobrir
Introdução
Primeiro você deve compreender que o Rox trabalho com projetos, e é dentro deles que você irá colocar os seus grafos e rotinas que o capturam, processam e retornam um resultado. Essas rotinas são chamadas de Análises. O Rox trabalha internamente com os mesmos objetos de Análise, assim, quando você faz uma análise para si próprio, poderá contribuir no futuro para o próprio framework.
Mas antes, pense na pergunta principal que a sua análise irá responder. "Quantas componentes conexas o grafo têm?" ou "QUAIS as componentes conexas do grafo?" ou ainda "O grafo é bipartido?". Para cada pergunta, pode-se modelar, respectivamente, um tipo de resultado específico, pode ser um número, uma coleção de objetos, ou ainda uma afirmação verdadeira ou falsa.
Assim sendo, cada análise poderá retornar um resultado de um dos tipos:
- Booleano (IBooleanResult) - no caso de true ou false. Ex: "O grafo é bipartido?"
- Inteiro (IIntegerResult) - no caso de apenas contar algo. Ex: "Quantas partições tem o grafo?"
- Coleção de objetos (ICollectionResult) - no caso de se querer exatamente os objetos que compõem o resultado, normalmente vértices ou arestas, ou vértices e arestas intercaladas. Ex: "Quais os vértices que compõem cada componente conexa?"
Neste tutorial, vamos fazer uma análise bem simples, apenas para contar os vértices de um grafo e exibir um resultado.
Então, basicamente um projeto é constituído de 4 partes:
- Uma classe de análise, do tipo AbstractAnalysis
- Uma classe para armazenar os resultados, do tipo AbstractAnalysisResult e do sub-tipo IBooleanResult, ICollectionResult ou IIntegerResult.
- Uma classe principal, que chamaremos de Main, para executar a análise e exibir o seu resultado. Pode ser uma interface gráfica ou simplesmente uma classe com um método public static void main(String[] args) que imprima o resultado na tela.
- Arquivos .graph, que armazenam os grafos editados.
Criando um Projeto
- Primeiro clique com o botão direito do mouse no campo Package Explorer New->Project
- Segundo passo agora é escolher o tipo
do projeto que esta dentro da pasta Java , o tipo é JavaProject.
- Agora você deve dar um nome ao projeto e clicar em Next.
- A escolha da próxima opção é opcional =) tanto faz
- Na nova janela que abriu você deve clicar na aba de Libriares e logo depois clicar no botao add Externel Jars.
- Entre na pasta de plugins que esta
dentro da pasta do Rox e selecione todos os arquivos .jar e clique em
Ok.
- Agora clique em Finish.
- Aparecera uma tela para confirmar a
criação do projeto, aperte em yes.
- O campo do Package Explorer deve esta assim agora.
Criando um a analise
- O primeiro passo é criar uma classe java clicando em cima do projeto com botão direito do mouse New->Class
- Agora você deve botar um nome para a analise e estender ela da super classe org.projetorox.rox.graphapi.analysis.AbstractAnalysis e clicar em finish.
- Agora você deve fazer uma nova classe para só que ela deve estender da super classe org.projetorox.rox.graphapi.analysis.AbstractAnalysisResult e clicar em finish.
- Novamente você deve criar uma classe, só que agora o nome dela deve ser Main.
Agora você deve
criar a sua analise na primeira classe criada , a na segunda fazer o
tratamento da resposta e na classe Main você deve executar a
analise e para pegar o grafo que esta no arquivo graph você
deve inserir as seguintes linhas de código no sei Main:
public
class Main {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
File file = new File("myGraph.graph");
ObjectInputStream input =
new ObjectInputStream(new FileInputStream(file));
GraphComposite visual_graph = (GraphComposite)input.readObject();
IGraph myGraph = visual_graph.getGraph();
CountNodesAnalysis analysis = new CountNodesAnalysis();
analysis.addGraph(myGraph);
CountNodesAnalysisResult result =
(CountNodesAnalysisResult)analysis.execute();
System.out.println("This graph has
"+result.getResult().intValue()+" nodes");
}
}
O "myGraph.graph" deve ser
substituído pelo nome do seu grafo que ira sofrer a analise.
Depois de ter criado a analise para testar você deve deve abrir a classe main e clicar com segundo botao do mouse em Run->JavaAplication.
- O resultado deve aparecer no campo do console.
- Os arquivos abaixo e o codigo fonte da analise do exemplo.
CountNodesAnalysisResult.java
CountNodesAnalysis.java
Javadoc
Porque vocês não disponibilizam um javadoc com as classes do roxgt?? fica mais fácil criar coisas novas com isso (se é que os itens do comentário acima, escrito por mim, são possíveis de serem feitos com a implementação atual do RoxGT)
Leandro Soriano Ferreira - 6º semestre de Ciência da Computação
Javadoc
Muito Obrigado
Valeu pela atenção, cara, vou ver se por agora eu dou uma "mexida" nisso (tô meio ocupado com o trabalho de Estrutura de Arquivos - simular duplo hashing, brent e btent com arvore binária é meio complicado)... Dia 28 de março ou de abril?
RoxGT no Ubuntu
Encontrei ela em /usr/lib/eclipse/plugins! Mas os JARs do Rox n estão lá... Adicionei tudo o q pude e qdo pedi para criar e estender a classe Analysis, esta não aparece como opção para selecionar. Sou aluno da FRB e gostei muito da ferramenta. Parabéns ao Ugo!
Dúvidas
Olá, caras!!!
Achei massa a iniciativa de vocês, mas tenho algumas dúvidas sobre a manipulação da IDE,e das classes em sí...
Dá pra criar aplicações independentes do RoxGT, como num arquivo .jar, com as componentes do RoxGT para visualizar e editar os grafos, pegar classes de Análise dinamicamente em qualquer lugar da raíz do programa, e coisas desse tipo???
Se eu estiver pedindo demais, deixa quieto...
Leandro Soriano Ferreira - 6º Semestre de Ciência da computação da UFBA...