Coverage Summary for Class: CloudComponent (it.polimi.ingsw.Client.GUI.Components)
Class |
Method, %
|
Branch, %
|
Line, %
|
CloudComponent |
0%
(0/1)
|
0%
(0/7)
|
0%
(0/16)
|
CloudComponent$1 |
0%
(0/1)
|
0%
(0/1)
|
Total |
0%
(0/2)
|
0%
(0/7)
|
0%
(0/17)
|
1 package it.polimi.ingsw.Client.GUI.Components;
2
3 import it.polimi.ingsw.Model.Cloud;
4 import it.polimi.ingsw.Model.Enums.PawnColour;
5
6 import javax.swing.*;
7 import java.awt.*;
8 import java.util.ArrayList;
9
10 import static it.polimi.ingsw.Client.GUI.IconLoader.*;
11
12
13 public class CloudComponent extends JButton {
14
15 /**
16 * Create a new JButton with cloud as icon and draw students inside it
17 *
18 * @param cloudImage Cloud's icon to display
19 * @param cloud Cloud that will be represented by button
20 */
21 public CloudComponent(ImageIcon cloudImage, Cloud cloud) {
22 super(cloudImage);
23 ArrayList<JLabel> students = new ArrayList<>(cloud.getContents().size());
24 //create labels basing on pawnColour
25 for (PawnColour studentOnCloud : cloud.getContents()) {
26 switch (studentOnCloud) {
27 case RED -> students.add(new JLabel(RedStudent));
28 case GREEN -> students.add(new JLabel(GreenStudent));
29 case YELLOW -> students.add(new JLabel(YellowStudent));
30 case BLUE -> students.add(new JLabel(BlueStudent));
31 case PINK -> students.add(new JLabel(PinkStudent));
32 }
33 }
34 //remove border from CloudComponent button
35 this.setBorderPainted(false);
36 this.setContentAreaFilled(false);
37 this.setFocusPainted(false);
38 this.setOpaque(false);
39 this.setLayout(new GridLayout(2, 2));
40 //add students' labels to CloudComponent
41 students.forEach(this::add);
42 }
43 }