Pregunta

Estoy usando el paquete FlexGantt Javax Swing ( http://www.dlsc.com/ ) para mostrar algunos diagramas de Gantt. El problema que estoy teniendo es que no puedo entender cómo cambiar el color de un DefaultTimelineObject que he extendido a mi propia clase. En realidad, los únicos colores que puedo cambiar son los que corresponden a los colores de fondo de las filas de Gantt.

¿Fue útil?

Solución 2

Así que me las arreglé para resolver esto. Es un poco complicado, o al menos lo fue para mí, ya que realmente no entendí (y aún no entiendo) el patrón Modelo-Vista-Controlador utilizado por FlexGantt. Entonces, aquí es donde vamos. Necesitamos una clase TimelineObjectRenderer que extienda DefaultTimelineObjectRenderer. Ese procesador tiene un método que devuelve un Componente, llamado getTimelineObjectRendererComponent. En ese método, necesitaba llamar a los métodos setActivityFillColor1 y setActivityFillColor2, que son los dos colores utilizados para crear la combinación vertical en un elemento.

El código importante está aquí:

public class myTimelineObjectRenderer extends DefaultTimelineObjectRenderer {
    public Component getTimelineObjectRendererComponent(
        setActivityFillColor1(new Color(r,g,b));
        setActivityFillColor2(new Color(r,g,b));
    }
} //there is other code in this class, not mentioned here

Esa es la primera parte.

La siguiente parte es donde conectamos ese Renderer con el objeto GanttChart mismo, y le decimos al Gráfico dónde encontrar el Renderer necesario para cada elemento.

Las dos líneas que usé para eso son las siguientes:

GanttChart gc = new GanttChart();
gc.getLayerContainer().setTimelineObjectRenderer(
          new myTimelineObject().getClass(),new myTimelineObjectRenderer());

Entonces, finalmente llegué allí, lo hice funcionar, y estoy muy impresionado con la flexibilidad del paquete FlexGantt.

Otros consejos

Debe publicar esta pregunta en el grupo de noticias FlexGantt en http://groups.google.com/group / flexgantt

Saludos,

Dirk (Autor de FlexGantt)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top