| 1 | package tmcsim.cadsimulator.viewer; |
|---|
| 2 | |
|---|
| 3 | import java.io.PrintWriter; |
|---|
| 4 | import java.io.Writer; |
|---|
| 5 | import java.util.Observable; |
|---|
| 6 | import tmcsim.cadsimulator.viewer.model.CADSimulatorState; |
|---|
| 7 | import tmcsim.cadsimulator.viewer.model.CADSimulatorStatus; |
|---|
| 8 | import tmcsim.common.CADEnums.PARAMICS_STATUS; |
|---|
| 9 | import static tmcsim.common.CADEnums.SCRIPT_STATUS.ATMS_SYNCHRONIZATION; |
|---|
| 10 | import static tmcsim.common.CADEnums.SCRIPT_STATUS.NO_SCRIPT; |
|---|
| 11 | import static tmcsim.common.CADEnums.SCRIPT_STATUS.SCRIPT_PAUSED_STARTED; |
|---|
| 12 | import static tmcsim.common.CADEnums.SCRIPT_STATUS.SCRIPT_RUNNING; |
|---|
| 13 | import static tmcsim.common.CADEnums.SCRIPT_STATUS.SCRIPT_STOPPED_NOT_STARTED; |
|---|
| 14 | import tmcsim.interfaces.CADViewer; |
|---|
| 15 | |
|---|
| 16 | /** |
|---|
| 17 | * This class provides a console to view current status information for the CAD |
|---|
| 18 | * Simulator. |
|---|
| 19 | * |
|---|
| 20 | * @see SimulationStatusPanel |
|---|
| 21 | * @see MediaStatusPanel |
|---|
| 22 | * @author Matthew Cechini |
|---|
| 23 | * @version $Revision: 1.3 $ $Date: 2006/06/06 20:46:41 $ |
|---|
| 24 | */ |
|---|
| 25 | @SuppressWarnings("serial") |
|---|
| 26 | public class CADConsoleViewer implements CADViewer |
|---|
| 27 | { |
|---|
| 28 | |
|---|
| 29 | /** |
|---|
| 30 | * Simulation model |
|---|
| 31 | */ |
|---|
| 32 | private CADSimulatorState cadstatus; |
|---|
| 33 | private PrintWriter display; |
|---|
| 34 | |
|---|
| 35 | /** |
|---|
| 36 | * Constructor. |
|---|
| 37 | */ |
|---|
| 38 | public CADConsoleViewer(String propertiesFile) |
|---|
| 39 | { |
|---|
| 40 | display = new PrintWriter(System.out, true); |
|---|
| 41 | } |
|---|
| 42 | |
|---|
| 43 | public void setWriter(Writer writer) |
|---|
| 44 | { |
|---|
| 45 | display = new PrintWriter(writer, true); |
|---|
| 46 | } |
|---|
| 47 | |
|---|
| 48 | public void setVisible(boolean state) |
|---|
| 49 | { |
|---|
| 50 | display.print("--- CAD Simulator ---\n"); |
|---|
| 51 | display.print("Elapsed Simulation Time : 0:00:00\n"); |
|---|
| 52 | display.print("Status : No Script\n"); |
|---|
| 53 | display.print("Connected CAD Terminals : 0\n"); |
|---|
| 54 | display.print("Simulation Manager Connected: No\n"); |
|---|
| 55 | display.print("Connected to Paramics : No\n"); |
|---|
| 56 | display.print("Network Loaded : None\n"); |
|---|
| 57 | display.print("-- Info Messages --\n\n"); |
|---|
| 58 | display.println("-- Error Messages --\n"); |
|---|
| 59 | } |
|---|
| 60 | |
|---|
| 61 | /** |
|---|
| 62 | * Method calls the processEvent() method with a WINDOW_CLOSING WindowEvent |
|---|
| 63 | * to start the application closing process. |
|---|
| 64 | */ |
|---|
| 65 | public void closeViewer() |
|---|
| 66 | { |
|---|
| 67 | System.exit(0); |
|---|
| 68 | } |
|---|
| 69 | |
|---|
| 70 | @Override |
|---|
| 71 | public void update(Observable obs, Object obj) |
|---|
| 72 | { |
|---|
| 73 | if (obs instanceof CADSimulatorStatus) |
|---|
| 74 | { |
|---|
| 75 | CADSimulatorStatus cadstatus = (CADSimulatorStatus) obs; |
|---|
| 76 | display.println("--- CAD Simulator ---"); |
|---|
| 77 | display.println("Elapsed Simulation Time : " + cadstatus.getCurrentTime()); |
|---|
| 78 | String statusTxt = "No Script"; |
|---|
| 79 | switch (cadstatus.getScriptStatus()) |
|---|
| 80 | { |
|---|
| 81 | case NO_SCRIPT: |
|---|
| 82 | statusTxt = "No Script"; |
|---|
| 83 | break; |
|---|
| 84 | case SCRIPT_STOPPED_NOT_STARTED: |
|---|
| 85 | statusTxt = "Ready"; |
|---|
| 86 | break; |
|---|
| 87 | case SCRIPT_PAUSED_STARTED: |
|---|
| 88 | statusTxt = "Paused"; |
|---|
| 89 | break; |
|---|
| 90 | case SCRIPT_RUNNING: |
|---|
| 91 | statusTxt = "Running"; |
|---|
| 92 | break; |
|---|
| 93 | case ATMS_SYNCHRONIZATION: |
|---|
| 94 | statusTxt = "Synchronizing"; |
|---|
| 95 | break; |
|---|
| 96 | } |
|---|
| 97 | display.println("Status : " + statusTxt); |
|---|
| 98 | display.println("Connected CAD Terminals : " + cadstatus.getNumClients()); |
|---|
| 99 | String yesno = "No"; |
|---|
| 100 | if (cadstatus.isSimManagerConnected()) |
|---|
| 101 | { |
|---|
| 102 | yesno = "Yes"; |
|---|
| 103 | } |
|---|
| 104 | display.println("Simulation Manager Connected: " + yesno); |
|---|
| 105 | statusTxt = "No"; |
|---|
| 106 | if (cadstatus.getParamicsStatus().equals(PARAMICS_STATUS.CONNECTED)) |
|---|
| 107 | { |
|---|
| 108 | statusTxt = "Yes"; |
|---|
| 109 | } |
|---|
| 110 | display.println("Connected to Paramics : " + statusTxt); |
|---|
| 111 | String idTxt = "None"; |
|---|
| 112 | if (cadstatus.getParmicsNetworkID().length() > 0) |
|---|
| 113 | { |
|---|
| 114 | idTxt = cadstatus.getParmicsNetworkID(); |
|---|
| 115 | } |
|---|
| 116 | display.println("Network Loaded : " + idTxt); |
|---|
| 117 | display.println("-- Info Messages --"); |
|---|
| 118 | display.println(cadstatus.getInfoMessages()); |
|---|
| 119 | display.println("-- Error Messages --"); |
|---|
| 120 | display.println(cadstatus.getErrorMessages()); |
|---|
| 121 | } |
|---|
| 122 | // if (obs instanceof CADMediaStatus) |
|---|
| 123 | // { |
|---|
| 124 | // mediaPanel.refresh(obs); |
|---|
| 125 | // } |
|---|
| 126 | } |
|---|
| 127 | } |
|---|