package tmcsim.cadsimulator.viewer; import java.io.PrintWriter; import java.io.Writer; import java.util.Observable; import tmcsim.cadsimulator.viewer.model.CADSimulatorState; import tmcsim.cadsimulator.viewer.model.CADSimulatorStatus; import tmcsim.common.CADEnums.PARAMICS_STATUS; import static tmcsim.common.CADEnums.SCRIPT_STATUS.ATMS_SYNCHRONIZATION; import static tmcsim.common.CADEnums.SCRIPT_STATUS.NO_SCRIPT; import static tmcsim.common.CADEnums.SCRIPT_STATUS.SCRIPT_PAUSED_STARTED; import static tmcsim.common.CADEnums.SCRIPT_STATUS.SCRIPT_RUNNING; import static tmcsim.common.CADEnums.SCRIPT_STATUS.SCRIPT_STOPPED_NOT_STARTED; import tmcsim.interfaces.CADViewer; /** * This class provides a console to view current status information for the CAD * Simulator. * * @see SimulationStatusPanel * @see MediaStatusPanel * @author Matthew Cechini * @version $Revision: 1.3 $ $Date: 2006/06/06 20:46:41 $ */ @SuppressWarnings("serial") public class CADConsoleViewer implements CADViewer { /** * Simulation model */ private CADSimulatorState cadstatus; private PrintWriter display; /** * Constructor. */ public CADConsoleViewer(String propertiesFile) { display = new PrintWriter(System.out, true); } public void setWriter(Writer writer) { display = new PrintWriter(writer, true); } public void setVisible(boolean state) { display.print("--- CAD Simulator ---\n"); display.print("Elapsed Simulation Time : 0:00:00\n"); display.print("Status : No Script\n"); display.print("Connected CAD Terminals : 0\n"); display.print("Simulation Manager Connected: No\n"); display.print("Connected to Paramics : No\n"); display.print("Network Loaded : None\n"); display.print("-- Info Messages --\n\n"); display.println("-- Error Messages --\n"); } /** * Method calls the processEvent() method with a WINDOW_CLOSING WindowEvent * to start the application closing process. */ public void closeViewer() { System.exit(0); } @Override public void update(Observable obs, Object obj) { if (obs instanceof CADSimulatorStatus) { CADSimulatorStatus cadstatus = (CADSimulatorStatus) obs; display.println("--- CAD Simulator ---"); display.println("Elapsed Simulation Time : " + cadstatus.getCurrentTime()); String statusTxt = "No Script"; switch (cadstatus.getScriptStatus()) { case NO_SCRIPT: statusTxt = "No Script"; break; case SCRIPT_STOPPED_NOT_STARTED: statusTxt = "Ready"; break; case SCRIPT_PAUSED_STARTED: statusTxt = "Paused"; break; case SCRIPT_RUNNING: statusTxt = "Running"; break; case ATMS_SYNCHRONIZATION: statusTxt = "Synchronizing"; break; } display.println("Status : " + statusTxt); display.println("Connected CAD Terminals : " + cadstatus.getNumClients()); String yesno = "No"; if (cadstatus.isSimManagerConnected()) { yesno = "Yes"; } display.println("Simulation Manager Connected: " + yesno); statusTxt = "No"; if (cadstatus.getParamicsStatus().equals(PARAMICS_STATUS.CONNECTED)) { statusTxt = "Yes"; } display.println("Connected to Paramics : " + statusTxt); String idTxt = "None"; if (cadstatus.getParmicsNetworkID().length() > 0) { idTxt = cadstatus.getParmicsNetworkID(); } display.println("Network Loaded : " + idTxt); display.println("-- Info Messages --"); display.println(cadstatus.getInfoMessages()); display.println("-- Error Messages --"); display.println(cadstatus.getErrorMessages()); } // if (obs instanceof CADMediaStatus) // { // mediaPanel.refresh(obs); // } } }