Alejandro Acuña
2024-10-25 e51f4a713ed6e744c203c9493165584728a29c52
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
package ParkingEquinsa;
 
 
import art.library.model.devices.Device;
import art.library.model.devices.DeviceGraphicsRuntime;
import art.library.model.devices.DeviceStatus;
import com.kitfox.svg.SVGDiagram;
 
public class ParkingEquinsaMap extends DeviceGraphicsRuntime
{
 
    public ParkingEquinsaMap(art.library.model.devices.Device device, SVGDiagram diagram)
    {
        super(device, diagram);
    }
 
    public void status()
    {
        setAttribute("Icon", "display", "none");
        
        Device device = getDevice();
       
        art.library.model.devices.parking.ParkingInformation information = (art.library.model.devices.parking.ParkingInformation) device.getDeviceInformation();
        art.library.model.devices.parking.ParkingStatus status = (art.library.model.devices.parking.ParkingStatus) device.getDeviceStatus();
        art.library.model.devices.parking.ParkingAlarms alarm = (art.library.model.devices.parking.ParkingAlarms) device.getDeviceAlarms();
       
        String color1 = "#000000";
        String color2 = "#000000";
        
        switch (status.status)
        {
            case DeviceStatus.STATUS_ONLINE:
            case DeviceStatus.STATUS_WARNING:
            case DeviceStatus.STATUS_ALARM:
                color1 = "#00FF00";
                color2 = "#008000";
                if (alarm.alarm_complete > 0)
                {
                    color1 = "#FF0000";
                    color2 = "#800000";
                } 
                else if (alarm.alarm_almost_complete > 0)
                {
                    color1 = "#FFFF00";
                    color2 = "#808000";
                }
                break;
            case DeviceStatus.STATUS_INVALID:
                color1 = "#B97A57";
                color2 = "#5A3B2A";
                break;
            case DeviceStatus.STATUS_DISABLE:
                color1 = "#808080";
                color2 = "#3E3E3E";
                break;
            case DeviceStatus.STATUS_SIMULATION:
                color1 = "#0000FF";
                color2 = "#000080";
                break;
            case DeviceStatus.STATUS_OFFLINE:
                color1 = "#FF00FF";
                color2 = "#800080";
                break;
            case DeviceStatus.STATUS_UNKNOWN:
                color1 = "#FF00FF";
                color2 = "#800080";
                break;
        }
        if ((status.status != DeviceStatus.STATUS_UNKNOWN) && (status.status != DeviceStatus.STATUS_OFFLINE) && (status.status != DeviceStatus.STATUS_INVALID))
        {
            try
            {
                setAttribute("Status text", "font-size", "5");
                
                setText("Status text", "" + status.equinsa.getFreeSpaces().get().value);
                setAttribute("Status text", "fill", "#008000");
 
               /* switch (status.infopark.state) TODO COLOR FOR SPACES
                {
                    case art.library.model.devices.parking.status.ParkingStatusInfopark.PARKING_STATE_UNKNOWN:
                        setText("Status text", "?");
                        setAttribute("Status text", "fill", "#800080");
                        break;
                    case art.library.model.devices.parking.status.ParkingStatusInfopark.PARKING_STATE_COMPLETE:
                        setText("Status text", "" + status.infopark.freeSpaces);
                        setAttribute("Status text", "fill", "#800000");
                        break;
                    case art.library.model.devices.parking.status.ParkingStatusInfopark.PARKING_STATE_ALMOST_COMPLETE:
                        setText("Status text", "" + status.infopark.freeSpaces);
                        setAttribute("Status text", "fill", "#808000");
                        break;
                    case art.library.model.devices.parking.status.ParkingStatusInfopark.PARKING_STATE_SPACES:
                        setText("Status text", "" + status.infopark.freeSpaces);
                        setAttribute("Status text", "fill", "#008000");
                        break;
                }*/
            } catch (Exception e)
            {
                setText("Status text", "?");
                setAttribute("Status text", "fill", "#800080");
            }
        } else
        {
            setText("Status text", "?");
            setAttribute("Status text", "fill", "#800080");
        }
        setAttribute("Status text", "display", "inline");
        setAttribute("Background", "fill", color1);
        setAttribute("Border", "stroke", color2);
    }
 
    public void commands()
    {
        setAttribute("Background", "fill", "#0000FF");
        setAttribute("Border", "stroke", "#0000FF");
        setAttribute("Icon", "display", "inline");
        setAttribute("Status text", "display", "none");
    }
}