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 PvvCommandsAspect extends DeviceGraphicsRuntime { public PvvCommandsAspect(art.library.model.devices.Device device, SVGDiagram diagram) { super(device, diagram); } public PvvCommandsAspect(art.library.model.devices.Device device, art.library.model.devices.DeviceCommands deviceCommands, SVGDiagram diagram) { super(device, deviceCommands, diagram); } private boolean flashOn = false; public void timer() { flashOn = !flashOn; commands(); } public void commands() { art.library.model.devices.vms.pvv.PvvCommands deviceCommands = (art.library.model.devices.vms.pvv.PvvCommands) getDeviceCommands(); 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 elements = getElement("elements"); setAttribute(elements, "display", "none", 999); setAttribute(restart, "display", "inline", 999); setAttribute(unlock, "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) { setAttribute(selectedText, "display", "none", 999); setAttribute(flashes, "display", "none", 999); setAttribute(circle, "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); // }