Hello les gens;
Je me suis inspiré de l'exemple du treeview ici
Mais j'ai quelque soucis...
D'une part j'ai des problèmes d'affichages:
Sur internet explorer 8:

Sur Firefox:

1- Vous aurez remarqué qu'un nœud, après avoir été ouvert puis refermé garde l'image "treeNodeOpen.gif"
2- L'affichage des des "treeLigne" n'est pas parfait ( le résultat l'es un peu moins sur Firefox)
3- Et c'est le plus important les nœuds crées "dynamiquement" (je explique plus tard comment) ne s'ouvrent pas du tout (ne contiennent rien ?) à partir du 4 ème je me doute qu'il doit y avoir une erreur au niveau de ma logique qui est la suivante (très inspirée cependant de l'exemple):

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
public class TreeviewComAction extends DispatchAction {
 
	private static List periodes;
 
	static {
		initPeriodes();
	}
 
	private static void initPeriodes() {
		periodes = new ArrayList();
		Calendar calendar = GregorianCalendar.getInstance();
		int actualYear = calendar.get(Calendar.YEAR);
 
 
		for (int i = 0;
			i < 10;
			i++) {
			actualYear -= 1;
			// douze mois dans l'année jusqu'a preuve du contraire
			periodes.add(
				new PeriodeBean(
					ConstantsFacturation.MONTH_JANUARY,
					actualYear));
			periodes.add(
				new PeriodeBean(
					ConstantsFacturation.MONTH_FEBRUARY,
					actualYear));
			periodes.add(
				new PeriodeBean(ConstantsFacturation.MONTH_MARCH, actualYear));
			periodes.add(
				new PeriodeBean(ConstantsFacturation.MONTH_APRIL, actualYear));
			periodes.add(
				new PeriodeBean(ConstantsFacturation.MONTH_MAY, actualYear));
			periodes.add(
				new PeriodeBean(ConstantsFacturation.MONTH_JUNE, actualYear));
			periodes.add(
				new PeriodeBean(ConstantsFacturation.MONTH_JULY, actualYear));
			periodes.add(
				new PeriodeBean(ConstantsFacturation.MONTH_AUGUST, actualYear));
			periodes.add(
				new PeriodeBean(
					ConstantsFacturation.MONTH_SEPTEMBER,
					actualYear));
			periodes.add(
				new PeriodeBean(
					ConstantsFacturation.MONTH_OCTOBER,
					actualYear));
			periodes.add(
				new PeriodeBean(
					ConstantsFacturation.MONTH_NOVEMBER,
					actualYear));
			periodes.add(
				new PeriodeBean(
					ConstantsFacturation.MONTH_DECEMBER,
					actualYear));
		}
	}	
 
	private void createPeriodeTree(
		HttpServletRequest request,
		String selectedId) {
		Iterator it = periodes.iterator();
		MenuComponent menuPeriodes = new MenuComponent("periodes");
		menuPeriodes.setName("periodes");
		while (it.hasNext()) {
			PeriodeBean periodeBean = (PeriodeBean) it.next();
			MenuComponent menuYear =
				menuPeriodes.getChild(Integer.toString(periodeBean.getYear()));
			if (menuYear == null) {
				menuYear =
					new MenuComponent(Integer.toString(periodeBean.getYear()));
				menuYear.setName(Integer.toString(periodeBean.getYear()));
				menuYear.setTitle(Integer.toString(periodeBean.getYear()));
				menuPeriodes.addMenuComponent(menuYear);
			}
 
			MenuComponent menuMonth = new MenuComponent(periodeBean.getMonth());
			menuMonth.setTitle(periodeBean.getMonth());
			menuMonth.setLocation("comTree.aspx");
			menuYear.addMenuComponent(menuMonth);
		}
		TreeViewReconciler.reconceileFromCookie(menuPeriodes, request);
		LayoutUtils.addMenuIntoSession(request, menuPeriodes);
	}	
 
	public ActionForward unspecified(
		ActionMapping mapping,
		ActionForm form,
		HttpServletRequest request,
		HttpServletResponse response) {
 
		//créer l'arbre des périodes
		createPeriodeTree(request, null);		
 
		return mapping.findForward(ConstantsFacturation.FORWARD_SUCCESS);
	}
}