blob: df02f829452c4f669258e93c9ce5254c00a575b6 (
plain)
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
|
package vue.simulation;
import java.util.ArrayList;
import application.Battle;
import controlleur.ControlleurSimu;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import modele.Unit;
public class SimUnitsVBox extends VBox
{
private ArrayList<Button> buttons = new ArrayList<Button>();
private ArrayList<SimFigurinesVBox> fig_boxes = new ArrayList<SimFigurinesVBox>();
private int column; // = 1 ou 2
public SimUnitsVBox(int col){
column = col;
this.setStyle("-fx-padding: 2px;");
}
// getters
public ArrayList<Button> getButtons(){
return buttons;
}
public ArrayList<SimFigurinesVBox> getFigBoxes(){
return fig_boxes;
}
// afficher les unités de la liste déroulée
public void setList(int num_list)
{
ArrayList<Unit> units = Battle.getSelectedList(num_list).getUnits();
for(int i = 0; i < units.size(); i++)
{
VBox one_unit = new VBox();
// chaque unité est un bouton pour dérouler des figurines
Button tmp_button = new Button(units.get(i).getName());
tmp_button.setMaxWidth(Double.MAX_VALUE);
one_unit.getChildren().add(tmp_button);
buttons.add(tmp_button);
// créer une zone de figurines par unité
SimFigurinesVBox one_fig_box = new SimFigurinesVBox(column, units.get(i));
one_unit.getChildren().add(one_fig_box);
fig_boxes.add(one_fig_box);
this.getChildren().add(one_unit);
}
/* -- activation des boutons pour dérouler les unités --*/
for(int i = 0; i < buttons.size(); i++)
{
final int j = i; // merci chatgpt pour le trick!
// java interdit à i et c d'être paramètres de la fonction lambda parce qu'ils changent à chaque itération
// on garantit que col et j seront constants (final) dans la méthode setOnAction
buttons.get(i).setOnAction(e ->
{
ControlleurSimu.selectAnUnit(this, column, j);
});
}
}
}
|