import art.library.model.devices.Device; import art.library.model.devices.DeviceStatus; import com.kitfox.svg.SVGDiagram; public class DeviceGraphicsRuntime_Inforpark_ParkingSymbolBig extends DeviceGraphicsRuntime { public DeviceGraphicsRuntime_Inforpark_ParkingSymbolBig(art.library.model.devices.Device device, SVGDiagram diagram) { super(device, diagram); } public void timer() { Device device = (Device) getDevice(); art.library.model.devices.DeviceGraphics graphics = device.getDeviceGraphics(); try { if (graphics.getField("position") == null) { graphics.setField("position", new Integer(0)); } int position = (int) graphics.getField("position"); art.library.model.devices.vms.banner.BannerStatus status = (art.library.model.devices.vms.banner.BannerStatus) device.getDeviceStatus(); String text = status.rotulosElectronicos.text; int fontlength = 8; if (text.length() > fontlength) { position = position + 1; graphics.setField("position", position); if (position >= text.length() + 3) { graphics.setField("position", 0); } return; } } catch (Exception e) { } graphics.setField("position", 0); } public void status() { try { setAttribute("Font-16-Center", "display", "none"); setAttribute("Font-16-Left", "display", "none"); setAttribute("Font-16-Right", "display", "none"); setAttribute("Reboot", "display", "none"); setAttribute("Auto", "display", "none"); setAttribute("Background", "fill", "#FF00FF"); Device device = getDevice(); art.library.model.devices.vms.banner.BannerStatus status = (art.library.model.devices.vms.banner.BannerStatus) device.getDeviceStatus(); String foreground = "#800080"; String background = "#FF00FF"; try { switch (status.status) { case DeviceStatus.STATUS_ONLINE: background = "#00FF00"; 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; } setAttribute("Background", "fill", background); setAttribute("Background", "stroke", background); setAttribute("Background2", "fill", background); setAttribute("Background2", "stroke", background); setAttribute("Separator", "fill", background); if (status.rotulosElectronicos.state != art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.STATE_UNKNOWN) { setAttribute("DoubleFieldBanner", "display", "inline"); 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; } if (status.status == DeviceStatus.STATUS_OFFLINE) { foreground = background; } } } catch (Exception e) { } try { art.library.model.devices.DeviceGraphics graphics = device.getDeviceGraphics(); int position = (int) graphics.getField("position"); if (status.rotulosElectronicos != null) { if (status.rotulosElectronicos.text == null) { status.rotulosElectronicos.text = " "; } String fontsize = "Font-16-Center"; int fontlength = 8; String text = status.rotulosElectronicos.text; if (text.length() > fontlength) { text = text + " " + text; text = text.substring(position, position + fontlength); 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) { } } public void commands() { try { setAttribute("Font-16-Center", "display", "none"); setAttribute("Font-16-Left", "display", "none"); setAttribute("Font-16-Right", "display", "none"); setAttribute("Reboot", "display", "none"); setAttribute("Auto", "display", "none"); setAttribute("DoubleFieldBanner", "display", "none"); setAttribute("lblTancat", "display", "none"); setAttribute("lblObert", "display", "none"); setAttribute("Background", "fill", "#0000e0"); setAttribute("Background", "stroke", "#0000e0"); art.library.model.devices.vms.banner.BannerCommands deviceCommands = (art.library.model.devices.vms.banner.BannerCommands) getDeviceCommands(); String foreground = "#000000"; try { setAttribute("Background", "fill", "#00FF00"); setAttribute("Background", "stroke", "#00FF00"); setAttribute("Background2", "fill", "#00FF00"); setAttribute("Background2", "stroke", "#00FF00"); setAttribute("Separator", "fill", "#00FF00"); switch (deviceCommands.operationMode) { case art.library.model.devices.vms.banner.BannerCommands.OPERATION_AUTOMATIC: setAttribute("Auto", "display", "inline"); return; } switch (deviceCommands.reset) { case art.library.model.devices.vms.banner.BannerCommands.CONDITION_YES: setAttribute("Reboot", "display", "inline"); return; } if (deviceCommands.state != art.library.model.devices.vms.banner.status.BannerRotulosElectronicosStatus.STATE_UNKNOWN) { setAttribute("DoubleFieldBanner", "display", "inline"); switch (deviceCommands.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 (deviceCommands.rotulosElectronicos != null) { switch (deviceCommands.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; } } } catch (Exception e) { } try { if (deviceCommands.rotulosElectronicos != null && deviceCommands.operationMode == art.library.model.devices.vms.banner.BannerCommands.OPERATION_MANUAL) { String fontsize = "Font-16-Center"; int fontlength = 8; String text = deviceCommands.rotulosElectronicos.text; if (text.length() > fontlength) { setText(fontsize, text.substring(0, fontlength)); } else { switch (deviceCommands.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); }