Bom dia!
Tenho uma classe, utilizando o Cewolf onde crio um grafico do tipo Meter…
O problema é que vou utilizar 4 meters na aplicação e, a unica coisa que muda nos meters são os valores…
Tem uma forma de eu colocar estes 4 meters com valores diferentes na tela utilizando apenas uma classe?
Se entindi o que tu pretende eu creio que sim. Tu podes criar uma única instância da classe Meter mas invarialmente tu vais ter de guardar 4 conjuntos de instâncias dos atributos que compõe o gráfico. Estou falando sem conhecer a classe, mas creio que seja possivel sim. Tens como colocar um exemplo simples aqui?
T+
I
iktuzPJ
Acabei postando duas vezes porque deu erro na página… T+
E
eliasnPJ
O codigo esta abaixo...
O problema que vejo é rm colocar na JSP...
La coloco a classe de produção do Cewolf (esta abaixo) e, ao meu ver, para criar mais grafico eu teria que criar classes diferentes...
Abraço!
publicclasswsqoMeterCewolfimplementsDatasetProducer,ChartPostProcessor,Serializable{DoublenValorMeter;DoublenRangeMin;DoublenRangeMax;intnTipo;StringsLink;/** Creates a new instance of MeterTipo1 */publicwsqoMeterCewolf(){}publicwsqoMeterCewolf(DoublenValorMeter,DoublenRangeMin,DoublenRangeMax,intnTipo,StringsLink){this.nValorMeter=nValorMeter;this.nRangeMin=nRangeMin;this.nRangeMax=nRangeMax;this.nTipo=nTipo;this.sLink=sLink;}publicObjectproduceDataset(Mapmap)throwsDatasetProduceException{DefaultValueDatasetdataset=newDefaultValueDataset(67.90);returndataset;}publicvoidprocessChart(Objectobject,Mapmap){JFreeChartjFreeChart=(JFreeChart)object;jFreeChart.removeLegend();MeterPlotoMeter=(MeterPlot)jFreeChart.getPlot();DialShapedialShape=DialShape.PIE;Rangerange=newRange(0.0,100.0);oMeter.setRange(range);oMeter.setDialShape(dialShape);oMeter.setDialBackgroundPaint(Color.GRAY);oMeter.setDialOutlinePaint(Color.GRAY);oMeter.setNeedlePaint(Color.GRAY);oMeter.setTickPaint(Color.GRAY);MeterIntervalinterval1=newMeterInterval("Minimo",newRange(0.0,40.0),Color.GREEN,newBasicStroke(1),Color.GREEN);MeterIntervalinterval2=newMeterInterval("Medio",newRange(40.0,80.0),Color.YELLOW,newBasicStroke(1),Color.YELLOW);MeterIntervalinterval3=newMeterInterval("Maximo",newRange(80.0,100.0),Color.RED,newBasicStroke(1),Color.RED);oMeter.addInterval(interval1);oMeter.addInterval(interval2);oMeter.addInterval(interval3);oMeter.setUnits("");}publicbooleanhasExpired(Mapmap,Datedate){returnfalse;}publicStringgetProducerId(){return"MeterTipo1";}}
E
eliasnPJ
O codigo esta abaixo...
O problema que vejo é rm colocar na JSP...
La coloco a classe de produção do Cewolf (esta abaixo) e, ao meu ver, para criar mais grafico eu teria que criar classes diferentes...
Abraço!
publicclasswsqoMeterCewolfimplementsDatasetProducer,ChartPostProcessor,Serializable{DoublenValorMeter;DoublenRangeMin;DoublenRangeMax;intnTipo;StringsLink;/** Creates a new instance of MeterTipo1 */publicwsqoMeterCewolf(){}publicwsqoMeterCewolf(DoublenValorMeter,DoublenRangeMin,DoublenRangeMax,intnTipo,StringsLink){this.nValorMeter=nValorMeter;this.nRangeMin=nRangeMin;this.nRangeMax=nRangeMax;this.nTipo=nTipo;this.sLink=sLink;}publicObjectproduceDataset(Mapmap)throwsDatasetProduceException{DefaultValueDatasetdataset=newDefaultValueDataset(67.90);returndataset;}publicvoidprocessChart(Objectobject,Mapmap){JFreeChartjFreeChart=(JFreeChart)object;jFreeChart.removeLegend();MeterPlotoMeter=(MeterPlot)jFreeChart.getPlot();DialShapedialShape=DialShape.PIE;Rangerange=newRange(0.0,100.0);oMeter.setRange(range);oMeter.setDialShape(dialShape);oMeter.setDialBackgroundPaint(Color.GRAY);oMeter.setDialOutlinePaint(Color.GRAY);oMeter.setNeedlePaint(Color.GRAY);oMeter.setTickPaint(Color.GRAY);MeterIntervalinterval1=newMeterInterval("Minimo",newRange(0.0,40.0),Color.GREEN,newBasicStroke(1),Color.GREEN);MeterIntervalinterval2=newMeterInterval("Medio",newRange(40.0,80.0),Color.YELLOW,newBasicStroke(1),Color.YELLOW);MeterIntervalinterval3=newMeterInterval("Maximo",newRange(80.0,100.0),Color.RED,newBasicStroke(1),Color.RED);oMeter.addInterval(interval1);oMeter.addInterval(interval2);oMeter.addInterval(interval3);oMeter.setUnits("");}publicbooleanhasExpired(Mapmap,Datedate){returnfalse;}publicStringgetProducerId(){return"MeterTipo1";}}
E
eliasnPJ
O codigo esta abaixo...
O problema que vejo é rm colocar na JSP...
La coloco a classe de produção do Cewolf (esta abaixo) e, ao meu ver, para criar mais grafico eu teria que criar classes diferentes...
Abraço!
publicclasswsqoMeterCewolfimplementsDatasetProducer,ChartPostProcessor,Serializable{DoublenValorMeter;DoublenRangeMin;DoublenRangeMax;intnTipo;StringsLink;/** Creates a new instance of MeterTipo1 */publicwsqoMeterCewolf(){}publicwsqoMeterCewolf(DoublenValorMeter,DoublenRangeMin,DoublenRangeMax,intnTipo,StringsLink){this.nValorMeter=nValorMeter;this.nRangeMin=nRangeMin;this.nRangeMax=nRangeMax;this.nTipo=nTipo;this.sLink=sLink;}publicObjectproduceDataset(Mapmap)throwsDatasetProduceException{DefaultValueDatasetdataset=newDefaultValueDataset(67.90);returndataset;}publicvoidprocessChart(Objectobject,Mapmap){JFreeChartjFreeChart=(JFreeChart)object;jFreeChart.removeLegend();MeterPlotoMeter=(MeterPlot)jFreeChart.getPlot();DialShapedialShape=DialShape.PIE;Rangerange=newRange(0.0,100.0);oMeter.setRange(range);oMeter.setDialShape(dialShape);oMeter.setDialBackgroundPaint(Color.GRAY);oMeter.setDialOutlinePaint(Color.GRAY);oMeter.setNeedlePaint(Color.GRAY);oMeter.setTickPaint(Color.GRAY);MeterIntervalinterval1=newMeterInterval("Minimo",newRange(0.0,40.0),Color.GREEN,newBasicStroke(1),Color.GREEN);MeterIntervalinterval2=newMeterInterval("Medio",newRange(40.0,80.0),Color.YELLOW,newBasicStroke(1),Color.YELLOW);MeterIntervalinterval3=newMeterInterval("Maximo",newRange(80.0,100.0),Color.RED,newBasicStroke(1),Color.RED);oMeter.addInterval(interval1);oMeter.addInterval(interval2);oMeter.addInterval(interval3);oMeter.setUnits("");}publicbooleanhasExpired(Mapmap,Datedate){returnfalse;}publicStringgetProducerId(){return"MeterTipo1";}}
E
eliasnPJ
O codigo esta abaixo...
O problema que vejo é rm colocar na JSP...
La coloco a classe de produção do Cewolf (esta abaixo) e, ao meu ver, para criar mais grafico eu teria que criar classes diferentes...
Abraço!
publicclasswsqoMeterCewolfimplementsDatasetProducer,ChartPostProcessor,Serializable{DoublenValorMeter;DoublenRangeMin;DoublenRangeMax;intnTipo;StringsLink;/** Creates a new instance of MeterTipo1 */publicwsqoMeterCewolf(){}publicwsqoMeterCewolf(DoublenValorMeter,DoublenRangeMin,DoublenRangeMax,intnTipo,StringsLink){this.nValorMeter=nValorMeter;this.nRangeMin=nRangeMin;this.nRangeMax=nRangeMax;this.nTipo=nTipo;this.sLink=sLink;}publicObjectproduceDataset(Mapmap)throwsDatasetProduceException{DefaultValueDatasetdataset=newDefaultValueDataset(67.90);returndataset;}publicvoidprocessChart(Objectobject,Mapmap){JFreeChartjFreeChart=(JFreeChart)object;jFreeChart.removeLegend();MeterPlotoMeter=(MeterPlot)jFreeChart.getPlot();DialShapedialShape=DialShape.PIE;Rangerange=newRange(0.0,100.0);oMeter.setRange(range);oMeter.setDialShape(dialShape);oMeter.setDialBackgroundPaint(Color.GRAY);oMeter.setDialOutlinePaint(Color.GRAY);oMeter.setNeedlePaint(Color.GRAY);oMeter.setTickPaint(Color.GRAY);MeterIntervalinterval1=newMeterInterval("Minimo",newRange(0.0,40.0),Color.GREEN,newBasicStroke(1),Color.GREEN);MeterIntervalinterval2=newMeterInterval("Medio",newRange(40.0,80.0),Color.YELLOW,newBasicStroke(1),Color.YELLOW);MeterIntervalinterval3=newMeterInterval("Maximo",newRange(80.0,100.0),Color.RED,newBasicStroke(1),Color.RED);oMeter.addInterval(interval1);oMeter.addInterval(interval2);oMeter.addInterval(interval3);oMeter.setUnits("");}publicbooleanhasExpired(Mapmap,Datedate){returnfalse;}publicStringgetProducerId(){return"MeterTipo1";}}
I
iktuzPJ
Eu implementaria um método reset que receberia os novos parâmetros e recalcularia o gráfico (em um servlet). Depois disso mostraria na página novamente. T+
E
eliasnPJ
Sim…
Eu ate fiz um for na aplicação, mas, mesmo atualizando os dados, os Meter aparecem com o ultimo valor!