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()
|
{
|
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();
|
|
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;
|
|
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("%05d", controllerInformation.number));
|
setText("Text information", "");
|
setText("Text offset", "");
|
setText("Text cycle", "");
|
setText("Text elapsed", "");
|
|
setAttribute("Text information", "fill", "#FFFFFF");
|
setAttribute("Text offset", "fill", "#FFFFFF");
|
setAttribute("Text cycle", "fill", "#FFFFFF");
|
|
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");
|
|
switch (controllerStatus.status)
|
{
|
case art.library.model.devices.DeviceStatus.STATUS_ONLINE:
|
break;
|
case art.library.model.devices.DeviceStatus.STATUS_WARNING:
|
break;
|
case art.library.model.devices.DeviceStatus.STATUS_ALARM:
|
break;
|
case art.library.model.devices.DeviceStatus.STATUS_DISABLE:
|
setAttribute(background, "fill", "#404040");
|
setAttribute(ribbon, "stroke", "#404040");
|
setAttribute(border, "stroke", "#808080");
|
setAttribute(border, "display", "inline");
|
setAttribute(border, "stroke-width", 6.5);
|
setAttribute(border, "stroke-opacity", 1.0);
|
setAttribute(emergency, "fill-opacity", "0.0", 999);
|
setAttribute(lock, "fill-opacity", "0.0", 999);
|
setAttribute(run, "fill-opacity", "0.0", 999);
|
setAttribute(remote, "fill-opacity", "0.0", 999);
|
return;
|
case art.library.model.devices.DeviceStatus.STATUS_SIMULATION:
|
setAttribute(background, "fill", "#0000FF");
|
setAttribute(ribbon, "stroke", "#0000FF");
|
setAttribute(border, "stroke", "#000080");
|
setAttribute(border, "display", "inline");
|
setAttribute(border, "stroke-width", 6.5);
|
setAttribute(border, "stroke-opacity", 1.0);
|
break;
|
case art.library.model.devices.DeviceStatus.STATUS_INVALID:
|
case art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerStatus.STATUS_OFFLINE_CONTROLLER:
|
case art.library.model.devices.DeviceStatus.STATUS_OFFLINE:
|
case art.library.model.devices.DeviceStatus.STATUS_UNKNOWN:
|
|
java.awt.Color offline = java.awt.Color.decode("#FF00FF");
|
String offlineHex = String.format("#%02x%02x%02x", offline.getRed(), offline.getGreen(), offline.getBlue());
|
String offlineDarkerHex = String.format("#%02x%02x%02x", offline.darker().darker().getRed(), offline.darker().darker().getGreen(), offline.darker().darker().getBlue());
|
|
setAttribute(background, "fill", even ? offlineHex : offlineDarkerHex);
|
setAttribute(ribbon, "stroke", even ? offlineHex : offlineDarkerHex);
|
setAttribute(border, "stroke", even ? offlineHex : offlineDarkerHex);
|
setAttribute(border, "display", "inline");
|
setAttribute(border, "stroke-width", 6.5);
|
setAttribute(border, "stroke-opacity", 1.0);
|
|
if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED)
|
{
|
setAttribute(background, "fill", "#80531c");
|
setAttribute(ribbon, "stroke", "#80531c");
|
setAttribute(border, "stroke", "#80531c");
|
}
|
|
return;
|
}
|
|
if (controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED)
|
{
|
setAttribute(background, "fill", "#80531c");
|
setAttribute(ribbon, "stroke", "#80531c");
|
setAttribute(border, "stroke", "#80531c");
|
}
|
|
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);
|
}
|
|
switch (subcontrollerStatus.general.planMode)
|
{
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_ONLINE_ORDERS:
|
{
|
break;
|
}
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_TIMETABLE:
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DELAYED_ORDERS:
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_DYNAMIC_SELECTION:
|
case art.library.model.devices.colors.controller.RTZ32.status.RTZ32_Status_General.PLAN_MODE_FORCED:
|
{
|
break;
|
}
|
}
|
|
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 = art.client.models.Shared.getMessage("C");
|
}
|
else if(controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_TROLLEY)
|
{
|
information = art.client.models.Shared.getMessage("CTw");
|
}
|
else if(controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER_SLAVE)
|
{
|
information = art.client.models.Shared.getMessage("M-E");
|
}
|
else if(controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_MASTER)
|
{
|
information = art.client.models.Shared.getMessage("M");
|
}
|
else if(controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_CENTRALIZED_SLAVE)
|
{
|
information = art.client.models.Shared.getMessage("E");
|
}
|
else if(controllerInformation.mode == art.library.model.devices.colors.controller.RTZ32.RTZ32_ControllerInformation.MODE_NON_CENTRALIZED)
|
{
|
information = art.client.models.Shared.getMessage("N");
|
}
|
|
|
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 = bckColor.darker();
|
String darkHex = String.format("#%02x%02x%02x", darkerColor.darker().getRed(), darkerColor.darker().getGreen(), darkerColor.darker().getBlue());
|
|
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("%05d", 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("%05d", 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);
|
|
}
|
|
// java.io.StringWriter sw = new java.io.StringWriter();
|
// art.library.gui.flat.FlatDialog.showDialog(null, "Error", e.getMessage() + "\n\n" + sw.toString(), true, art.library.gui.flat.FlatDialog.DIALOG_ERROR);
|
//
|
}
|