package AAAMain;
|
|
import AAAMain.SvgDeviceStatusTest.SvgMocker;
|
import AccessEnforcement.mockers.AccessEnforcementMockerMap;
|
import Asf.mockers.AsfMockerAspectCommands;
|
import Asf.mockers.AsfMockerAspectStatus;
|
import Asf.mockers.AsfMockerMap;
|
import Bollard.Mockers.BollardMockerAspectCommands;
|
import Bollard.Mockers.BollardMockerAspectStatus;
|
import Bollard.Mockers.BollardMockerMap;
|
import Citilux.Mockers.CitiluxMockerMap;
|
import Colors.Mockers.ColorsMocker;
|
import Colors.Mockers.ColorsMockerGoa;
|
import Colors.Mockers.ColorsMockerHide;
|
import Colors.Mockers.ColorsMockerKielce;
|
import Customs.mockers.CustomsMocker;
|
import LightStuds.Mockers.LightStudsMockerAspectStatus;
|
import LightStuds.Mockers.LightStudsMockerMap;
|
import M_Controller.mockers.M_ControllerMockerBig;
|
import M_Controller.mockers.M_ControllerMockerMap;
|
import Meteo.Mockers.MeteoMockerMap;
|
import Mocker.IDeviceMocker;
|
import ParkingEquinsa.mockers.ParkingEquinsaMockerMap;
|
import ParkingUrbiotica.mockers.ParkingUrbioticaMockerMap;
|
import Pvv.mockers.PvvMockerAspectCommands;
|
import Pvv.mockers.PvvMockerAspectStatus;
|
import Pvv.mockers.PvvMockerMap;
|
import RedEnforcement.mockers.RedEnforcementMockerMap;
|
import Rotapanel.mockers.RotapanelActionMocker;
|
import Rotapanel.mockers.RotapanelAspectMocker;
|
import Rtz.mockers.RtzMockerMap;
|
import Rtz.mockers.RtzMockerMapComplex;
|
import Rtz.mockers.RtzMockerMapMiddle;
|
import Rtz.mockers.RtzMockerSchematic;
|
import SpeedEnforcement.mockers.SpeedEnforcementMockerMap;
|
import VMSGeneral.mockers.VmsGeneralKielseMockerStatus;
|
import Vehicle.mockers.VehicleMockerMapPaintedBorder;
|
import Vehicle.mockers.VehicleMockerMapWhiteBorder;
|
import VentilationZone.mockers.VentilationZoneMocker;
|
import VentilationZone.mockers.VentilationZoneMockerHide;
|
import art.library.gui.FlatGUI;
|
import java.awt.Dimension;
|
import java.awt.HeadlessException;
|
import java.io.File;
|
import java.io.IOException;
|
import java.nio.file.Files;
|
import java.util.Calendar;
|
import java.util.Timer;
|
import java.util.TimerTask;
|
import javax.swing.JFrame;
|
import javax.swing.UIManager;
|
import javax.swing.UnsupportedLookAndFeelException;
|
import svgdevicestest.maps.SVG.PanelScaleVectorGraphics;
|
import svgdevicestest.mock.DeviceMocker;
|
|
public class SvgDeviceStatusTest
|
{
|
|
private static final SvgMocker SELECTED_MOCKER = SvgMocker.M_Controller;
|
|
public static String mapPath;
|
|
enum SvgMocker
|
{
|
AccessEnforcementMap(AccessEnforcementMockerMap.class),
|
AsfMap(AsfMockerMap.class),
|
AsfCommands(AsfMockerAspectCommands.class),
|
AsfStatus(AsfMockerAspectStatus.class),
|
BollardCommands(BollardMockerAspectCommands.class),
|
BollardStatus(BollardMockerAspectStatus.class),
|
BollardMap(BollardMockerMap.class),
|
CitiluxMap(CitiluxMockerMap.class),
|
ColorsKielce(ColorsMockerKielce.class),
|
ColorsGoa(ColorsMockerGoa.class),
|
ColorsMapHide(ColorsMockerHide.class),
|
ColorsMapNoHide(ColorsMocker.class),
|
CustomsMap(CustomsMocker.class),
|
MeteoMap(MeteoMockerMap.class),
|
M_Controller(M_ControllerMockerMap.class),
|
M_Controller_BIG(M_ControllerMockerBig.class),
|
PvvMap(PvvMockerMap.class),
|
PvvStatus(PvvMockerAspectStatus.class),
|
PvvCommands(PvvMockerAspectCommands.class),
|
LightStudsStatus(LightStudsMockerAspectStatus.class),
|
LightStudsMap(LightStudsMockerMap.class),
|
ParkingEquinsa(ParkingEquinsaMockerMap.class),
|
ParkingUrbiotica(ParkingUrbioticaMockerMap.class),
|
RedEnforcement(RedEnforcementMockerMap.class),
|
RotapanelStatus(RotapanelAspectMocker.class),
|
RotapanelCommands(RotapanelActionMocker.class),
|
RTZMap(RtzMockerMap.class),
|
RTZMapComplex(RtzMockerMapComplex.class),
|
RTZMapMiddle(RtzMockerMapMiddle.class),
|
RTZMockerSchematic(RtzMockerSchematic.class),
|
SpeedEnforcementMap(SpeedEnforcementMockerMap.class),
|
VehicleMapPaintedBorder(VehicleMockerMapPaintedBorder.class),
|
VehicleMapWhiteBorder(VehicleMockerMapWhiteBorder.class),
|
VentilationZoneNoHide(VentilationZoneMocker.class),
|
VentilationZoneHide(VentilationZoneMockerHide.class),
|
VMSGeneralKielse(VmsGeneralKielseMockerStatus.class);
|
|
final Class clazz;
|
|
SvgMocker(Class clazz)
|
{
|
this.clazz = clazz;
|
}
|
|
public DeviceMocker getMocker()
|
{
|
try
|
{
|
return (DeviceMocker) clazz.getConstructor().newInstance();
|
} catch (Exception ex)
|
{
|
throw new Error("Error instantiating class [" + clazz.getName() + "] | " + ex.getMessage());
|
}
|
}
|
}
|
|
public static svgdevicestest.maps.SVG.MyPanelDeviceStatusSvg panelDeviceStatusGeneralSvg;
|
public static svgdevicestest.maps.SVG.MyPanelDeviceCommandsSvg panelDeviceCommandsGeneralSvg;
|
public static PanelScaleVectorGraphics panelScaleVectorGraphics;
|
public static DeviceMocker deviceMocker;
|
public static byte[] data;
|
public static Class scriptClass = null;
|
|
public static String getValue(String[] args, String parameter)
|
{
|
for (int i = 0; i < args.length; i++)
|
{
|
if (args[i].equalsIgnoreCase(parameter))
|
{
|
return args[i + 1];
|
}
|
}
|
|
return null;
|
}
|
|
static File file = null;
|
|
public static void main(String[] args)
|
{
|
try
|
{
|
try
|
{
|
mapPath = args[0];
|
|
} catch (Exception ex)
|
{
|
System.out.println("SVG path argument not found");
|
}
|
|
initialise();
|
|
setupMockerFromEnum();
|
|
try{ initSvgPanel();} catch (Exception e){ e.printStackTrace(); }
|
}
|
catch (Exception e){ e.printStackTrace();}
|
}
|
|
private static void initSvgPanel() throws HeadlessException
|
{
|
panelDeviceStatusGeneralSvg = new svgdevicestest.maps.SVG.MyPanelDeviceStatusSvg(deviceMocker.device);
|
panelDeviceCommandsGeneralSvg = new svgdevicestest.maps.SVG.MyPanelDeviceCommandsSvg(deviceMocker.device,deviceMocker.commands);
|
JFrame frame = new JFrame();
|
|
if (deviceMocker instanceof IDeviceMocker)
|
{
|
frame.getContentPane().add(((IDeviceMocker) deviceMocker).isStatusMode() ? panelDeviceStatusGeneralSvg : panelDeviceCommandsGeneralSvg);
|
} else
|
{
|
frame.getContentPane().add(panelDeviceStatusGeneralSvg);
|
}
|
frame.setSize(new Dimension(1024, 768));
|
frame.setVisible(true);
|
Timer timer = new Timer();
|
timer.scheduleAtFixedRate(new MyTimerTask(deviceMocker), 0, 1000);
|
}
|
|
private static void initialise() throws IllegalAccessException, Exception, UnsupportedLookAndFeelException, ClassNotFoundException, InstantiationException
|
{
|
Calendar calendar1 = Calendar.getInstance();
|
calendar1.set(Calendar.HOUR_OF_DAY, 0);
|
calendar1.set(Calendar.MINUTE, 0);
|
calendar1.set(Calendar.SECOND, 0);
|
calendar1.set(Calendar.MILLISECOND, 0);
|
|
calendar1.add(Calendar.DATE, 1);
|
|
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
|
FlatGUI.initialise();
|
}
|
|
public static void setupMockerFromEnum()
|
{
|
deviceMocker = SELECTED_MOCKER.getMocker();
|
setupFiles(deviceMocker);
|
}
|
|
private static void setupFiles(DeviceMocker mocker)
|
{
|
IDeviceMocker deviceMocker = (IDeviceMocker) mocker;
|
scriptClass = deviceMocker.getScriptClass();
|
file = deviceMocker.getFile();
|
try
|
{
|
data = Files.readAllBytes(file.toPath());
|
} catch (Exception ex)
|
{
|
}
|
|
}
|
|
private static class MyTimerTask extends TimerTask
|
{
|
|
private DeviceMocker deviceMocker;
|
private boolean active = false;
|
|
public MyTimerTask(DeviceMocker deviceMocker)
|
{
|
this.deviceMocker = deviceMocker;
|
}
|
|
public void run()
|
{
|
try
|
{
|
data = Files.readAllBytes(file.toPath());
|
deviceMocker.updateDevice(!active);
|
|
if (panelDeviceStatusGeneralSvg != null)
|
{
|
panelDeviceStatusGeneralSvg.reload(data);
|
|
if (scriptClass != null)
|
panelDeviceStatusGeneralSvg.reload(scriptClass);
|
|
panelDeviceStatusGeneralSvg.reload();
|
}
|
if (panelDeviceCommandsGeneralSvg != null)
|
{
|
panelDeviceCommandsGeneralSvg.reload(data);
|
|
if (scriptClass != null)
|
panelDeviceCommandsGeneralSvg.reload(scriptClass);
|
|
panelDeviceCommandsGeneralSvg.reload();
|
}
|
active = !active;
|
}
|
catch (IOException ex)
|
{
|
ex.printStackTrace();
|
}
|
}
|
}
|
}
|