Personal tools
You are here: Home Documentação Snippets de código Como colorir vértices e arestas
Document Actions

Como colorir vértices e arestas

Up to Table of Contents

As cores dos vértices e arestas são guardadas nos objetos através de propriedades. Cada propriedade possui uma chave específica, que fica guardada na interface.

Por exemplo, o objeto vértice, representado pela interface INode possui as seguintes propriedades:

INode.INODE_LABEL_PROPERTY_ID;       
INode.INODE_COLOR_PROPERTY_ID;


Da mesma forma, uma aresta possui:

IEdge.IEDGE_COLOR_PROPERTY_ID


Então, como pegar uma propriedade do vértice n qualquer?


n.getPropertyValue(INode.INODE_LABEL_PROPERTY_ID);

Isso retorna uma String com o label do vértice. Isso é exatamente o que o metodo getLabel faz.


De forma análoga a operação

RGB cor = (RGB)n.getPropertyValue(INode.INODE_COLOR_PROPERTY_ID);

retorna um objeto da classe RGB (org.eclipse.swt.graphics.RGB) e armazena na variavel cor



Para rodar o exemplo abaixo você precisa fazer Run As.. -> SWT Application e não Run As.. -> Java Application, como de costume

import java.util.ArrayList;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Display;
import org.projetorox.rox.graphapi.analysis.GraphUtils;
import org.projetorox.rox.graphapi.edge.IEdge;
import org.projetorox.rox.graphapi.graph.IGraph;
import org.projetorox.rox.ui.node.simple.SimpleNode;

//Rode esta classe como SWT Application
public class Main {

public static void main(String[] args) throws Exception{
//captura o grafo
IGraph grafo = GraphUtils.getInstance().getGraph("myGraph.graph");

//pega todas as arestas
ArrayList a = new ArrayList(grafo.getEdges());

//pega a primeira aresta
IEdge e = (IEdge)a.get(0);

//colore essa aresta

Display d = new Display(); 
e.setPropertyValue(IEdge.IEDGE_COLOR_PROPERTY_ID, d.getSystemColor(SWT.COLOR_GREEN).getRGB());

//escreve o grafo em outro arquivo
grafo.setName("novografo.graph");

GraphUtils.getInstance().writeGraph(grafo, "novografo.graph");
}
}
by ugorox last modified 2007-04-20 15:48
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: