mudança de cor FlexGantt TimelineObject
-
06-07-2019 - |
Pergunta
Eu estou usando o pacote balanço FlexGantt Javax ( http://www.dlsc.com/ ) para apresentar alguns gráficos de Gantt. O problema que estou tendo é que eu não consigo descobrir como alterar a cor de um DefaultTimelineObject que eu tenho estendido em minha própria classe. Na verdade, as únicas cores que parecem ser capazes de mudança são os que são para as cores das linhas de Gantt fundo.
Solução 2
Então, eu consegui descobrir isso. É uma espécie de complicado, ou pelo menos era para mim, como eu realmente não (e ainda não completamente) entender o padrão MVC usado por FlexGantt. Então, aqui é onde nós vamos. Precisamos de uma classe TimelineObjectRenderer que estende a DefaultTimelineObjectRenderer. Esse processador tem um método que retorna um componente, chamado getTimelineObjectRendererComponent. Nesse método, eu precisava chamar os métodos setActivityFillColor1 e setActivityFillColor2, que são as duas cores usadas para criar a mistura vertical sobre um item.
O código importante está aqui:
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
Essa é a primeira parte.
A próxima parte é onde nós conectamos que Renderer com o próprio objeto GanttChart, e dizer ao Chart onde encontrar o Renderer necessário para cada item.
As duas linhas I utilizados para que são como se segue:
GanttChart gc = new GanttChart();
gc.getLayerContainer().setTimelineObjectRenderer(
new myTimelineObject().getClass(),new myTimelineObjectRenderer());
Então, eu cheguei lá, eventualmente, fez o trabalho, e estou muito impressionado com a flexibilidade do pacote FlexGantt.
Outras dicas
Você deve publicar esta questão no newsgroup FlexGantt em http://groups.google.com/group / flexgantt
Saudações,
Dirk (FlexGantt autor)