Bonjour à tous
Le titre n'est pas vraiment très claire. Mais je ne sais pas vraiment comment mettre un titre sur mon problème.
Pour faire court j'ai une appli qui gère plusieurs matrices. Ces matrices sont en réalité des feuilles excel.
Pour chaque matrice de mon dossier je veux créer un masque. Le masque comprendra plusieurs infos dont le nombre de tableaux présents dans le fichier excel de la matrice.
Je veux donc créer un masque pour la matrice. Et cette masque aura une liste de Tableau.
Tout d'abord voici ma fenêtre pemettant de gérer les infos des mes tableaux :
Lorsque je veux passer aux information concernant un autre tableau de la matrice voici le code :
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 public void updateCreateTab(){ Composite compCreateTab = new Composite(group, SWT.NONE); GridLayout createTabGD = new GridLayout(4,false); createTabGD.horizontalSpacing = 20; createTabGD.verticalSpacing = 20; compCreateTab.setLayout(createTabGD); Label labelTab = new Label(compCreateTab, SWT.NONE); labelTab.setFont(new Font(null,"Arial",10,1)); labelTab.setText("Tableau n°" + idTab); GridData labelTabGD = new GridData(GridData.CENTER); labelTabGD.horizontalSpan = 4; labelTab.setLayoutData(labelTabGD); Label labelCellHG = new Label(compCreateTab, SWT.NONE); labelCellHG.setFont(new Font(null,"Arial",10,0)); labelCellHG.setText("Cellule haut gauche : Ligne :"); ligneHG = new Spinner(compCreateTab, SWT.NONE); Label labelColHG = new Label(compCreateTab, SWT.NONE); labelColHG.setFont(new Font(null,"Arial",10,0)); labelColHG.setText("Colonne :"); colHG = new Spinner(compCreateTab, SWT.NONE); Label labelCellBD = new Label(compCreateTab, SWT.NONE); labelCellBD.setFont(new Font(null,"Arial",10,0)); labelCellBD.setText("Cellule bas droite : Ligne :"); ligneBD = new Spinner(compCreateTab, SWT.NONE); Label labelColBD = new Label(compCreateTab, SWT.NONE); labelColBD.setFont(new Font(null,"Arial",10,0)); labelColBD.setText("Colonne :"); colBD = new Spinner(compCreateTab, SWT.NONE); TableItem[] tab = tabEqp.getItems(); tabEqpTab = new Table(compCreateTab, SWT.BORDER); TableColumn columnEqpName = new TableColumn(tabEqpTab, SWT.NONE); columnEqpName.setText("Equipement"); columnEqpName.setWidth(100); TableColumn columnLigne = new TableColumn(tabEqpTab, SWT.NONE); columnLigne.setText("Ligne"); columnLigne.setWidth(100); columnLigne.setResizable(false); TableColumn columnColonne = new TableColumn(tabEqpTab, SWT.NONE); columnColonne.setText("Colonne"); columnColonne.setWidth(100); columnColonne.setResizable(false); tabEqpTab.setHeaderVisible(true); tabEqpTab.setLinesVisible(true); GridData tabGD = new GridData(GridData.CENTER); tabGD.horizontalSpan = 4; tabGD.verticalSpan = 4; tabEqpTab.setLayoutData(tabGD); for (int i = 0; i<tab.length; i++){ if (tab[i].getChecked()){ new TableItem(tabEqpTab,SWT.NONE); } } TableItem[] items = tabEqpTab.getItems(); for (int i = 0; i< items.length; i++){ TableEditor editor = new TableEditor(tabEqpTab); Label labelEqp = new Label(tabEqpTab, SWT.NONE); labelEqp.setText(tab[i].getText()); listLabelEqp.add(labelEqp); editor.grabHorizontal = true; editor.grabVertical = true; editor.setEditor(labelEqp, items[i], 0); Spinner SpinnerLigne = new Spinner(tabEqpTab,SWT.NONE); listLigneEqp.add(SpinnerLigne); editor = new TableEditor(tabEqpTab); editor.grabHorizontal = true; editor.setEditor(SpinnerLigne, items[i], 1); spinnerColonne = new Spinner(tabEqpTab,SWT.NONE); listColEqp.add(spinnerColonne); editor = new TableEditor(tabEqpTab); editor.grabHorizontal = true; editor.setEditor(spinnerColonne, items[i], 2); } if (idTab < this.nbTableaux.getSelection()){ Button btnNextTab = new Button(compCreateTab, SWT.PUSH); btnNextTab.setText("Tableau suivant"); btnNextTab.addSelectionListener(new NextTabListener(parametrageControllerPageFive)); } else{ btnCreateMask = new Button(compCreateTab, SWT.PUSH); btnCreateMask.setText("Créer le masque"); btnCreateMask.addSelectionListener(new CreateMaskListener(parametrageControllerPageFive)); } slGroup.topControl = compCreateTab; group.layout(); }
Et enfin lorsque tous les infos de tous les tableaux sont remplis je créais le masque :
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 public void updateTabNext(){ TableItem[] items = tabEqpTab.getItems(); TableColumn[] tabCol = tabEqpTab.getColumns(); for(int i = 0; i<items.length; i++){ String nameEqp = listLabelEqp.get(i).getText(); int ligneEqp = listLigneEqp.get(i).getSelection(); int colonneEqp = listColEqp.get(i).getSelection(); parametrageControllerPageFive.createEqpTab(nameEqp, ligneEqp, colonneEqp); } int index = tabMat.getSelectionIndex(); //if (tabMat.getItem(index).getBackground().equals(new Color(null,83,213,148))){ parametrageControllerPageFive.createTab(idTab, ligneHG.getSelection(), colHG.getSelection(), ligneBD.getSelection(), colBD.getSelection()); //} /**else{ parametrageControllerPageFive.createTab(idTab, ligneHG.getSelection(), colHG.getSelection(), ligneBD.getSelection(), colBD.getSelection(), false); }*/ idTab++; updateCreateTab(); }
Et voici mes fonctions permettant de créer la liste de tableaux et le masque :
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 public void createMask(){ int index = tabMat.getSelectionIndex(); //if (tabMat.getItem(index).getBackground().equals(new Color(null,83,213,148))){ List<Tableau> tabs = parametrageControllerPageFive.createTab(idTab, ligneHG.getSelection(), colHG.getSelection(), ligneBD.getSelection(), colBD.getSelection()); //} /**else{ parametrageControllerPageFive.createTab(idTab, ligneHG.getSelection(), colHG.getSelection(), ligneBD.getSelection(), colBD.getSelection(), false); }*/ String nameMask = this.textName.getText(); int nbTab = this.nbTableaux.getSelection(); int lTest = this.lTest.getSelection(); int cTest = this.cTest.getSelection(); Masque mask = parametrageControllerPageFive.createMask(nameMask, nbTab, lTest, cTest, tabs); tabMat.getItem(index).setBackground(new Color(null,83,213,148)); if (this.getPreviousPage().getName().equals("Quatrième Page")){ listMatrice = MyWizard.one.getListMat(); } for(int m = 0; m<listMatrice.size(); m++){ if(listMatrice.get(m).getName().equals(tabMat.getItem(index).getText())){ listMatrice.get(m).setMasque(mask); } } boolean next = true; TableItem[] tab = tabMat.getItems(); for(int j = 0; j<tab.length; j++){ if(!tab[j].getBackground().equals(new Color(null,83,213,148))){ next = false; } } if(next){ setPageComplete(true); } else{ setPageComplete(false); } btnCreateMask.setEnabled(false); }
Le problème que j'ai c'est que lorsque je créer mon premier masque pour ma première matrice tout va nikel, le nom du masque, ses infos, la liste de tableaux... Tout va.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public Masque createMask(String nameMask, int nbTab, int lTest, int cTest, List<Tableau> tabs){ Masque mask = new Masque(nameMask, nbTab, listEqpTab, tabs, lTest, cTest); masks.addMask(mask); return(mask); } public void createEqpTab(String name, int ligne, int colonne){ EquipementTab eqpTab = new EquipementTab(name, ligne, colonne); listEqpTab.add(eqpTab); }
Par contre lorsque je créé un deuxième masque pour une autre matrice, le premier masque garde ses infos saus concernant la liste de tableaux où il récupère celle du nouveau masque. Je cherche mais je ne vois pas comment y remédier... Je ne sais pas si j'ai été assez clair, je reste à votre disposition pour plus d'informations.
Je vous remercie pour votre aide![]()
Partager