Cómo cambiar el color y el trazo de un tipo de bordes
Frecuentes
Visto 397 veces
0
Tengo un Graph< Potter, Edge> g donde Edges pertenece a tres clases diferentes que extienden la clase Edge (lo uso para representar diferentes tipos de interacciones, como comenzar a relacionarse, pedir consejos, etc.). Me gustaría colorear los bordes de acuerdo con lo que representan, como que todos los bordes de los padres se vuelvan verdes y no muestren flechas. Tengo este transformador para cambiar de color, pero parece que cambia de color en todos los bordes:
Transformer<Edge, Paint> parental_color_yes = new Transformer<Edge, Paint>() {
@Override
public Paint transform(Edge s) {
return Color.GREEN;
}
};
Si cambio el tipo de transformador a Transformer< Parental, Paint>, entonces mi VisualizationViewer< Potter, Edge> vv se queja de que no puede aceptar dicho transformador... ¿debería agregar un nuevo visor de visualización? o hay algo mal en el transformador?
EDITADO después de la respuesta:
parental_color_yes = new Transformer<Edge, Paint>() {
@Override
public Paint transform(Edge s) {
if (s instanceof Parental){
return Color.GREEN;
} else if (s instanceof Innovation) {
return Color.RED;
} else {
return Color.BLACK;
}
}
};
¡Gracias por la ayuda!
Un saludo Simone
1 Respuestas
0
Tiene que ser un transformador de pintura de borde. Dentro del método transform, use una instancia de verificación para ver qué color devolver.
Respondido el 04 de diciembre de 13 a las 04:12
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas java jung transformer-model jung2 or haz tu propia pregunta.
Gracias, acabo de editar la pregunta para agregar su respuesta ... solo una última pista, ¿dónde debo buscar para ocultar las flechas o colorearlas? - user299791
Para colorear las flechas: setArrow{Draw,Fill}PaintTransformer; para ocultarlos, establezca EdgeArrowPredicate. Recomiendo mirar (Pluggable)RenderContext y PluggableRenderDemo para comprender las capacidades del sistema y cómo usarlas. - Joshua O'Madadhain