Prefuse: ¿Agregar etiquetas a los bordes?

En mi visualización previa, quiero agregar una etiqueta a los bordes. Seguí algunos ejemplos propuestos aquí en SO, pero no puedo hacerlo funcionar:

Yo uso este Renderer para mis bordes:

private class CustomEdgeRenderer extends LabelRenderer {

    private EdgeRenderer edgeRenderer = new EdgeRenderer();

    @Override
    public String getText(VisualItem item) {
        System.out.println("edgerenderer");
        return "test";
    }

    @Override
    public void render(Graphics2D g, VisualItem item) {
        edgeRenderer.render(g, item);
        item.setTextColor(BLACK);
    }

}

El problema ahora es que el texto no se muestra, pero los bordes se dibujan de una forma extraña. Es decir, no están correctamente dibujados. Si no sobrescribo el renderizado, el texto se dibuja, pero no los bordes. ¿Cómo puedo hacer que esto funcione?

preguntado el 03 de mayo de 12 a las 11:05

3 Respuestas

Siguiendo la arquitectura de prefundir crearía un grupo separado de elementos visuales para las etiquetas, llamado DecoratorItem.

Puede encontrar un ejemplo en la demostración de TreeMap: https://github.com/prefuse/Prefuse/blob/master/demos/prefuse/demos/TreeMap.java

contestado el 03 de mayo de 12 a las 14:05

Otra solución más ad-hoc:

  • ampliar EdgeRenderer.
  • Tenga cuidado de dibujar la etiqueta en el render método.
  • Llame al super.render para dejar que prefuse dibuje el borde.

contestado el 03 de mayo de 12 a las 15:05

Podrías revisar esta pregunta:

Visualización de etiquetas de bordes en gráficos prefundidos (java)

Google me envió aquí y las preguntas anteriores, y buscando algún código, recientemente encontré la siguiente versión y funciona bien.

http://netgrok.googlecode.com/svn-history/r2/trunk/src/test/AggregateDecoratorDemo.java

Saludos.

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.