import art.library.model.devices.Device; import art.library.model.devices.DeviceStatus; import com.kitfox.svg.SVGDiagram; public class DeviceGraphicsRuntime_Inforpark_VmsBannerStatus extends DeviceGraphicsRuntime { public DeviceGraphicsRuntime_Inforpark_VmsBannerStatus(art.library.model.devices.Device device, SVGDiagram diagram) { super(device, diagram); } private int position = 0; public void timer() { try { art.library.model.devices.vms.banner.BannerStatus status = (art.library.model.devices.vms.banner.BannerStatus) device.getDeviceStatus(); String text = status.rotulosElectronicos.text; int fontlength = 10; if (status.rotulosElectronicos.fontSize == 2) { fontlength = 8; } if (text.length() > fontlength) { position = position + 1; if (position >= text.length()) { position = 0; } status(); return; } } catch (Exception e) { } position = 0; } public void status() { try { Device device = getDevice(); art.library.model.devices.vms.banner.BannerInformation information = (art.library.model.devices.vms.banner.BannerInformation) device.getDeviceInformation(); art.library.model.devices.vms.banner.BannerStatus status = (art.library.model.devices.vms.banner.BannerStatus) device.getDeviceStatus(); art.library.model.devices.vms.banner.BannerAlarms alarms = (art.library.model.devices.vms.banner.BannerAlarms) device.getDeviceAlarms(); setAttribute("Font-12-Center", "display", "none"); setAttribute("Font-12-Right", "display", "none"); setAttribute("Font-12-Left", "display", "none"); setAttribute("Font-16-Center", "display", "none"); setAttribute("Font-16-Right", "display", "none"); setAttribute("Font-16-Left", "display", "none"); setAttribute("Background", "fill", "#FF00FF"); setAttribute("Auto", "display", "none"); setAttribute("Manual", "display", "none"); setAttribute("lblObert", "display", "none"); setAttribute("lblTancat", "display", "none"); String foreground = "#800080"; String background = "#FF00FF"; try { setAttribute("Manual", "transform", "translate(54.25853,125.47335)"); switch (status.rotulosElectronicos.operationMode) { case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.OPERATION_MODE_MANUAL: setAttribute("Manual", "display", "inline"); break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.OPERATION_MODE_AUTOMATIC: setAttribute("Auto", "display", "inline"); break; } } catch (Exception e) { } try { switch (status.status) { case DeviceStatus.STATUS_ONLINE: background = "#0000FE"; break; case DeviceStatus.STATUS_WARNING: background = "#FFFF00"; break; case DeviceStatus.STATUS_ALARM: background = "#FF0000"; break; case DeviceStatus.STATUS_INVALID: background = "#B97A57"; break; case DeviceStatus.STATUS_DISABLE: background = "#808080"; break; case DeviceStatus.STATUS_SIMULATION: background = "#0000FF"; break; case DeviceStatus.STATUS_OFFLINE: background = "#FF00FF"; break; case DeviceStatus.STATUS_UNKNOWN: background = "#FF00FF"; break; } switch(status.rotulosElectronicos.state) { case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.STATE_OPEN: setAttribute("lblObert", "display", "inline"); break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.STATE_CLOSE: setAttribute("lblTancat", "display", "inline"); break; } if (status.rotulosElectronicos != null) { switch (status.rotulosElectronicos.foreground) { case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.COLOR_BLUE: foreground = "#0000FF"; break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.COLOR_CYAN: foreground = "#00FFFF"; break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.COLOR_GREEN: foreground = "#00FF00"; break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.COLOR_PURPLE: foreground = "#FF00FF0"; break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.COLOR_RED: foreground = "#FF0000"; break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.COLOR_WHITE: foreground = "#FFFFFF"; break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.COLOR_YELLOW: foreground = "#FFFF00"; break; default: foreground = "#FFFFFF"; break; } } setAttribute("Background", "fill", background); setAttribute("Background", "stroke", background); } catch (Exception e) { } try { if (status.rotulosElectronicos != null) { String fontsize = "Font-12-Center"; int fontlength = 10; if (status.rotulosElectronicos.fontSize == 2) { fontlength = 8; fontsize = "Font-16-Center"; } String text = status.rotulosElectronicos.text; if (text.length() > fontlength) { if (position > 0) { text = text + " " + status.rotulosElectronicos.text; } text = text.substring(position, Math.min(position + fontlength, text.length())); setText(fontsize, text); } else { switch (status.rotulosElectronicos.horizontalAlignment) { case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.ALIGNMENT_HORIZONTAL_LEFT: fontsize = fontsize = "Font-" + fontsize.split("-")[1] + "-Left"; break; case art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.ALIGNMENT_HORIZONTAL_RIGHT: fontsize = "Font-" + fontsize.split("-")[1] + "-Right"; break; default: fontsize = "Font-" + fontsize.split("-")[1] + "-Center"; break; } setText(fontsize, text); } setAttribute(fontsize, "fill", foreground); setAttribute(fontsize, "display", "inline"); } } catch (Exception e) { } } catch (Exception e) { } } // 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); // }