Changeset 138 in tmcsimulator-scriptbuilder for trunk


Ignore:
Timestamp:
11/29/2017 10:06:59 AM (8 years ago)
Author:
bmcguffin
Message:

Added support for incident color. Color is now read from the xml file; if no color field exists, it picks a random one. Upon saving the file, color is written out in RGB format. The DTD now contains a new field, COLOR, with three attributes: r, g, b.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Incidents/script.dtd

    r66 r138  
    3636         <!ELEMENT COMMENT (#PCDATA)> 
    3737 
    38    <!ELEMENT SCRIPT_EVENT (TIME_INDEX | INCIDENT | CAD_DATA | GENERAL_INFO | 
     38   <!ELEMENT SCRIPT_EVENT (TIME_INDEX | COLOR | INCIDENT | CAD_DATA | GENERAL_INFO | 
    3939      ATMS_EVALUATION | CAD_EVALUATION | ACTIVITY_LOG_EVALUATION | FACILITATOR_EVALUATION | 
    4040      RADIO_EVALUATION | CHP_RADIO | MAINTENANCE_RADIO | CMS_EVALUATION | TMT_RADIO |  
     
    4444      <!ELEMENT INCIDENT (#PCDATA)> 
    4545         <!ATTLIST INCIDENT LogNum CDATA #REQUIRED> 
     46      <!ELEMENT COLOR EMPTY> 
     47         <!ATTLIST COLOR r CDATA #REQUIRED> 
     48         <!ATTLIST COLOR g CDATA #REQUIRED> 
     49         <!ATTLIST COLOR b CDATA #REQUIRED> 
    4650 
    4751      <!ELEMENT CAD_DATA (HEADER_INFO | CAD_INCIDENT_EVENT | LOCATION_INFO | MASTER_INC_NUM | 
  • trunk/src/scriptbuilder/structures/ELEMENT.java

    r19 r138  
    103103    //They do have attributes. 
    104104    AUDIO,//EVENT 
     105    COLOR, 
    105106    TOW,//EVENT 
    106107    UNIT,//EVENT 
  • trunk/src/scriptbuilder/structures/MyScriptHandler.java

    r76 r138  
    66package scriptbuilder.structures; 
    77 
     8import java.awt.Color; 
    89import java.util.ArrayList; 
    910import java.util.Random; 
     
    239240    private CadData cad = null; 
    240241 
     242    private Color incColor = null; 
     243 
    241244    /** 
    242245     * Constructor. Initializes incident map. 
     
    382385                } 
    383386            } 
     387            else if (qName.equals(ELEMENT.COLOR.tag)) 
     388            { 
     389                incColor = new Color(Integer.parseInt(attributes.getValue("r")), 
     390                        Integer.parseInt(attributes.getValue("g")), 
     391                        Integer.parseInt(attributes.getValue("b"))); 
     392            } 
    384393            else if (qName.equals(ELEMENT.FACILITATOR_EVALUATION.tag)) 
    385394            { 
     
    458467            { 
    459468                cad = new CadData(); 
     469                //Nullify color 
     470                //This gets overwritten if color tag exists 
     471                incColor = null; 
    460472            } 
    461473 
     
    732744                } 
    733745            } 
     746            else if (currentElement == ELEMENT.COLOR) 
     747            { 
     748                currInc.color = incColor; 
     749            } 
    734750            else if (currentElement == ELEMENT.EXPECTED_ACTION) 
    735751            { 
     
    887903                if (incidentMap.get(incidentLogNumber) == null) 
    888904                { 
     905                    Color newColor = SimulationScript.incidentColors[Math.abs(new Random().nextInt()) 
     906                            % SimulationScript.incidentColors.length]; 
     907 
    889908                    incidentMap.put(incidentLogNumber, 
    890                             new ScriptIncident(SimulationScript.incidentColors[Math.abs(new Random().nextInt()) % SimulationScript.incidentColors.length], 
     909                            new ScriptIncident(newColor, 
    891910                                    incidentLogNumber, currentIncName, currentIncidentDesc, 
    892911                                    script, (int) currentEventTime)); 
     
    919938                    unit.Curr_Loc = pcData.remove(ELEMENT.CURR_LOC); 
    920939                } 
    921                 if (pcData.containsKey(ELEMENT.DESTINATION)) 
     940                if (pcData.containsKey(ELEMENT.DESTINATION))     
    922941                { 
    923942                    unit.Destination = pcData.remove(ELEMENT.DESTINATION); 
  • trunk/src/scriptbuilder/structures/TimeSlice.java

    r111 r138  
    221221        output += XMLWriter.openTag(ELEMENT.INCIDENT.tag + " LogNum=\"" + thisIncident.number + "\""); 
    222222        output += thisIncident.name + XMLWriter.closeTag(ELEMENT.INCIDENT.tag); 
     223        output += XMLWriter.emptyTag(ELEMENT.COLOR.tag  
     224                + " r=\"" + thisIncident.color.getRed() + "\"" 
     225                + " g=\"" + thisIncident.color.getGreen() + "\"" 
     226                + " b=\"" + thisIncident.color.getBlue() + "\""); 
    223227 
    224228        if ((cadData != null && cadData.hasCadData()) || containsCADIncidentEvent()) 
  • trunk/src/scriptbuilder/structures/XMLWriter.java

    r131 r138  
    112112                + "<!ELEMENT FAX (#PCDATA)>\n" 
    113113                + "<!ELEMENT COMMENT (#PCDATA)>\n" 
    114                 + "<!ELEMENT SCRIPT_EVENT (TIME_INDEX | INCIDENT | CAD_DATA | GENERAL_INFO |\n" 
     114                + "<!ELEMENT SCRIPT_EVENT (TIME_INDEX | INCIDENT | COLOR | CAD_DATA | GENERAL_INFO |\n" 
    115115                + "ATMS_EVALUATION | CAD_EVALUATION | ACTIVITY_LOG_EVALUATION | FACILITATOR_EVALUATION |\n" 
    116116                + "RADIO_EVALUATION | CHP_RADIO | MAINTENANCE_RADIO | CMS_EVALUATION | TMT_RADIO | \n" 
     
    119119                + "<!ELEMENT INCIDENT (#PCDATA)>\n" 
    120120                + "<!ATTLIST INCIDENT LogNum CDATA #REQUIRED>\n" 
     121                + "<!ELEMENT COLOR EMPTY>\n" 
     122                + "<!ATTLIST COLOR r CDATA #REQUIRED>\n" 
     123                + "<!ATTLIST COLOR g CDATA #REQUIRED>\n" 
     124                + "<!ATTLIST COLOR b CDATA #REQUIRED>\n" 
    121125                + "<!ELEMENT CAD_DATA (HEADER_INFO | CAD_INCIDENT_EVENT | LOCATION_INFO | MASTER_INC_NUM |\n" 
    122126                + "P | ADDITIONAL_INFO | LOCATION | GENERAL)*>\n" 
Note: See TracChangeset for help on using the changeset viewer.