Bonjour tout le monde. Voila, j'ai un programme qui fait tout un tas de chose, je ne vais pas tout détailler. A un moment donner, je récupère plusieurs databases correspondant à plusieurs items. Chacune de ces databases vont être associé à un Plot.

Sur mon chart, j'aurais donc plusieurs plot, associé à un CombinedRangePlot.
Tous mes plots auront alors le même RangeAxis.

Pour générer mon chart, typiquement je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
         Chart("....")
         RangeAxis("....")
         Renderer("....")
         Dataset("....")
Mon dataset va quand à lui boucler sur chacune des databases que j'aurai enregistrer dans un tableau :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 class Dataset(s, request ='')
 
      while i < len(getglob('curmultidatabase')):
            if curchart.idxdataset < len(getglob('curmultidatabase')):
               setglob('curdatabase',getglob('curmultidatabase')[i])
               c=getglob('curdatabase').cursor()
               c.execute(transreq(request))
               if getglob('changecolor').setcolor != {}:
                  s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c,setcolor = getglob('changecolor').setcolor) 
               else:              
                  s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c)
               curchart.idxdataset+=1
               DomainAxis()
               if not curchart.idxrangeaxis: RangeAxis()
               if not curchart.idxrenderer: Renderer()
               s.dataset.attach(range=currangeaxis.rangeaxis,domain=curdomainaxis.domainaxis,renderer=currenderer.renderer)
               Plot(typeplot="Range")
               curplot.plot.add(s.dataset)
            else:
               setglob('curdatabase',getglob('curmultidatabase')[i])
               setglob('curplot',curchart.tabcurplot[i]) // tableau qui regroupe les Plots instanciés lors du premier appel de Dataset
               setglob('curdomainaxis',curchart.tabcurdomain[i])
               c=getglob('curdatabase').cursor()
               c.execute(transreq(request))
               if getglob('changecolor').setcolor != {}:
                  s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c,setcolor = getglob('changecolor').setcolor) 
               else:              
                  s.dataset=jfreechart.Dataset(index=curchart.idxdataset,series=c)
               curchart.idxdataset+=1
               s.dataset.attach(range=currangeaxis.rangeaxis,domain=curdomainaxis.domainaxis,renderer=currenderer.renderer)
               curplot.plot.add(s.dataset)              
            i = i + 1
Donc voila le problème:
. si j'instancie une seul fois Dataset, mes plots vont tous s'afficher correctement, avec le graphique souhaité. Dans la boucle while, seules les lignes de code présente dans le if {} vont s'exécuter, puisque je ne vais pas définir plus de dataset que de database (qui elles sont regroupé dans la variable 'curmultidatabase')
exemple : http://img116.imageshack.us/my.php?i...3898955iw0.jpg

. mais si j'instancie une deuxième fois un Dataset("...") de cette facon par exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Chart("....")
         RangeAxis("....")
         Renderer("....")
         Dataset("....")
         Renderer("....")
         Dataset("....")
=> Alors mon Applet Java ne va plus s'afficher (bug écran bleu)
J'ai l'impression que lorsque je suis dans le else {}, le programme n'accepte pas de retravailler sur mes plots définies préalablement. Surtout lorsqu'il s'agit de passer du Plot 0 au Plot 1.
Peut etre une erreur de logique, si vous avez une idée je suis preneur, si il vous faut plus d'explications n'hésitez pas.

dataset.attach associe l'axe des X, l'axe des Y et le renderer au dataset instancié. Et le dataset instancié est associé au plot en cours