package Pvv;
|
|
import art.library.model.devices.Device;
|
import art.library.model.devices.DeviceGraphicsRuntime;
|
import com.kitfox.svg.SVGDiagram;
|
import com.kitfox.svg.SVGElement;
|
|
|
public class PvvStatusAspect extends DeviceGraphicsRuntime
|
{
|
|
public PvvStatusAspect(art.library.model.devices.Device device, SVGDiagram diagram)
|
{
|
super(device, diagram);
|
}
|
|
private boolean flashOn = false;
|
|
public void timer()
|
{
|
flashOn = !flashOn;
|
status();
|
}
|
|
public void status()
|
{
|
try
|
{
|
Device device = getDevice();
|
art.library.model.devices.vms.pvv.PvvStatus status = (art.library.model.devices.vms.pvv.PvvStatus) device.getDeviceStatus();
|
art.library.model.devices.vms.pvv.PvvAlarms alarms = (art.library.model.devices.vms.pvv.PvvAlarms) device.getDeviceAlarms();
|
art.library.model.devices.vms.pvv.PvvConfiguration configuration = (art.library.model.devices.vms.pvv.PvvConfiguration) device.getDeviceConfiguration();
|
SVGElement circle = getElement("circle");
|
SVGElement text1 = getElement("text_1");
|
SVGElement text2 = getElement("text_2");
|
SVGElement flashes = getElement("flashes");
|
SVGElement elements = getElement("elements");
|
setAttribute(elements, "display", "none", 999);
|
setAttribute("lock-on", "display", "inline", 999);
|
setAttribute("Manual", "display", "inline", 999);
|
setAttribute("Auto", "display", "inline", 999);
|
setAttribute("light-on", "display", "inline", 999);
|
setAttribute("icon-test-on", "display", "none", 999);
|
for (int i = 0; i <= 5; i++)
|
{
|
setAttribute("alarm-" + i, "display", (alarms.getServerityAlarm() == i) ? "inline" : "none", 999);
|
}
|
switch (status.state)
|
{
|
case art.library.model.devices.vms.pvv.PvvStatus.STATE_TEST:
|
setAttribute("icon-test-on", "display", "inline", 999);
|
case art.library.model.devices.vms.pvv.PvvStatus.STATE_ON:
|
case art.library.model.devices.vms.pvv.PvvStatus.STATE_FLASH:
|
SVGElement currentText = ((status.speed > 9 && status.speed < 20) || status.speed > 99) ? text1 : text2;
|
setText(currentText, String.valueOf(status.speed));
|
if (status.visibilitySpeed)
|
{
|
setAttribute(currentText, "display", (status.blinkingSpeed) ? ((flashOn) ? "inline" : "none") : "inline", 999);
|
}
|
if (status.visibilityFlashes)
|
{
|
setAttribute(flashes, "display", (status.blinkingFlashes) ? ((flashOn) ? "inline" : "none") : "inline", 999);
|
}
|
if (status.visibilityCircle)
|
{
|
setAttribute(circle, "display", (status.blinkingCircle) ? ((flashOn) ? "inline" : "none") : "inline", 999);
|
}
|
break;
|
case art.library.model.devices.vms.pvv.PvvStatus.STATE_OFF:
|
break;
|
}
|
if (!status.isLocked())
|
{
|
setAttribute("lock-on", "display", "none", 999);
|
}
|
if (configuration != null && configuration.brightnessMode != art.library.model.devices.vms.pvv.PvvConfiguration.BRIGHTNESS_MODE_UNKNOWN)
|
{
|
setAttribute((configuration.brightnessMode == art.library.model.devices.vms.pvv.PvvConfiguration.BRIGHTNESS_MODE_AUTO) ? "Manual" : "Auto", "display", "none", 999);
|
} else
|
{
|
setAttribute("light-on", "display", "none");
|
setAttribute("Auto", "display", "none");
|
setAttribute("Manual", "display", "none");
|
}
|
} catch (Exception ex)
|
{
|
}
|
}
|
|
public void commands()
|
{
|
art.library.model.devices.vms.pvv.PvvCommands deviceCommands = (art.library.model.devices.vms.pvv.PvvCommands) getDeviceCommands();
|
SVGElement background = getElement("background");
|
SVGElement circle = getElement("circle");
|
SVGElement text1 = getElement("text_1");
|
SVGElement text2 = getElement("text_2");
|
SVGElement flashes = getElement("flashes");
|
SVGElement lock = getElement("lock");
|
SVGElement unlock = getElement("unlock");
|
SVGElement restart = getElement("restart");
|
SVGElement sync = getElement("sync");
|
SVGElement elements = getElement("elements");
|
setAttribute(elements, "display", "none", 999);
|
setAttribute(restart, "display", "inline", 999);
|
setAttribute(unlock, "display", "inline", 999);
|
setAttribute(sync, "display", "inline", 999);
|
setAttribute(lock, "display", "inline", 999);
|
setAttribute("lock-off", "display", "none", 999);
|
boolean overrideFlash = false;
|
boolean overrideSpeed = false;
|
boolean overrideCircle = false;
|
SVGElement selectedText = null;
|
if (deviceCommands.message != null)
|
{
|
art.library.model.devices.vms.pvv.commands.PvvCommandsMessage message = (art.library.model.devices.vms.pvv.commands.PvvCommandsMessage) deviceCommands.message;
|
selectedText = ((message.speed > 9 && message.speed < 20) || message.speed > 99) ? text1 : text2;
|
setText(text1, String.valueOf(message.speed));
|
setText(text2, String.valueOf(message.speed));
|
setAttribute(circle, "display", "inline", 999);
|
setAttribute(selectedText, "display", "inline", 999);
|
if (message.blinkings != null)
|
{
|
if (message.blinkings.blinkingCircle == art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES)
|
{
|
overrideCircle = !flashOn;
|
setAttribute(circle, "display", ((flashOn) ? "inline" : "none"), 999);
|
}
|
if (message.blinkings.blinkingFlashes == art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES)
|
{
|
overrideFlash = !flashOn;
|
setAttribute(flashes, "display", ((flashOn) ? "inline" : "none"), 999);
|
}
|
if (message.blinkings.blinkingSpeed == art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES)
|
{
|
overrideSpeed = !flashOn;
|
setAttribute(selectedText, "display", ((flashOn) ? "inline" : "none"), 999);
|
}
|
}
|
if (message.visibilities != null)
|
{
|
if (!overrideCircle)
|
{
|
setAttribute(circle, "display", "inline", 999);
|
}
|
if (!overrideFlash)
|
{
|
setAttribute(flashes, "display", "inline", 999);
|
}
|
if (!overrideSpeed)
|
{
|
setAttribute(selectedText, "display", "inline", 999);
|
}
|
if (!message.visibilities.visibilityCircle)
|
{
|
setAttribute(circle, "display", "none", 999);
|
}
|
if (!message.visibilities.visibilityFlashes)
|
{
|
setAttribute(flashes, "display", "none", 999);
|
}
|
if (!message.visibilities.visibilitySpeed)
|
{
|
setAttribute(selectedText, "display", "none", 999);
|
}
|
}
|
}
|
if (deviceCommands.reset != art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES)
|
{
|
setAttribute(restart, "display", "none", 999);
|
}
|
if (deviceCommands.liberate != art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES)
|
{
|
setAttribute(unlock, "display", "none", 999);
|
setAttribute("lock-off", "display", "inline", 999);
|
}
|
if (deviceCommands.message == null || deviceCommands.message.synchroActivation != art.library.model.devices.vms.pvv.PvvCommands.CONDITION_YES)
|
{
|
setAttribute(sync, "display", "none", 999);
|
} else
|
{
|
setAttribute(circle, "display", "none", 999);
|
setAttribute(selectedText, "display", "none", 999);
|
}
|
if (deviceCommands.priority != 256)
|
{
|
setAttribute(lock, "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);
|
//
|
}
|