package Rtz;
|
|
import art.library.model.devices.DeviceGraphicsRuntime;
|
import com.kitfox.svg.SVGDiagram;
|
import com.kitfox.svg.SVGElement;
|
|
public class RtzMapComplex extends DeviceGraphicsRuntime
|
{
|
|
public RtzMapComplex(art.library.model.devices.Device device, SVGDiagram diagram)
|
{
|
super(device, diagram);
|
}
|
|
public RtzMapComplex(art.library.model.devices.Device device, art.library.model.devices.DeviceCommands commands, SVGDiagram diagram)
|
{
|
super(device, commands, diagram);
|
}
|
|
public void status()
|
{
|
try
|
{
|
statusSubcontroller();
|
}
|
catch (Exception e)
|
{
|
}
|
}
|
|
public void statusSubcontroller()
|
{
|
java.util.Calendar calendardate = java.util.Calendar.getInstance();
|
calendardate.set(java.util.Calendar.MILLISECOND, 0);
|
long seconds = calendardate.getTimeInMillis() / 1000;
|
boolean even = seconds % 2 == 0;
|
art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice();
|
art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus controllerStatus = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus) controller.getDeviceStatus();
|
art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation();
|
art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status subcontrollerStatus = controllerStatus.rtz32;
|
art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime subcontrollerRealtime = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerRealtime) device.getDeviceRealtime();
|
art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration subcontrollerConfiguration = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerConfiguration) device.getDeviceConfiguration();
|
SVGElement emergency = getElement("Emergency");
|
SVGElement lock = getElement("Lock");
|
SVGElement run = getElement("Run");
|
SVGElement remote = getElement("Remote");
|
SVGElement background = getElement("Background");
|
SVGElement border = getElement("Border");
|
SVGElement ribbon = getElement("Ribbon");
|
SVGElement elapsed1 = getElement("Elapsed1");
|
SVGElement elapsed2 = getElement("Elapsed2");
|
setAttribute(emergency, "fill-opacity", "1.0", 999);
|
setAttribute(lock, "fill-opacity", "1.0", 999);
|
setAttribute(run, "fill-opacity", "1.0", 999);
|
setAttribute(remote, "fill-opacity", "1.0", 999);
|
setAttribute(emergency, "fill", "#804080", 999);
|
setAttribute(lock, "fill", "#804080", 999);
|
setAttribute(run, "fill", "#804080", 999);
|
setAttribute(remote, "fill", "#804080", 999);
|
setText("Text number", String.format("%04d", controllerInformation.number));
|
setText("Text information", "");
|
setText("Text offset", "");
|
setText("Text cycle", "");
|
setText("Text elapsed", "");
|
|
setAttribute(background, "display", "inline");
|
|
try
|
{
|
if (art.client.models.Shared.configuration.general.darkMap == true)
|
{
|
setAttribute("Text number", "fill", "#FFFFFF");
|
setAttribute("Text information", "fill", "#FFFFFF");
|
setAttribute("Text offset", "fill", "#FFFFFF");
|
setAttribute("Text cycle", "fill", "#FFFFFF");
|
} else
|
{
|
setAttribute("Text number", "fill", "#000000");
|
setAttribute("Text information", "fill", "#000000");
|
setAttribute("Text offset", "fill", "#000000");
|
setAttribute("Text cycle", "fill", "#000000");
|
}
|
} catch (Exception ex)
|
{
|
}
|
setAttribute(elapsed1, "display", "none");
|
setAttribute(elapsed2, "display", "none");
|
/* setAttribute(border, "stroke", "#800080");*/ setAttribute(border, "display", "inline");
|
setAttribute(border, "stroke-width", 6.5);
|
setAttribute(border, "stroke-opacity", 0.75);
|
setAttribute(ribbon, "stroke-opacity", 0.50);
|
setAttribute(ribbon, "stroke", "#FF80FF");
|
setAttribute(background, "fill", "#FF80FF");
|
if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED)
|
{
|
setAttribute(border, "stroke", "#FFFFFF", 999);
|
setAttribute(background, "fill", "#FFFFFF", 999);
|
setAttribute(ribbon, "stroke", "#FFFFFF", 999);
|
} else
|
{
|
setAttribute(border, "display", "none", 999);
|
if (controllerStatus.rtz32.centralized.centralized == false)
|
{
|
setAttribute(border, "fill", "#808080", 999);
|
setAttribute(background, "fill", "#808080", 999);
|
setAttribute(ribbon, "stroke", "#808080", 999);
|
} else
|
{
|
boolean semiactuated = controllerStatus.rtz32.general.semiactuated;
|
boolean offline = false;
|
if (device.getAlarm("alarm_controller_offline") > 0 || device.getAlarm("alarm_offline") > 0)
|
{
|
offline = true;
|
setAttribute(background, "display", even ? "inline" : "none", 999);
|
}
|
if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER)
|
{
|
setAttribute(background, "fill", "#00FF00", 999);
|
setAttribute(ribbon, "stroke", "#00FF00", 999);
|
if (offline == true)
|
{
|
setAttribute(background, "display", even || semiactuated ? "none" : "inline", 999);
|
}
|
} else if (controllerStatus.rtz32.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL)
|
{
|
setAttribute(background, "fill", "#FF0000", 999);
|
setAttribute(ribbon, "stroke", "#FF0000", 999);
|
if (offline == true)
|
{
|
setAttribute(background, "display", even ? "none" : "inline", 999);
|
}
|
}
|
if (device.getAlarm("alarm_controller_offline") <= 0 && device.getAlarm("alarm_offline") <= 0)
|
{
|
if (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller.class.cast(device).getDeviceAlarms().rtz32.flashing.getServerityAlarm() > 0)
|
{
|
setAttribute(background, "fill", "#FFFF00", 999);
|
setAttribute(ribbon, "stroke", "#FFFF00", 999);
|
setAttribute(background, "display", even ? "inline" : "none", 999);
|
}
|
}
|
}
|
}
|
if (subcontrollerStatus.forcings != null && (subcontrollerStatus.forcings.centralized != null || subcontrollerStatus.forcings.colorsMode != null || subcontrollerStatus.forcings.computerMode != null || subcontrollerStatus.forcings.control != null || subcontrollerStatus.forcings.plan != null))
|
{
|
setAttribute(lock, "fill-opacity", "1.0", 999);
|
setAttribute(lock, "fill", "#FF0000", 999);
|
} else
|
{
|
setAttribute(lock, "fill-opacity", "0.15", 999);
|
setAttribute(lock, "fill", "#000000", 999);
|
}
|
if (subcontrollerStatus.general.emergency == true)
|
{
|
setAttribute(emergency, "fill-opacity", "1.0", 999);
|
} else if (subcontrollerStatus.general.emergency == false)
|
{
|
setAttribute(emergency, "fill-opacity", "0.15", 999);
|
setAttribute(emergency, "fill", "#000000", 999);
|
}
|
setAttribute("Text information", "display", "iniline", 999);
|
setAttribute("Text offset", "display", "iniline", 999);
|
setAttribute("Text cycle", "display", "iniline", 999);
|
if ((subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_COMPUTER))
|
{
|
setAttribute(remote, "fill-opacity", "1.0", 999);
|
setAttribute(remote, "fill", "#0000FF", 999);
|
} else
|
{
|
setAttribute(remote, "fill-opacity", "0.15", 999);
|
setAttribute(remote, "fill", "#000000", 999);
|
}
|
if (subcontrollerRealtime != null && subcontrollerRealtime.rtz32 != null && subcontrollerRealtime.rtz32.junctionRealtime == true)
|
{
|
setAttribute(run, "fill-opacity", "1.0", 999);
|
setAttribute(run, "fill", "#0000FF", 999);
|
} else
|
{
|
setAttribute(run, "fill-opacity", "0.15", 999);
|
setAttribute(run, "fill", "#000000", 999);
|
}
|
double strokeopacity = Math.pow(2, controller.getDeviceAlarms().getServerityAlarm()) / 32;
|
/* if (controller.getDeviceAlarms().getServerityAlarm() > 0) { setAttribute(border, "display", "inline"); setAttribute(border, "stroke", "#FF0000"); setAttribute(border, "stroke-opacity", strokeopacity); setAttribute(border, "stroke-width", 6.5 + (6.5 * strokeopacity)); } else { setAttribute(border, "stroke", "#808080"); setAttribute(border, "display", "inline"); setAttribute(border, "stroke-width", 6.5); setAttribute(border, "stroke-opacity", 1.0); }*/ switch (subcontrollerStatus.general.state)
|
{
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_UNKNOWN:
|
/*setAttribute(background, "fill", "#808080"); setAttribute(ribbon, "stroke", "#808080");*/ setAttribute(elapsed2, "fill", "#808080");
|
setText("Text information", "OFF");
|
return;
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_FLASHING:
|
setAttribute("Text information", "display", "none", 999);
|
setAttribute("Text offset", "display", "none", 999);
|
setAttribute("Text cycle", "display", "none", 999);
|
if (even)
|
{
|
/* setAttribute(background, "fill", "#FFFF00"); setAttribute(ribbon, "stroke", "#FFFF00");*/ setAttribute(elapsed2, "fill", "#FFFF00");
|
} else
|
{
|
/* setAttribute(background, "fill", "#808000"); setAttribute(ribbon, "stroke", "#808000");*/ setAttribute(elapsed2, "fill", "#808000");
|
}
|
setText("Text information", "Y^");
|
break;
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_STARTUP:
|
if (subcontrollerStatus.general.emergency == true)
|
{
|
/* setAttribute(background, "fill", even ? "#FF8000" : "#804000"); setAttribute(ribbon, "stroke", even ? "#FF8000" : "#804000");*/ setAttribute(elapsed2, "fill", even ? "#FF8000" : "#804000");
|
} else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL)
|
{
|
/* setAttribute(background, "fill", even ? "#008000" : "#004000"); setAttribute(ribbon, "stroke", even ?"#008000" : "#004000");*/ setAttribute(elapsed2, "fill", even ? "#008000" : "#004000");
|
} else
|
{
|
/* setAttribute(background, "fill", even ? "#00FF00" : "#008000"); setAttribute(ribbon, "stroke", even ? "#00FF00" : "#008000");*/ setAttribute(elapsed2, "fill", even ? "#00FF00" : "#008000");
|
}
|
break;
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.STATE_COLORS:
|
if (subcontrollerStatus.general.emergency == true)
|
{
|
/* setAttribute(background, "fill", "#FF8000"); */ setAttribute(ribbon, "stroke", "#FF8000");
|
setAttribute(elapsed2, "fill", "#FF8000");
|
} else if (subcontrollerStatus.general.control == art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.CONTROL_LOCAL)
|
{
|
/* setAttribute(background, "fill", "#008000"); setAttribute(ribbon, "stroke", "#008000");*/ setAttribute(elapsed2, "fill", "#008000");
|
} else
|
{
|
/* setAttribute(background, "fill", "#00FF00"); setAttribute(ribbon, "stroke", "#00FF00");*/ setAttribute(elapsed2, "fill", "#00FF00");
|
}
|
break;
|
}
|
art.library.model.devices.colors.controller.RTZ32.configuration.RTZ32_Configuration_Program plan = null;
|
if (subcontrollerStatus.plan != null && subcontrollerStatus.plan.number > 0)
|
{
|
try
|
{
|
plan = subcontrollerConfiguration.rtz32.getProgram(subcontrollerStatus.plan.number);
|
} catch (Exception e)
|
{
|
}
|
}
|
if (plan != null)
|
{
|
String information = "";
|
if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED)
|
{
|
information = "C";
|
} else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER)
|
{
|
information = "M";
|
} else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE)
|
{
|
information = "M-E";
|
} else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE)
|
{
|
information = "E";
|
} else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE_MASTER)
|
{
|
information = "E-M";
|
} else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY)
|
{
|
information = "CTw";
|
} else if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED)
|
{
|
information = "NC";
|
} else
|
{
|
information = "?";
|
}
|
information = information + plan.number;
|
switch (subcontrollerStatus.general.planMode)
|
{
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS:
|
information = information + "d";
|
break;
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION:
|
information = information + "ds";
|
break;
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED:
|
information = information + "f";
|
break;
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS:
|
information = information + "o";
|
break;
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE:
|
information = information + "t";
|
break;
|
}
|
setText("Text information", information);
|
if (plan.offset > 0)
|
{
|
setText("Text offset", "" + plan.offset);
|
} else
|
{
|
setText("Text offset", "");
|
}
|
setText("Text cycle", "" + plan.cycle);
|
if (subcontrollerRealtime != null)
|
{
|
try
|
{
|
String text = subcontrollerRealtime.rtz32.phase.phaseNumber + ":" + subcontrollerRealtime.rtz32.counters.cycle;
|
setText("Text elapsed", text);
|
setAttribute(elapsed1, "display", "inline");
|
setAttribute(elapsed2, "display", "inline");
|
int elapsedWidth = getAttributeInteger(elapsed1, "width") - 2;
|
float ratio = 1;
|
setAttribute(elapsed2, "width", (elapsedWidth * Math.min(1.0f, ratio)));
|
update(elapsed2);
|
} catch (Exception ex)
|
{
|
}
|
}
|
java.awt.Color bckColor = java.awt.Color.decode(background.getStyleAbsolute("fill").getStringValue());
|
java.awt.Color darkerColor = java.awt.Color.BLACK;
|
String darkHex = String.format("#%02x%02x%02x", darkerColor.getRed(),darkerColor.getBlue(),darkerColor.getGreen());
|
setAttribute("Text information", "fill", darkHex, 999);
|
setAttribute("Text offset", "fill", darkHex, 999);
|
setAttribute("Text cycle", "fill", darkHex, 999);
|
setAttribute(emergency, "fill", darkHex, 999);
|
setAttribute(lock, "fill", darkHex, 999);
|
setAttribute(run, "fill", darkHex, 999);
|
setAttribute(remote, "fill", darkHex, 999);
|
}
|
}
|
|
public void paintNoStatusAvailable()
|
{
|
art.library.model.devices.colors.controller.M.M_Controller controller = (art.library.model.devices.colors.controller.M.M_Controller) getDevice();
|
SVGElement thunderbolt = getElement("Thunderbolt");
|
SVGElement emergency = getElement("Emergency");
|
SVGElement lock = getElement("Lock");
|
SVGElement calendar = getElement("Calendar");
|
SVGElement run = getElement("Run");
|
SVGElement remote = getElement("Remote");
|
SVGElement background = getElement("Background");
|
SVGElement border = getElement("Border");
|
SVGElement ribbon = getElement("Ribbon");
|
SVGElement elapsed1 = getElement("Elapsed1");
|
SVGElement elapsed2 = getElement("Elapsed2");
|
setAttribute(thunderbolt, "fill-opacity", "1.0", 999);
|
setAttribute(emergency, "fill-opacity", "1.0", 999);
|
setAttribute(lock, "fill-opacity", "1.0", 999);
|
setAttribute(calendar, "fill-opacity", "1.0", 999);
|
setAttribute(run, "fill-opacity", "1.0", 999);
|
setAttribute(remote, "fill-opacity", "1.0", 999);
|
setAttribute(thunderbolt, "fill", "#804080", 999);
|
setAttribute(emergency, "fill", "#804080", 999);
|
setAttribute(lock, "fill", "#804080", 999);
|
setAttribute(calendar, "fill", "#804080", 999);
|
setAttribute(run, "fill", "#804080", 999);
|
setAttribute(remote, "fill", "#804080", 999);
|
setText("Text number", String.format("%04d", controller.getDeviceInformation().number));
|
setText("Text information", "");
|
setText("Text offset", "");
|
setText("Text cycle", "");
|
setText("Text elapsed", "");
|
setAttribute(elapsed1, "display", "none");
|
setAttribute(elapsed2, "display", "none");
|
setAttribute(ribbon, "stroke-opacity", 0.50);
|
setAttribute(background, "fill", "#FF00FF");
|
setAttribute(ribbon, "stroke", "#FF00FF");
|
setAttribute(border, "stroke", "#FF00FF");
|
setAttribute(border, "display", "inline");
|
setAttribute(border, "stroke-width", 6.5);
|
setAttribute(border, "stroke-opacity", 1.0);
|
}
|
|
public void commands()
|
{
|
final String colorNoCommandsBorder = "#00007C";
|
final String colorNoCommandsBackground = "#7C7CFA";
|
final String colorCommandsBorder = "#007C00";
|
final String colorCommandsBackground = "#7CFA7C";
|
art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller controller = (art.library.model.devices.colors.controller.RTZ32.RTZ32_Controller) getDevice();
|
art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation controllerInformation = (art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation) controller.getDeviceInformation();
|
SVGElement background = getElement("Background");
|
SVGElement border = getElement("Border");
|
SVGElement ribbon = getElement("Ribbon");
|
SVGElement emergency = getElement("Emergency");
|
SVGElement lock = getElement("Lock");
|
SVGElement run = getElement("Run");
|
SVGElement remote = getElement("Remote");
|
setAttribute(border, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBorder : colorNoCommandsBorder);
|
setAttribute(border, "display", "inline");
|
setAttribute(border, "stroke-width", 6.5);
|
setAttribute(border, "stroke-opacity", 0.75);
|
setAttribute(ribbon, "stroke-opacity", 0.50);
|
setAttribute(ribbon, "stroke", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground);
|
setAttribute(background, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground);
|
setAttribute(emergency, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999);
|
setAttribute(lock, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999);
|
setAttribute(run, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999);
|
setAttribute(remote, "fill", !getDeviceCommands().isEmpty() ? colorCommandsBackground : colorNoCommandsBackground, 999);
|
setText("Text number", String.format("%04d", controllerInformation.number));
|
setAttribute("Text information", "display", "none", 999);
|
setAttribute("Text offset", "display", "none", 999);
|
setAttribute("Text cycle", "display", "none", 999);
|
setAttribute("Text elapsed", "display", "none", 999);
|
}
|
}
|