Personal tools
You are here: Home Documentação Tutorial Básico: Meu Primeiro Projeto
Document Actions

Tutorial Básico: Meu Primeiro Projeto

by ugorox last modified 2006-05-09 21:58

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:

  1. Booleano (IBooleanResult) - no caso de true ou false. Ex: "O grafo é bipartido?"
  2. Inteiro (IIntegerResult) - no caso de apenas contar algo. Ex: "Quantas partições tem o grafo?"
  3. 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:

  1. Uma classe de análise, do tipo AbstractAnalysis
  2. Uma classe para armazenar os resultados, do tipo AbstractAnalysisResult e do sub-tipo IBooleanResult, ICollectionResult ou IIntegerResult.
  3. 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.
  4. 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
rf1.2.jpg
  • Segundo passo agora é escolher o tipo do projeto que esta dentro da pasta Java , o tipo é JavaProject.
r2f.jpg
  • Agora você deve dar um nome ao projeto e clicar em Next.

rf3.jpg

  • 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.
rf4.jpg








































  • Entre na pasta de plugins que esta dentro da pasta do Rox e selecione todos os arquivos .jar e clique em Ok.rf5.jpg
  • Agora clique em Finish.rf6.jpg









































  • Aparecera uma tela para confirmar a criação do projeto, aperte em yes.rf7.jpg








































  • O campo do Package Explorer deve esta assim agora.
rf8.jpg


























Criando um a analise


  • O primeiro passo é criar uma classe java clicando em cima do projeto com botão direito do mouse New->Class
rn1.jpg























  • 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.
rn2.jpg























  • 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.

rn3.jpg























  • Novamente você deve criar uma classe, só que agora o nome dela deve ser Main.
rn32.jpg























<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } --> <!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

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.

rn7.jpg

























  • O resultado deve aparecer no campo do console.
rn8.jpg



























  • Os arquivos abaixo e o codigo fonte da analise do exemplo.
Main.java
CountNodesAnalysisResult.java
CountNodesAnalysis.java

Dúvidas

Posted by sfohart at 2006-03-30 22:55

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...

Javadoc

Posted by sfohart at 2006-03-30 22:57

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

Posted by ugorox at 2006-03-31 19:49
Leandro, pode dar uma olhada em http://www.projetorox.org/docs/. Não tive tempo de fazer tudo ainda, acabei de lançar uma nova versão, da uma olhada. Os javadocs aos poucos vão sendo mais incrementados, mas já dão uma boa visao. Ao que tudo indica dia 28 eu to na UFBA pra dar uma palestra, certo?

Muito Obrigado

Posted by sfohart at 2006-03-31 21:36

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

Posted by Arnaldo Diniz at 2008-03-20 17:20
Boa tarde pessoal! Sou usuário do Ubuntu 7.10. Instalei o eclipse do repositório e fiz o update dos plugins Rox...mas não estou conseguindo seguir o tutorial do Meu Primeiro Projeto: Qdo vou selecionar os JARs eles não existem na minha pasta pessoal (/home/arnaldo/.eclipse/plugins). Aliás, a pasta plugins n existe.
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!
Navigation
Log in


Forgot your password?
New user?
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: