WWA Updates for Unidata specific changes (manually merged v18.2.1 changes to v20)
-com.raytheon.viz.warnings Summary can be found in this commit:c5fbae1363
-com.raytheon.uf.common.dataplugin.warning Summary can be found in this commit:ddeed72777
This commit is contained in:
parent
2111815b7a
commit
e8ba091657
21 changed files with 2053 additions and 342 deletions
192
cave/com.raytheon.viz.warnings/localization/bundles/AllWWA.xml
Normal file
192
cave/com.raytheon.viz.warnings/localization/bundles/AllWWA.xml
Normal file
|
@ -0,0 +1,192 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="true"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="magnificationCapability" magnification="1.0"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="wwaResourceData" name="Flood Watches, Warnings, Advisories" hideSampling="false" isRequeryNecessaryOnTimeMatch="true" isUpdatingOnMetadataOnly="false" retrieveData="false">
|
||||
<metadataMap>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintType="IN" constraintValue="FA.A,FL.A,FF.A,FA.W,FA.Y,FF.S,FF.W,FL.W,HY.S,FL.S,FL.Y"/>
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="act">
|
||||
<constraint constraintType="IN" constraintValue="NEW,CON,CAN,EXT,EXP"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="false"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="wwaResourceData" name="Wind Watches, Warnings, Advisories" hideSampling="false" isRequeryNecessaryOnTimeMatch="true" isUpdatingOnMetadataOnly="false" retrieveData="false">
|
||||
<metadataMap>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintType="IN" constraintValue="EW.W,HW.A,HW.W,SI.Y,WI.Y"/>
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="act">
|
||||
<constraint constraintType="IN" constraintValue="NEW,CON,CAN,EXP"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="false"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="wwaResourceData" name="Convective Watches, Warnings, Advisories" hideSampling="false" isRequeryNecessaryOnTimeMatch="true" isUpdatingOnMetadataOnly="false" retrieveData="false">
|
||||
<metadataMap>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintType="IN" constraintValue="TO.W,SV.W,TO.A,SV.A,SV.S"/>
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="act">
|
||||
<constraint constraintType="IN" constraintValue="NEW,CON,CAN,EXP"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="false"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="wwaResourceData" name="Winter Watches, Warnings, Advisories" hideSampling="false" isRequeryNecessaryOnTimeMatch="true" isUpdatingOnMetadataOnly="false" retrieveData="false">
|
||||
<metadataMap>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintType="IN" constraintValue="BZ.A,BZ.W,WS.A,WS.W,WW.Y,SQ.W,EC.A,EC.W,FR.Y,FZ.A,FZ.W,HZ.A,HZ.W,IS.W,WC.A,WC.W,WC.Y,ZF.Y,ZR.Y"/>
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="act">
|
||||
<constraint constraintType="IN" constraintValue="NEW,CON,CAN,EXP"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="false"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="magnificationCapability" magnification="1.0"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="wwaResourceData" name="Tropical/Marine Watches, Warnings, Advisories" hideSampling="false" isRequeryNecessaryOnTimeMatch="true" isUpdatingOnMetadataOnly="false" retrieveData="false">
|
||||
<metadataMap>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintType="IN" constraintValue="BH.S,BW.Y,CF.A,CF.S,CF.W,CF.Y,GL.A,GL.W,HF.A,HF.W,HU.A,HU.S,HU.W,LE.A,LE.W,LE.Y,LO.Y,LS.A,LS.S,LS.W,LS.Y,LW.Y,MA.A,MA.S,MA.W,RB.Y,RP.S,SC.Y,SE.A,SE.W,SR.A,SR.W,SS.A,SS.W,SU.W,SU.Y,SW.Y,TR.A,TR.W,TS.A,TS.W,TS.Y,TY.A,TY.W,UP.A,UP.W,UP.Y"/>
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="act">
|
||||
<constraint constraintType="IN" constraintValue="NEW,CON,CAN,EXP"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="false"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="magnificationCapability" magnification="1.0"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="wwaResourceData" name="Other Watches, Warnings, Advisories" hideSampling="false" isRequeryNecessaryOnTimeMatch="true" isUpdatingOnMetadataOnly="false" retrieveData="false">
|
||||
<metadataMap>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintType="IN" constraintValue="AQ.Y,AS.O,AS.Y,DS.W,DU.Y,EH.A,EH.W,FG.Y,FW.A,FW.W,HT.Y,MF.Y,MH.W,MH.Y,MS.Y,SM.Y"/>
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="act">
|
||||
<constraint constraintType="IN" constraintValue="NEW,CON,CAN,EXP"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="false"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="cwaspsResourceData" name="Special Weather Statements" hideSampling="false" isRequeryNecessaryOnTimeMatch="false" isUpdatingOnMetadataOnly="false" retrieveData="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="pil">
|
||||
<constraint constraintType="IN" constraintValue="SPS"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
|
||||
<timeMatcher xsi:type="d2DTimeMatcher" forecastFilter="0" deltaFilter="0" loadMode="VALID_TIME_SEQ"/>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -0,0 +1,60 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="wwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="Convective Watches, Warnings and Advisories">
|
||||
<metadataMap>
|
||||
<mapping key="act">
|
||||
<constraint constraintValue="NEW,CON,CAN,EXP" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintValue="TO.A,SV.A,TO.W,SV.W,EW.W,SV.S" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
<perspectiveProperty xsi:type="d2dLoadProperties" loadMode="VALID_TIME_SEQ" timeMatchBasis="false"/>
|
||||
<capabilities>
|
||||
<capability xsi:type="colorableCapability" colorAsString="white"/>
|
||||
<capability xsi:type="outlineCapability" outlineWidth="4" outlineOn="true" lineStyle="SOLID"/>
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isVisible="true" isMapLayer="false" isBlinking="false" isSystemResource="false" renderingOrderId="UNKNOWN">
|
||||
<pdProps minDisplayWidth="0" maxDisplayWidth="100000000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="cwaspsResourceData" name="Special Weather Statements" hideSampling="false" isRequeryNecessaryOnTimeMatch="false" isUpdatingOnMetadataOnly="false" retrieveData="true">
|
||||
<metadataMap>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintType="EQUALS" constraintValue="warning"/>
|
||||
</mapping>
|
||||
<mapping key="pil">
|
||||
<constraint constraintType="IN" constraintValue="SPS"/>
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -0,0 +1,37 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="wwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="Fire Watches, Warnings, Advisories">
|
||||
<metadataMap>
|
||||
<mapping key="act">
|
||||
<constraint constraintValue="NEW,CON,CAN,EXP" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintValue="FW.A,FW.W" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -0,0 +1,37 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="wwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="Flood Watches, Warnings, Advisories">
|
||||
<metadataMap>
|
||||
<mapping key="act">
|
||||
<constraint constraintValue="NEW,CON,CAN,EXT,EXP" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintValue="FA.A,FL.A,FF.A,LS.A,CF.A,CF.W,CF.Y,CF.S,FA.W,FA.Y,FF.S,FF.W,FL.W,HY.S,FL.S,FL.Y,LS.S,LS.W,LS.Y" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -0,0 +1,38 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="wwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="Tropical/Marine Watches, Warnings, Advisories">
|
||||
<metadataMap>
|
||||
<mapping key="act">
|
||||
<constraint constraintValue="NEW,CON,CAN,EXP" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintValue="BH.S,BW.Y,CF.A,CF.S,CF.W,CF.Y,GL.A,GL.W,HF.A,HF.W,HU.A,HU.S,HU.W,LE.A,LE.W,LE.Y,LO.Y,LS.A,LS.S,LS.W,LS.Y,LW.Y,MA.A,MA.S,MA.W,RB.Y,RP.S,SC.Y,SE.A,SE.W,SR.A,SR.W,SS.A,SS.W,SU.W,SU.Y,SW.Y,TR.A,TR.W,TS.A,TS.W,TS.Y,TY.A,TY.W,UP.A,UP.W,UP.Y" constraintType="IN" />
|
||||
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -0,0 +1,38 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="wwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="Other Watches, Warnings, Advisories">
|
||||
<metadataMap>
|
||||
<mapping key="act">
|
||||
<constraint constraintValue="NEW,CON,CAN,EXP" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintValue="AQ.Y,AS.O,AS.Y,DS.W,DU.Y,EC.A,EC.W,EH.A,EH.W,FG.Y,FW.A,FW.W,HT.Y,MF.Y,MH.W,MH.Y,MS.Y,SM.Y,WC.A,WC.W,WC.Y,ZF.Y,ZR.Y" constraintType="IN" />
|
||||
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
34
cave/com.raytheon.viz.warnings/localization/bundles/SPS.xml
Normal file
34
cave/com.raytheon.viz.warnings/localization/bundles/SPS.xml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="cwaspsResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="true"
|
||||
isRequeryNecessaryOnTimeMatch="false" name="Special Weather Statements">
|
||||
<metadataMap>
|
||||
<mapping key="pil">
|
||||
<constraint constraintValue="SPS" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -0,0 +1,37 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="wwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="Wind Watches, Warnings, Advisories">
|
||||
<metadataMap>
|
||||
<mapping key="act">
|
||||
<constraint constraintValue="NEW,CON,CAN,EXP" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintValue="BW.Y,EW.W,HF.A,HF.W,HW.A,HW.W,LW.Y,SI.Y,GL.A,GL.W,WC.A,WC.W,WC.Y,WI.Y,DS.W,DU.Y,SM.Y" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -0,0 +1,37 @@
|
|||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true"
|
||||
outlineWidth="4" />
|
||||
<capability xsi:type="colorableCapability" colorAsString="#ffffff" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false"
|
||||
isVisible="true" />
|
||||
<resourceData xsi:type="wwaResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
retrieveData="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" name="Winter Watches, Warnings, Advisories">
|
||||
<metadataMap>
|
||||
<mapping key="act">
|
||||
<constraint constraintValue="NEW,CON,CAN,EXP" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="phensig">
|
||||
<constraint constraintValue="BZ.A,BZ.W,WS.A,WS.W,WW.Y,SQ.W,EC.A,EC.W,FR.Y,FZ.A,FZ.W,HZ.A,LE.A,LE.W,LE.Y,HZ.W,IS.W,WC.A,WC.W,WC.Y,ZF.Y,ZR.Y" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="warning" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -1,172 +1,120 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<!--
|
||||
This_software_was_developed_and_/_or_modified_by_Raytheon_Company,
|
||||
pursuant_to_Contract_DG133W-05-CQ-1067_with_the_US_Government.
|
||||
|
||||
U.S._EXPORT_CONTROLLED_TECHNICAL_DATA
|
||||
This_software_product_contains_export-restricted_data_whose
|
||||
export/transfer/disclosure_is_restricted_by_U.S._law._Dissemination
|
||||
to_non-U.S._persons_whether_in_the_United_States_or_abroad_requires
|
||||
an_export_license_or_other_authorization.
|
||||
|
||||
Contractor_Name:________Raytheon_Company
|
||||
Contractor_Address:_____6825_Pine_Street,_Suite_340
|
||||
________________________Mail_Stop_B8
|
||||
________________________Omaha,_NE_68106
|
||||
________________________402.291.0100
|
||||
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for
|
||||
further_licensing_information.
|
||||
-->
|
||||
<!--
|
||||
This is an absolute override file, indicating that a higher priority
|
||||
version of the file will completely replace a lower priority version
|
||||
of the file.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalCWAWarnings.xml" menuText="Local CWA Convective Warnings"
|
||||
id="localCWAWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalCWAFloodWarnings.xml" menuText="Local CWA Flood Warnings"
|
||||
id="localCWAFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalCWASPS.xml" menuText="Local CWA Sig Wx Advisories (SPS)"
|
||||
id="localCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalMarineWarnings.xml" menuText="Local CWA Marine Warnings"
|
||||
id="localmarineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalLocalizedExtremeWeatherWarnings.xml" menuText="Local Localized Extreme Weather Warnings"
|
||||
id="localLocalizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllLocalWarnings.xml" menuText="All Local CWA Warnings"
|
||||
id="alllLocalWarings" />
|
||||
<contribute xsi:type="subMenu" menuText="Other Regional Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalRegionalWarnings.xml"
|
||||
menuText="Regional Convective Warnings" id="localRegionalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalRegionalFloodWarnings.xml"
|
||||
menuText="Regional Flood Warnings" id="localRegionalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalRegionalSPS.xml" menuText="Regional Sig Wx Advisories (SPS)"
|
||||
id="localRegionalSPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalRegionalMarineWarning.xml"
|
||||
menuText="Regional Marine Warnings" id="marineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalRegionalLocalizedExtremeWeatherWarnings.xml"
|
||||
menuText="Regional Localized Extreme Weather Warnings" id="extremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllRegionalWarnings.xml"
|
||||
menuText="All Regional Warnings" id="allRegionalWarnings" />
|
||||
|
||||
<contribute xsi:type="titleItem" titleText="------ Watch / Warning / Advisory ------"
|
||||
id="sfcMenuWarning" />
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllWWA.xml"
|
||||
menuText="All Weather Statements" id="warnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="National Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/NationalConvWarnings.xml"
|
||||
menuText="National Convective Warnings" id="nationalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/NationalFloodWarnings.xml"
|
||||
menuText="National Flood Warnings" id="nationalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllCWASPS.xml" menuText="National Sig Wx Advisories (SPS)"
|
||||
id="allCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllMarineWarnings.xml" menuText="National Marine Warnings"
|
||||
id="marineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/NationalLocalizedExtremeWeatherWarnings.xml" menuText="National Localized Extreme Weather Warnings"
|
||||
id="localizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllNationalWarnings.xml"
|
||||
menuText="All National Warnings" id="allNationalWarnings" />
|
||||
|
||||
<!-- <contribute xsi:type="bundleItem" file="bundles/AllWarnings.xml"
|
||||
menuText="All Warnings" id="warnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="NWS Regional Warning Displays">
|
||||
<contribute xsi:type="subMenu" menuText="Alaska Region Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalWarnings-AR.xml"
|
||||
menuText="Alaska Region Convective Warnings" id="AlaskaRegionWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalFloodWarnings-AR.xml"
|
||||
menuText="Alaska Region Flood Warnings" id="AlaskaRegionalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalSPS-AR.xml"
|
||||
menuText="Alaska Region Sig Wx Advisories (SPS)" id="AlaskaCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalMarineWarning-AR.xml"
|
||||
menuText="Alaska Region Marine Warnings" id="ARmarineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalLocalizedExtremeWeatherWarnings-AR.xml"
|
||||
menuText="Alaska Region Localized Extreme Weather Warnings" id="ARLocalizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllRegionalWarnings-AR.xml"
|
||||
menuText="All Alaska Region Warnings" id="allARRegionalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/ncepHydro/ConvectiveWatchPlot.xml"
|
||||
menuText="Convective Watches" id="convectiveWatches">
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Central Region Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalWarnings-CR.xml"
|
||||
menuText="Central Region Convective Warnings" id="CentralRegionWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalFloodWarnings-CR.xml"
|
||||
menuText="Central Region Flood Warnings" id="CentralRegionalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalSPS-CR.xml"
|
||||
menuText="Central Region Sig Wx Advisories (SPS)" id="CentralCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalMarineWarning-CR.xml"
|
||||
menuText="Central Region Marine Warnings" id="CRmarineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalLocalizedExtremeWeatherWarnings-CR.xml"
|
||||
menuText="Central Region Localized Extreme Weather Warnings" id="CRLocalizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllRegionalWarnings-CR.xml"
|
||||
menuText="All Central Region Warnings" id="allCRRegionalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/ConvWarn.xml"
|
||||
menuText="Convective Warnings" id="convWarnings">
|
||||
</contribute>-->
|
||||
|
||||
<contribute xsi:type="separator" id="separator4"/>
|
||||
<contribute xsi:type="bundleItem" file="bundles/ConvWWA.xml"
|
||||
menuText="Convective Watches, Warnings, Advisories" id="ConvWarnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Eastern Region Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalWarnings-ER.xml"
|
||||
menuText="Eastern Region Convective Warnings" id="EasternRegionWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalFloodWarnings-ER.xml"
|
||||
menuText="Eastern Region Flood Warnings" id="EasternRegionalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalSPS-ER.xml"
|
||||
menuText="Eastern Region Sig Wx Advisories (SPS)" id="EasternCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalMarineWarning-ER.xml"
|
||||
menuText="Eastern Region Marine Warnings" id="ERmarineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalLocalizedExtremeWeatherWarnings-ER.xml"
|
||||
menuText="Eastern Region Localized Extreme Weather Warnings" id="ERLocalizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllRegionalWarnings-ER.xml"
|
||||
menuText="All Eastern Region Warnings" id="allERRegionalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/FireWWA.xml"
|
||||
menuText="Fire Watches, Warnings, Advisories" id="fireWarnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Pacific Region Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalWarnings-PR.xml"
|
||||
menuText="Pacific Region Convective Warnings" id="PacificRegionWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalFloodWarnings-PR.xml"
|
||||
menuText="Pacific Region Flood Warnings" id="PacificRegionalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalSPS-PR.xml"
|
||||
menuText="Pacific Region Sig Wx Advisories (SPS)" id="PacificCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalMarineWarning-PR.xml"
|
||||
menuText="Pacific Region Marine Warnings" id="PRmarineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalLocalizedExtremeWeatherWarnings-PR.xml"
|
||||
menuText="Pacific Region Localized Extreme Weather Warnings" id="PRLocalizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllRegionalWarnings-PR.xml"
|
||||
menuText="All Pacific Region Warnings" id="allPRRegionalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/FloodWWA.xml"
|
||||
menuText="Flood Watches, Warnings, Advisories" id="FloodWarnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Southern Region Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalWarnings-SR.xml"
|
||||
menuText="Southern Region Convective Warnings" id="SouthernRegionWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalFloodWarnings-SR.xml"
|
||||
menuText="Southern Region Flood Warnings" id="SouthernRegionalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalSPS-SR.xml"
|
||||
menuText="Southern Region Sig Wx Advisories (SPS)" id="SouthernCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalMarineWarning-SR.xml"
|
||||
menuText="Southern Region Marine Warnings" id="SRmarineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalLocalizedExtremeWeatherWarnings-SR.xml"
|
||||
menuText="Southern Region Localized Extreme Weather Warnings" id="SRLocalizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllRegionalWarnings-SR.xml"
|
||||
menuText="All Southern Region Warnings" id="allSRRegionalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/MarineWWA.xml"
|
||||
menuText="Tropical/Marine Watches, Warnings, Advisories" id="marineWarnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="Western Region Warning Displays">
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalWarnings-WR.xml"
|
||||
menuText="Western Region Convective Warnings" id="WesternRegionWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalFloodWarnings-WR.xml"
|
||||
menuText="Western Region Flood Warnings" id="WesternRegionalFloodWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalSPS-WR.xml"
|
||||
menuText="Western Region Sig Wx Advisories (SPS)" id="WesternCWASPS" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalMarineWarning-WR.xml"
|
||||
menuText="Western Region Marine Warnings" id="WRmarineWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/RegionalLocalizedExtremeWeatherWarnings-WR.xml"
|
||||
menuText="Western Region Localized Extreme Weather Warnings" id="WRLocalizedExtremeWeatherWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/AllRegionalWarnings-WR.xml"
|
||||
menuText="All Western Region Warnings" id="allWRRegionalWarnings" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/WindWWA.xml"
|
||||
menuText="Wind Watches, Warnings, Advisories" id="windWarnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/WinterWWA.xml"
|
||||
menuText="Winter Watches, Warnings, Advisories" id="winterWarnings">
|
||||
</contribute>
|
||||
<!-- There is no support in the backend for these reports -->
|
||||
<contribute xsi:type="subMenu" menuText="Local Storm Reports">
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalStormReportsOffice.xml"
|
||||
menuText="Office" id="office">
|
||||
<substitute key="title" value="Local Storm Reports" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/OtherWWA.xml"
|
||||
menuText="Other Watches, Warnings, Advisories" id="otherWarnings">
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalStormReportsLocal.xml"
|
||||
menuText="Local" id="local">
|
||||
<substitute key="title" value="Local Storm Reports" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/SPS.xml"
|
||||
menuText="Special Weather Statements" id="SPS">
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalStormReportsRegion.xml"
|
||||
menuText="Region" id="region">
|
||||
<substitute key="title" value="Local Storm Reports" />
|
||||
<contribute xsi:type="separator" id="separator4"/>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/ncepHydro/SvrWxPlot.xml"
|
||||
menuText="SPC Svr Wx Plot" id="spcWxPlot">
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/LocalStormReportsNational.xml"
|
||||
menuText="National" id="national">
|
||||
<substitute key="title" value="Local Storm Reports" />
|
||||
|
||||
<contribute xsi:type="subMenu" menuText="SIGMET/AIRMET">
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/ConvSigmet.xml"
|
||||
menuText="Convective SIGMET" id="ConvSigmet">
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/IntlSigmet.xml"
|
||||
menuText="International SIGMETs" id="INTLSIGMET">
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET Turbulence" id="SIGMETTURB">
|
||||
<substitute key="hazardType" value="TURBULENCE" />
|
||||
<substitute key="color" value="#FF4444" />
|
||||
<substitute key="name" value="Turbulence SIGMET" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET Tropical Cyclone" id="SIGMETTTOPCYCLONE">
|
||||
<substitute key="hazardType" value="TROPICAL CYCLONE" />
|
||||
<substitute key="color" value="#00FFFF" />
|
||||
<substitute key="name" value="Tropical Cyclone SIGMET" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET Icing" id="SIGMETICING">
|
||||
<substitute key="hazardType" value="ICING" />
|
||||
<substitute key="color" value="#FFFFFF" />
|
||||
<substitute key="name" value="Icing SIGMET" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="AIRMET Icing" id="AIRMETICING">
|
||||
<substitute key="hazardType" value="ICING" />
|
||||
<substitute key="color" value="#0000FF" />
|
||||
<substitute key="name" value="Icing AIRMET" />
|
||||
</contribute>
|
||||
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="AIRMET Turbulence" id="AIRMETTURB">
|
||||
<substitute key="hazardType" value="TURBULENCE" />
|
||||
<substitute key="color" value="#00FF00" />
|
||||
<substitute key="name" value="Turbulence AIRMET" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="AIRMET Instrument Flight Rules (IFR)" id="AIRMETIFR">
|
||||
<substitute key="hazardType" value="INSTRUMENT FLIGHT RULES" />
|
||||
<substitute key="color" value="#00FFFF" />
|
||||
<substitute key="name" value="IFR AIRMET" />
|
||||
</contribute>
|
||||
<contribute xsi:type="bundleItem" file="bundles/Airmet.xml"
|
||||
menuText="AIRMET Mountain Obstruction" id="AIRMETMTNOBSC">
|
||||
<substitute key="hazardType" value="MOUNTAIN OBSCURATION" />
|
||||
<substitute key="color" value="#FF0088" />
|
||||
<substitute key="name" value="Mtn Obscn AIRMET" />
|
||||
</contribute>
|
||||
|
||||
<contribute xsi:type="bundleItem" file="bundles/NonConvSigmet.xml"
|
||||
menuText="SIGMET Volcanic Ash" id="SIGMETVOLCANICASH">
|
||||
<substitute key="hazardType" value="VOLCANIC ASH CLOUD" />
|
||||
<substitute key="color" value="#00FF00" />
|
||||
<substitute key="name" value="Volcanic Ash SIGMET" />
|
||||
</contribute>
|
||||
|
||||
</contribute>
|
||||
|
||||
</menuTemplate>
|
|
@ -37,4 +37,12 @@
|
|||
name="Warnings">
|
||||
</command>
|
||||
</extension>
|
||||
<extension
|
||||
point="com.raytheon.viz.ui.contextualMenu">
|
||||
<contextualMenu
|
||||
actionClass="com.raytheon.viz.warnings.ui.WWADrawingPropertiesAction"
|
||||
name="Drawing Properties"
|
||||
sortID="1">
|
||||
</contextualMenu>
|
||||
</extension>
|
||||
</plugin>
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.raytheon.uf.common.dataplugin.warning.AbstractWarningRecord;
|
|||
import com.raytheon.uf.common.dataplugin.warning.EmergencyType;
|
||||
import com.raytheon.uf.common.dataplugin.warning.PracticeWarningRecord;
|
||||
import com.raytheon.uf.common.dataplugin.warning.WarningRecord.WarningAction;
|
||||
import com.raytheon.uf.common.dataplugin.warning.util.WarningLookups;
|
||||
import com.raytheon.uf.common.dataquery.requests.RequestConstraint;
|
||||
import com.raytheon.uf.common.dataquery.requests.RequestConstraint.ConstraintType;
|
||||
import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
|
||||
|
@ -32,6 +33,7 @@ import com.raytheon.uf.common.time.TimeRange;
|
|||
import com.raytheon.uf.common.time.util.TimeUtil;
|
||||
import com.raytheon.uf.viz.core.DrawableString;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
import com.raytheon.uf.viz.core.RGBColors;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget.HorizontalAlignment;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment;
|
||||
|
@ -51,6 +53,7 @@ import com.raytheon.uf.viz.core.rsc.capabilities.MagnificationCapability;
|
|||
import com.raytheon.uf.viz.core.rsc.capabilities.OutlineCapability;
|
||||
import com.raytheon.uf.viz.datacube.DataCubeContainer;
|
||||
import com.raytheon.viz.core.mode.CAVEMode;
|
||||
import com.raytheon.viz.warnings.ui.DrawingPropertiesDialog;
|
||||
import org.locationtech.jts.geom.Coordinate;
|
||||
import org.locationtech.jts.geom.Geometry;
|
||||
import org.locationtech.jts.geom.GeometryFactory;
|
||||
|
@ -91,6 +94,10 @@ import org.locationtech.jts.geom.prep.PreparedGeometryFactory;
|
|||
* Oct 16, 2015 4971 bsteffen Do not reverse order of text.
|
||||
* Nov 05, 2015 5070 randerso Adjust font sizes for dpi scaling
|
||||
* Aug 22, 2016 5842 dgilling Remove dependency on viz.texteditor plugin.
|
||||
* Dec 19, 2018 ---- mjames@ucar Added phensig color table lookup.
|
||||
* Mar 15, 2022 srcarter@ucar Add support for display settings for outline, fill, text and time displays
|
||||
* Jun 24, 2022 srcarter@ucar Add 'statement/other' display settings, set enabled for only relevant WWA types
|
||||
* Jun 28, 2022 srcarter@ucar Display sampling based on new 'sampling' settings
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -132,6 +139,72 @@ public abstract class AbstractWWAResource extends
|
|||
|
||||
}
|
||||
|
||||
/** Whether to display warning outlines by default */
|
||||
public static final boolean WARN_OUTLINE_DEFAULT = true;
|
||||
/** Whether to display warning fill by default */
|
||||
public static final boolean WARN_FILL_DEFAULT = false;
|
||||
/** Whether to display warning text by default */
|
||||
public static final boolean WARN_TEXT_DEFAULT = true;
|
||||
/** Whether to display warning times by default */
|
||||
public static final boolean WARN_TIME_DEFAULT = true;
|
||||
/** Whether to display watch outlines by default */
|
||||
public static final boolean WATCH_OUTLINE_DEFAULT = false;
|
||||
/** Whether to display watch fill by default */
|
||||
public static final boolean WATCH_FILL_DEFAULT = true;
|
||||
/** Whether to display watch text by default */
|
||||
public static final boolean WATCH_TEXT_DEFAULT = true;
|
||||
/** Whether to display watch time by default */
|
||||
public static final boolean WATCH_TIME_DEFAULT = true;
|
||||
/** Whether to display advisory outlines by default */
|
||||
public static final boolean ADV_OUTLINE_DEFAULT = true;
|
||||
/** Whether to display advisory fill by default */
|
||||
public static final boolean ADV_FILL_DEFAULT = false;
|
||||
/** Whether to display advisory text by default */
|
||||
public static final boolean ADV_TEXT_DEFAULT = true;
|
||||
/** Whether to display advisory time by default */
|
||||
public static final boolean ADV_TIME_DEFAULT = true;
|
||||
/** Whether to display statements/other outlines by default */
|
||||
public static final boolean OTHER_OUTLINE_DEFAULT = true;
|
||||
/** Whether to display statements/other fill by default */
|
||||
public static final boolean OTHER_FILL_DEFAULT = true;
|
||||
/** Whether to display statements/other text by default */
|
||||
public static final boolean OTHER_TEXT_DEFAULT = true;
|
||||
/** Whether to display statements/other time by default */
|
||||
public static final boolean OTHER_TIME_DEFAULT = true;
|
||||
//gui display variables
|
||||
private boolean warnOutline = WARN_OUTLINE_DEFAULT;
|
||||
private boolean warnFill = WARN_FILL_DEFAULT;
|
||||
private boolean warnText = WARN_TEXT_DEFAULT;
|
||||
private boolean warnTime = WARN_TIME_DEFAULT;
|
||||
private boolean warnSample = true;
|
||||
private boolean watchOutline = WATCH_OUTLINE_DEFAULT;
|
||||
private boolean watchFill = WATCH_FILL_DEFAULT;
|
||||
private boolean watchText = WATCH_TEXT_DEFAULT;
|
||||
private boolean watchTime = WATCH_TIME_DEFAULT;
|
||||
private boolean watchSample = true;
|
||||
private boolean advOutline = ADV_OUTLINE_DEFAULT;
|
||||
private boolean advFill = ADV_FILL_DEFAULT;
|
||||
private boolean advText = ADV_TEXT_DEFAULT;
|
||||
private boolean advTime = ADV_TIME_DEFAULT;
|
||||
private boolean advSample = true;
|
||||
private boolean otherOutline = OTHER_OUTLINE_DEFAULT;
|
||||
private boolean otherFill = OTHER_FILL_DEFAULT;
|
||||
private boolean otherText = OTHER_TEXT_DEFAULT;
|
||||
private boolean otherTime = OTHER_TIME_DEFAULT;
|
||||
private boolean otherSample = true;
|
||||
private boolean enableWarnDisplay = false;
|
||||
private boolean enableWatchDisplay = false;
|
||||
private boolean enableAdvisoryDisplay = false;
|
||||
private boolean enableOtherDisplay = false;
|
||||
|
||||
// The significance values for WWAs
|
||||
private static final String WARN_SIG = "W";
|
||||
private static final String WATCH_SIG = "A";
|
||||
private static final String ADVISORY_SIG = "Y";
|
||||
|
||||
/** The dialog used to change display properties */
|
||||
private DrawingPropertiesDialog drawingDialog;
|
||||
|
||||
protected static GeometryFactory gf = new GeometryFactory();
|
||||
|
||||
protected static PreparedGeometryFactory pgf = new PreparedGeometryFactory();
|
||||
|
@ -227,7 +300,33 @@ public abstract class AbstractWWAResource extends
|
|||
|
||||
WarningEntry entry = entryMap.get(key);
|
||||
AbstractWarningRecord record = entry.record;
|
||||
if (matchesFrame(entry, time, framePeriod, lastFrame)
|
||||
String sig = record.getSig();
|
||||
boolean samplingOn = false;
|
||||
if(sig !=null){
|
||||
if(sig.equals(WATCH_SIG)){
|
||||
if(showWatchSampling()){
|
||||
samplingOn = true;
|
||||
}
|
||||
}else if(sig.equals(WARN_SIG)){
|
||||
if(showWarnSampling()){
|
||||
samplingOn = true;
|
||||
}
|
||||
}else if(sig.equals(ADVISORY_SIG)){
|
||||
if(showAdvisorySampling()){
|
||||
samplingOn = true;
|
||||
}
|
||||
}else{
|
||||
if(showOtherSampling()){
|
||||
samplingOn = true;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(showOtherSampling()){
|
||||
samplingOn = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (samplingOn && matchesFrame(entry, time, framePeriod, lastFrame)
|
||||
&& record.getGeometry() != null) {
|
||||
|
||||
Geometry recordGeom = record.getGeometry();
|
||||
|
@ -244,6 +343,9 @@ public abstract class AbstractWWAResource extends
|
|||
}
|
||||
sb.append(text);
|
||||
}
|
||||
sb.append("\n\n");
|
||||
sb.append(record.getOverviewText());
|
||||
sb.append(record.getSegText());
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
|
@ -254,7 +356,7 @@ public abstract class AbstractWWAResource extends
|
|||
}
|
||||
|
||||
}
|
||||
return "NO DATA";
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void disposeEntry(final WarningEntry entry) {
|
||||
|
@ -360,6 +462,47 @@ public abstract class AbstractWWAResource extends
|
|||
}
|
||||
for (WarningEntry entry : candidates.values()) {
|
||||
AbstractWarningRecord record = entry.record;
|
||||
boolean drawShape = true;
|
||||
boolean drawOutline = true;
|
||||
boolean drawText = true;
|
||||
boolean drawTime = true;
|
||||
|
||||
String sig = record.getSig();
|
||||
boolean sigRecognized = false;
|
||||
if(record != null && record.getSig() != null){
|
||||
|
||||
//warning
|
||||
if(sig.equalsIgnoreCase(WARN_SIG)){
|
||||
drawShape = warnFill;
|
||||
drawOutline = warnOutline;
|
||||
drawText = warnText;
|
||||
drawTime = warnTime;
|
||||
sigRecognized = true;
|
||||
}
|
||||
//watch
|
||||
else if(sig.equalsIgnoreCase(WATCH_SIG)){
|
||||
drawShape = watchFill;
|
||||
drawOutline = watchOutline;
|
||||
drawText = watchText;
|
||||
drawTime = watchTime;
|
||||
sigRecognized = true;
|
||||
}
|
||||
//advisory
|
||||
else if(sig.equals(ADVISORY_SIG)){
|
||||
drawShape = advFill;
|
||||
drawOutline = advOutline;
|
||||
drawText = advText;
|
||||
drawTime = advTime;
|
||||
sigRecognized = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(sig == null || !sigRecognized){
|
||||
drawShape = otherFill;
|
||||
drawOutline = otherOutline;
|
||||
drawText = otherText;
|
||||
drawTime = otherTime;
|
||||
}
|
||||
|
||||
// check shapes
|
||||
if (entry.project) {
|
||||
|
@ -367,15 +510,21 @@ public abstract class AbstractWWAResource extends
|
|||
entry.project = false;
|
||||
}
|
||||
|
||||
if (entry != null && entry.wireframeShape != null) {
|
||||
LineStyle lineStyle = LineStyle.SOLID;
|
||||
if (record.getProductClass() != null
|
||||
&& record.getProductClass().equals("T")) {
|
||||
lineStyle = LineStyle.DASHED;
|
||||
RGB displaycolor = color;
|
||||
if ( ! record.getPil().equals("SPS")) {
|
||||
displaycolor = RGBColors.getRGBColor(getPhensigColor(record.getPhensig()));
|
||||
}
|
||||
|
||||
int outlineWidth = getCapability(OutlineCapability.class)
|
||||
.getOutlineWidth();
|
||||
if(entry != null){
|
||||
//draw shape
|
||||
if(drawShape && entry.shadedShape != null){
|
||||
target.drawShadedShape(entry.shadedShape, 1);
|
||||
}
|
||||
//draw outline
|
||||
if(drawOutline && entry.wireframeShape != null){
|
||||
OutlineCapability oc = getCapability(OutlineCapability.class);
|
||||
LineStyle lineStyle = oc.getLineStyle();
|
||||
int outlineWidth = oc.getOutlineWidth();
|
||||
// Make wire frame outline thicker for EMERGENCY warnings
|
||||
if (EmergencyType.isEmergency(record.getRawmessage())) {
|
||||
outlineWidth *= 3;
|
||||
|
@ -383,10 +532,9 @@ public abstract class AbstractWWAResource extends
|
|||
|
||||
target.drawWireframeShape(
|
||||
entry.wireframeShape,
|
||||
getCapability(ColorableCapability.class).getColor(),
|
||||
displaycolor,
|
||||
outlineWidth, lineStyle);
|
||||
} else if (entry != null && entry.shadedShape != null) {
|
||||
target.drawShadedShape(entry.shadedShape, 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (record != null && record.getGeometry() != null) {
|
||||
|
@ -405,7 +553,16 @@ public abstract class AbstractWWAResource extends
|
|||
|
||||
double mapWidth = descriptor.getMapWidth()
|
||||
* paintProps.getZoomLevel() / 1000;
|
||||
String[] textToPrint = getText(record, mapWidth);
|
||||
String[] fullText = getText(record, mapWidth);
|
||||
|
||||
String[] textToPrint = {"",""};
|
||||
if(drawText){
|
||||
textToPrint[0] = fullText[0];
|
||||
}
|
||||
if(drawTime){
|
||||
textToPrint[1] = fullText[1];
|
||||
}
|
||||
|
||||
if (warningsFont == null) {
|
||||
warningsFont = target.initializeFont(target
|
||||
.getDefaultFont().getFontName(), 9,
|
||||
|
@ -414,8 +571,7 @@ public abstract class AbstractWWAResource extends
|
|||
12);
|
||||
}
|
||||
|
||||
DrawableString params = new DrawableString(textToPrint,
|
||||
color);
|
||||
DrawableString params = new DrawableString(textToPrint, displaycolor);
|
||||
params.font = warningsFont;
|
||||
params.setCoordinates(d[0], d[1]);
|
||||
params.horizontalAlignment = HorizontalAlignment.RIGHT;
|
||||
|
@ -428,7 +584,7 @@ public abstract class AbstractWWAResource extends
|
|||
// moves over text to add EMER in a different font
|
||||
textToPrint[1] = String.format("%1$-23" + "s",
|
||||
textToPrint[1]);
|
||||
params.setText(textToPrint, color);
|
||||
params.setText(textToPrint, displaycolor);
|
||||
|
||||
DrawableString emergencyString = new DrawableString(
|
||||
params);
|
||||
|
@ -436,7 +592,7 @@ public abstract class AbstractWWAResource extends
|
|||
d[1] + (paintProps.getZoomLevel()) * 90);
|
||||
emergencyString.font = emergencyFont;
|
||||
emergencyString.setText(new String[] { "", "",
|
||||
" " + EmergencyType.EMER, "" }, color);
|
||||
" " + EmergencyType.EMER, "" }, displaycolor);
|
||||
target.drawStrings(emergencyString);
|
||||
}
|
||||
|
||||
|
@ -539,7 +695,38 @@ public abstract class AbstractWWAResource extends
|
|||
if (!resourceData.getMetadataMap().containsKey("officeid")
|
||||
|| resourceData.getMetadataMap().get("officeid")
|
||||
.getConstraintValue().contains(officeid)) {
|
||||
this.recordsToLoad.add((AbstractWarningRecord) pdo);
|
||||
|
||||
AbstractWarningRecord rec = (AbstractWarningRecord) pdo;
|
||||
this.recordsToLoad.add(rec);
|
||||
|
||||
//set the drawing display for the corresponding significance types
|
||||
// if all settings are on, no need to keep doing it
|
||||
if(rec !=null && (!enableWatchDisplay || !enableWarnDisplay || !enableAdvisoryDisplay || !enableOtherDisplay)){
|
||||
String sig = rec.getSig();
|
||||
boolean sigRecognized = false;
|
||||
if(sig!=null){
|
||||
if(sig.equals(WARN_SIG)){
|
||||
enableWarnDisplay = true;
|
||||
sigRecognized = true;
|
||||
}
|
||||
else if(sig.equals(WATCH_SIG)){
|
||||
enableWatchDisplay = true;
|
||||
sigRecognized = true;
|
||||
}
|
||||
else if(sig.equals(ADVISORY_SIG)){
|
||||
enableAdvisoryDisplay = true;
|
||||
sigRecognized = true;
|
||||
}
|
||||
}
|
||||
if(sig == null || !sigRecognized){
|
||||
enableOtherDisplay = true;
|
||||
}
|
||||
}
|
||||
|
||||
//update display if it already exists
|
||||
if(drawingDialog != null && !drawingDialog.isDisposed()){
|
||||
drawingDialog.updateControlsEnabled(enableWatchDisplay, enableWarnDisplay, enableAdvisoryDisplay, enableOtherDisplay);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -591,19 +778,26 @@ public abstract class AbstractWWAResource extends
|
|||
addRecord(sort(pdos));
|
||||
}
|
||||
|
||||
protected String[] getText(AbstractWarningRecord record, double mapWidth) {
|
||||
String vid = record.getPhensig();
|
||||
String phen = record.getPhen();
|
||||
String[] textToPrint = new String[] { "", "", "", "" };
|
||||
|
||||
textToPrint[0] = record.getProductClass();
|
||||
if ((vid != null && phen != null)
|
||||
&& (vid.equals("TO.A") || vid.equals("SV.A")
|
||||
|| phen.equals("FL") || phen.equals("FA"))) {
|
||||
textToPrint[0] += "." + vid;
|
||||
protected String getPhensigColor(String phensig){
|
||||
WarningLookups lookup = new WarningLookups();
|
||||
System.out.println("Phensig"+ phensig);
|
||||
return lookup.getPhensig(phensig).color;
|
||||
}
|
||||
|
||||
protected String getPhensigName(String phensig){
|
||||
WarningLookups lookup = new WarningLookups();
|
||||
return lookup.getPhensig(phensig).name;
|
||||
}
|
||||
|
||||
protected String[] getText(AbstractWarningRecord record, double mapWidth) {
|
||||
|
||||
String[] textToPrint = new String[] { "", "" };
|
||||
|
||||
if ( ! record.getPil().equals("SPS")) {
|
||||
textToPrint[0] = getPhensigName(record.getPhensig());
|
||||
} else {
|
||||
textToPrint[0] = "Special Weather Statement";
|
||||
}
|
||||
textToPrint[0] += "." + record.getEtn();
|
||||
textToPrint[1] = record.getPil();
|
||||
|
||||
String startFormatString = DEFAULT_FORMAT;
|
||||
String endFormatString = DEFAULT_FORMAT;
|
||||
|
@ -616,14 +810,14 @@ public abstract class AbstractWWAResource extends
|
|||
}
|
||||
|
||||
DateFormat startFormat = new SimpleDateFormat(startFormatString);
|
||||
startFormat.setTimeZone(TimeUtil.GMT_TIME_ZONE);
|
||||
textToPrint[2] = "Valid "
|
||||
+ startFormat.format(record.getStartTime().getTime());
|
||||
|
||||
DateFormat endFormat = new SimpleDateFormat(endFormatString);
|
||||
|
||||
startFormat.setTimeZone(TimeUtil.GMT_TIME_ZONE);
|
||||
endFormat.setTimeZone(TimeUtil.GMT_TIME_ZONE);
|
||||
textToPrint[3] = "Thru "
|
||||
+ endFormat.format(record.getEndTime().getTime());
|
||||
|
||||
textToPrint[1] = startFormat.format(record.getStartTime().getTime())
|
||||
+ "-" + endFormat.format(record.getEndTime().getTime());;
|
||||
|
||||
|
||||
return textToPrint;
|
||||
}
|
||||
|
@ -724,5 +918,369 @@ public abstract class AbstractWWAResource extends
|
|||
// set font to null for recycle safety
|
||||
emergencyFont = null;
|
||||
}
|
||||
|
||||
if(drawingDialog != null){
|
||||
drawingDialog.hide();
|
||||
drawingDialog = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the outline for warnings
|
||||
* @param warnOutline If true, will draw warning outlines
|
||||
*/
|
||||
public void setWarnOutlineDisplay(boolean warnOutline) {
|
||||
this.warnOutline = warnOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the fill (shaded shape)
|
||||
* for warnings
|
||||
* @param warnFill If true, will draw the warning fill
|
||||
*/
|
||||
public void setWarnFillDisplay(boolean warnFill) {
|
||||
this.warnFill = warnFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the text for warnings
|
||||
* @param warnText If true, will draw the warning title
|
||||
*/
|
||||
public void setWarnTextDisplay(boolean warnText) {
|
||||
this.warnText = warnText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the time for warnings
|
||||
* @param warnTime If true, will draw the warning time
|
||||
*/
|
||||
public void setWarnTimeDisplay(boolean warnTime) {
|
||||
this.warnTime = warnTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the sampling for warnings
|
||||
* @param warnSample If true, will show the sampling output
|
||||
* for warnings, when sampling is enabled
|
||||
*/
|
||||
public void setWarnSampleDisplay(boolean warnSample) {
|
||||
this.warnSample = warnSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the outline for watches
|
||||
* @param watchOutline If true, will draw the watch outline
|
||||
*/
|
||||
public void setWatchOutlineDisplay(boolean watchOutline) {
|
||||
this.watchOutline = watchOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the fill (shaded shape) for watches
|
||||
* @param watchFill If true, will draw the watch fill
|
||||
*/
|
||||
public void setWatchFillDisplay(boolean watchFill) {
|
||||
this.watchFill = watchFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the text for watches
|
||||
* @param watchText If true, will draw the watch title
|
||||
*/
|
||||
public void setWatchTextDisplay(boolean watchText) {
|
||||
this.watchText = watchText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the time for watches
|
||||
* @param watchTime If true, will draw the watch time
|
||||
*/
|
||||
public void setWatchTimeDisplay(boolean watchTime) {
|
||||
this.watchTime = watchTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the sampling for watches
|
||||
* @param watchSample If true, will show the sampling output
|
||||
* for watches, when sampling is enabled
|
||||
*/
|
||||
public void setWatchSampleDisplay(boolean watchSample) {
|
||||
this.watchSample = watchSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the outline for advisories
|
||||
* @param advOutline If true, will draw the advisory outline
|
||||
*/
|
||||
public void setAdvisoryOutlineDisplay(boolean advOutline) {
|
||||
this.advOutline = advOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the fill (shaded shape) for
|
||||
* advisories
|
||||
* @param advFill If true, will draw the advisory fill
|
||||
*/
|
||||
public void setAdvisoryFillDisplay(boolean advFill) {
|
||||
this.advFill = advFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the text for advisories
|
||||
* @param advText If true, will draw the advisory title
|
||||
*/
|
||||
public void setAdvisoryTextDisplay(boolean advText) {
|
||||
this.advText = advText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the time for advisories
|
||||
* @param advTime If true, will draw the advisory time
|
||||
*/
|
||||
public void setAdvisoryTimeDisplay(boolean advTime) {
|
||||
this.advTime = advTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the sampling for advisories
|
||||
* @param advSample If true, will show the sampling output
|
||||
* for advisories, when sampling is enabled
|
||||
*/
|
||||
public void setAdvisorySampleDisplay(boolean advSample) {
|
||||
this.advSample = advSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the outline for statements
|
||||
* and other records
|
||||
* @param advOutline If true, will draw the outline
|
||||
*/
|
||||
public void setOtherOutlineDisplay(boolean otherOutline) {
|
||||
this.otherOutline = otherOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the fill (shaded shape) for
|
||||
* statements and other records
|
||||
* @param otherFill If true, will draw the fill
|
||||
*/
|
||||
public void setOtherFillDisplay(boolean otherFill) {
|
||||
this.otherFill = otherFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the text for statements
|
||||
* and other records
|
||||
* @param otherText If true, will draw the title
|
||||
*/
|
||||
public void setOtherTextDisplay(boolean otherText) {
|
||||
this.otherText = otherText;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the time for statements
|
||||
* and other records
|
||||
* @param otherTime If true, will draw the time
|
||||
*/
|
||||
public void setOtherTimeDisplay(boolean otherTime) {
|
||||
this.otherTime = otherTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set whether or not to display the sampling for statements/
|
||||
* other records
|
||||
* @param otherSample If true, will show the sampling output
|
||||
* for statements/other records, when sampling is enabled
|
||||
*/
|
||||
public void setOtherSampleDisplay(boolean otherSample) {
|
||||
this.otherSample = otherSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the warning outline is displayed
|
||||
*/
|
||||
public boolean showWarnOutline(){
|
||||
return warnOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the warning fill is displayed
|
||||
*/
|
||||
public boolean showWarnFill(){
|
||||
return warnFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the warning text is displayed
|
||||
*/
|
||||
public boolean showWarnText(){
|
||||
return warnText;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the warning time is displayed
|
||||
*/
|
||||
public boolean showWarnTime(){
|
||||
return warnTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the warning sampling is to be displayed
|
||||
*/
|
||||
public boolean showWarnSampling(){
|
||||
return warnSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the watch outline is displayed
|
||||
*/
|
||||
public boolean showWatchOutline(){
|
||||
return watchOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the watch fill is displayed
|
||||
*/
|
||||
public boolean showWatchFill(){
|
||||
return watchFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the watch text is displayed
|
||||
*/
|
||||
public boolean showWatchText(){
|
||||
return watchText;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the watch time is displayed
|
||||
*/
|
||||
public boolean showWatchTime(){
|
||||
return watchTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the watch sampling is to be displayed
|
||||
*/
|
||||
public boolean showWatchSampling(){
|
||||
return watchSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the advisory outline is displayed
|
||||
*/
|
||||
public boolean showAdvisoryOutline(){
|
||||
return advOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the advisory fill is displayed
|
||||
*/
|
||||
public boolean showAdvisoryFill(){
|
||||
return advFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the advisory text is displayed
|
||||
*/
|
||||
public boolean showAdvisoryText(){
|
||||
return advText;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the advisory time is displayed
|
||||
*/
|
||||
public boolean showAdvisoryTime(){
|
||||
return advTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the advisory sampling is to be displayed
|
||||
*/
|
||||
public boolean showAdvisorySampling(){
|
||||
return advSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the statement/other outline is displayed
|
||||
*/
|
||||
public boolean showOtherOutline(){
|
||||
return otherOutline;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the statement/other fill is displayed
|
||||
*/
|
||||
public boolean showOtherFill(){
|
||||
return otherFill;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the statement/other text is displayed
|
||||
*/
|
||||
public boolean showOtherText(){
|
||||
return otherText;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the statement/other time is displayed
|
||||
*/
|
||||
public boolean showOtherTime(){
|
||||
return otherTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the other/statement sampling is to be displayed
|
||||
*/
|
||||
public boolean showOtherSampling(){
|
||||
return otherSample;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the warning display settings are to
|
||||
* be enabled
|
||||
*/
|
||||
public boolean enableWarnDisplay() {
|
||||
return enableWarnDisplay;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the watch display settings are to
|
||||
* be enabled
|
||||
*/
|
||||
public boolean enableWatchDisplay() {
|
||||
return enableWatchDisplay;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the advisory display settings are
|
||||
* to be enabled
|
||||
*/
|
||||
public boolean enableAdvisoryDisplay() {
|
||||
return enableAdvisoryDisplay;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if the warning statement/other settings
|
||||
* are to be enabled
|
||||
*/
|
||||
public boolean enableOtherDisplay(){
|
||||
return enableOtherDisplay;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the associated DrawingPropertiesDialog
|
||||
* @param dialog
|
||||
*/
|
||||
public void setDrawingDialog(DrawingPropertiesDialog dialog){
|
||||
drawingDialog = dialog;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The dialog used to set the display (drawing) properties
|
||||
*/
|
||||
public DrawingPropertiesDialog getDrawingDialog(){
|
||||
return drawingDialog;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -37,6 +37,8 @@ import com.raytheon.uf.viz.core.IGraphicsTarget;
|
|||
import com.raytheon.uf.viz.core.catalog.DirectDbQuery;
|
||||
import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage;
|
||||
import com.raytheon.uf.viz.core.drawables.FillPatterns;
|
||||
import com.raytheon.uf.viz.core.drawables.IShadedShape;
|
||||
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler.JTSGeometryData;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler.PointStyle;
|
||||
|
@ -65,6 +67,7 @@ import org.locationtech.jts.io.WKTReader;
|
|||
* Aug 22, 2016 5842 dgilling Remove dependency on viz.texteditor plugin.
|
||||
* Sep 14, 2016 3241 bsteffen Update deprecated JTSCompiler method calls
|
||||
* Mar 15, 2018 7047 dgilling Fix order of display of SPS metadata.
|
||||
* Jun 24, 2022 srcarter@ucar Always create outline (wireshapes) and fill (shadedshapes)
|
||||
* </pre>
|
||||
*
|
||||
* @author rjpeter
|
||||
|
@ -180,21 +183,6 @@ public class CWASPSResource extends WatchesResource {
|
|||
entryMap.put(record.getDataURI(), entry);
|
||||
}
|
||||
|
||||
// default to a wireframe shape
|
||||
boolean isShaded = false;
|
||||
|
||||
if (entry.shadedShape != null) {
|
||||
// if the shape was in the shadedShape map then create a shaded
|
||||
// shape
|
||||
isShaded = true;
|
||||
} else if ((entry.wireframeShape == null)
|
||||
&& (record.getGeometry() == null)) {
|
||||
// if it is not in the wireframeShape map and the geometry is null
|
||||
// then create a shaded shape
|
||||
isShaded = true;
|
||||
}
|
||||
|
||||
if (isShaded) {
|
||||
if (!record.getUgcZones().isEmpty()) {
|
||||
// if the geometry is null get a geometry based on the county
|
||||
// list
|
||||
|
@ -202,62 +190,42 @@ public class CWASPSResource extends WatchesResource {
|
|||
record.setGeometry(getGeometry(record));
|
||||
}
|
||||
if (record.getGeometry() != null) {
|
||||
|
||||
// dispose old shape
|
||||
if (entry.shadedShape != null) {
|
||||
entry.shadedShape.dispose();
|
||||
}
|
||||
|
||||
entry.shadedShape = target.createShadedShape(false,
|
||||
descriptor.getGridGeometry());
|
||||
try {
|
||||
//give every entry a fill and outline
|
||||
//add fill (shadedshape)
|
||||
IShadedShape ss = target.createShadedShape(false, descriptor.getGridGeometry());
|
||||
geo = wktr.read(record.getGeometry().toString());
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(ss, null, this.descriptor);
|
||||
JTSGeometryData geoData = jtsCompiler.createGeometryData();
|
||||
geoData.setGeometryColor(color);
|
||||
geoData.setPointStyle(PointStyle.CROSS);
|
||||
jtsCompiler.handle(geo, geoData);
|
||||
ss.setFillPattern(FillPatterns.getGLPattern("VERTICAL_DOTTED"));
|
||||
ss.compile();
|
||||
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(
|
||||
entry.shadedShape, null, this.descriptor);
|
||||
JTSGeometryData jtsData = jtsCompiler
|
||||
.createGeometryData();
|
||||
jtsData.setPointStyle(PointStyle.CROSS);
|
||||
jtsData.setGeometryColor(color);
|
||||
try {
|
||||
jtsCompiler.handle(geo, jtsData);
|
||||
} catch (VizException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
e.getLocalizedMessage(), e);
|
||||
entryMap.remove(entry.record.getDataURI());
|
||||
return;
|
||||
}
|
||||
entry.shadedShape.setFillPattern(FillPatterns
|
||||
.getGLPattern("VERTICAL_DOTTED"));
|
||||
entry.shadedShape.compile();
|
||||
} catch (ParseException e) {
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
e.getLocalizedMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
entry.shadedShape = ss;
|
||||
|
||||
try {
|
||||
// dispose old shape
|
||||
if (entry.wireframeShape != null) {
|
||||
entry.wireframeShape.dispose();
|
||||
//add outline (wireshape)
|
||||
IWireframeShape wfs = entry.wireframeShape;
|
||||
|
||||
if (wfs != null) {
|
||||
wfs.dispose();
|
||||
}
|
||||
|
||||
entry.wireframeShape = target.createWireframeShape(false,
|
||||
descriptor);
|
||||
geo = wktr.read(record.getGeometry().toString());
|
||||
wfs = target.createWireframeShape(false, descriptor);
|
||||
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(null,
|
||||
entry.wireframeShape, descriptor);
|
||||
jtsCompiler = new JTSCompiler(null, wfs, descriptor);
|
||||
jtsCompiler.handle(geo);
|
||||
entry.wireframeShape.compile();
|
||||
wfs.compile();
|
||||
entry.wireframeShape = wfs;
|
||||
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.ERROR,
|
||||
"Error creating wireframe", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the text that should be printed in an array
|
||||
|
|
|
@ -46,6 +46,8 @@ import com.raytheon.viz.core.mode.CAVEMode;
|
|||
* Apr 28, 2014 DR 17310 D. Friedman Handle null VTEC fields.
|
||||
* Aug 28, 2014 ASM #15682 D. Friedman Refactor for WouWcnWatchesResourceData.
|
||||
* Apr 09, 2018 #6963 dgilling Support Practice mode.
|
||||
* Oct 21, 2021 srcarter Simplified the construct method to always return WarningsResource
|
||||
* Mar 15, 2022 srcarter Added a getter for the resource name
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -66,28 +68,17 @@ public class WWAResourceData extends AbstractRequestableResourceData {
|
|||
|
||||
protected Collection<AbstractWarningRecord> records;
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @seecom.raytheon.uf.viz.core.rsc.AbstractRequestableResourceData#
|
||||
* constructResource(com.raytheon.uf.viz.core.comm.LoadProperties,
|
||||
* com.raytheon.edex.db.objects.PluginDataObject[])
|
||||
*/
|
||||
@Override
|
||||
protected AbstractVizResource<?, ?> constructResource(
|
||||
LoadProperties loadProperties, PluginDataObject[] objects)
|
||||
throws VizException {
|
||||
boolean watchResource = false;
|
||||
records = new ArrayList<>(objects.length);
|
||||
if (objects.length > 0) {
|
||||
for (int i = 0; i < objects.length; i++) {
|
||||
records.add((AbstractWarningRecord) objects[i]);
|
||||
}
|
||||
watchResource = "A".equals(((AbstractWarningRecord) objects[0])
|
||||
.getSig());
|
||||
} else if (loadProperties.isLoadWithoutData()) {
|
||||
// I must be trying to load without data, Ill try.
|
||||
RequestConstraint phenSig = getMetadataMap().get("phensig");
|
||||
watchResource = phenSig != null
|
||||
&& phenSig.getConstraintValue().contains(".A");
|
||||
}
|
||||
|
||||
if (watchResource) {
|
||||
return new WatchesResource(this, loadProperties);
|
||||
}
|
||||
|
||||
return new WarningsResource(this, loadProperties);
|
||||
}
|
||||
|
@ -218,20 +209,11 @@ public class WWAResourceData extends AbstractRequestableResourceData {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<String, RequestConstraint> getMetadataMap() {
|
||||
HashMap<String, RequestConstraint> metadataMap = super.getMetadataMap();
|
||||
|
||||
if (metadataMap.containsKey("pluginName")) {
|
||||
metadataMap = new HashMap<>(metadataMap);
|
||||
CAVEMode caveMode = CAVEMode.getMode();
|
||||
String pluginName = (CAVEMode.OPERATIONAL.equals(caveMode)
|
||||
|| CAVEMode.TEST.equals(caveMode)) ? "warning"
|
||||
: "practicewarning";
|
||||
metadataMap.replace("pluginName",
|
||||
new RequestConstraint(pluginName));
|
||||
}
|
||||
|
||||
return metadataMap;
|
||||
/**
|
||||
* @return The resource name (similar to what's displayed
|
||||
* in the resource stack, except without the timestamp)
|
||||
*/
|
||||
public String getName(){
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,6 +37,9 @@ import com.raytheon.uf.common.time.DataTime;
|
|||
import com.raytheon.uf.viz.core.AbstractTimeMatcher;
|
||||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
import com.raytheon.uf.viz.core.drawables.IDescriptor.FramesInfo;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler.JTSGeometryData;
|
||||
import com.raytheon.uf.viz.core.drawables.FillPatterns;
|
||||
import com.raytheon.uf.viz.core.drawables.IShadedShape;
|
||||
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
|
@ -70,6 +73,9 @@ import org.locationtech.jts.geom.Geometry;
|
|||
* Apr 14, 2014 DR 17257 D. Friedman Redo time matching on per-minute refresh.
|
||||
* Apr 28, 2015 ASM #15008 D. Friedman Create polygon for EXTs even if original product is not found.
|
||||
* Aug 22, 2016 #5842 dgilling Remove dependency on viz.texteditor plugin.
|
||||
* Oct 21, 2021 srcarter modified initShape to set the shape on watches, and wireframe on warnings and advisories
|
||||
* Mar 15, 2022 srcarter@ucar Change initshape() to add a shadedshape and wireframeshape to every entry
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -179,26 +185,38 @@ public class WarningsResource extends AbstractWWAResource {
|
|||
entry.record = record;
|
||||
entryMap.put(record.getDataURI(), entry);
|
||||
}
|
||||
|
||||
WarningAction act = WarningAction.valueOf(record.getAct());
|
||||
|
||||
//give every entry a fill and outline
|
||||
//add fill (shadedshape)
|
||||
IShadedShape ss = target.createShadedShape(false, descriptor.getGridGeometry());
|
||||
geo = record.getGeometry();
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(ss, null, this.descriptor);
|
||||
JTSGeometryData geoData = jtsCompiler.createGeometryData();
|
||||
geoData.setGeometryColor(color);
|
||||
jtsCompiler.handle(geo, geoData);
|
||||
ss.setFillPattern(FillPatterns.getGLPattern(record.getPhen()
|
||||
.equals("TO") ? "VERTICAL" : "HORIZONTAL"));
|
||||
ss.compile();
|
||||
|
||||
entry.shadedShape = ss;
|
||||
|
||||
//add outline (wireshape)
|
||||
IWireframeShape wfs = entry.wireframeShape;
|
||||
|
||||
if (wfs != null) {
|
||||
wfs.dispose();
|
||||
}
|
||||
WarningAction act = WarningAction.valueOf(record.getAct());
|
||||
// Do not paint a wire frame shape for a CAN
|
||||
if (act != WarningAction.CAN) {
|
||||
|
||||
wfs = target.createWireframeShape(false, descriptor);
|
||||
geo = record.getGeometry();
|
||||
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(null, wfs,
|
||||
descriptor);
|
||||
jtsCompiler = new JTSCompiler(null, wfs, descriptor);
|
||||
jtsCompiler.handle(geo);
|
||||
wfs.compile();
|
||||
entry.wireframeShape = wfs;
|
||||
} else {
|
||||
// Prevents sampling and a label to be painted
|
||||
entry.record.setGeometry(null);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
statusHandler.handle(Priority.ERROR,
|
||||
"Error creating wireframe", e);
|
||||
|
|
|
@ -27,6 +27,7 @@ import com.raytheon.uf.common.time.SimulatedTime;
|
|||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
import com.raytheon.uf.viz.core.drawables.FillPatterns;
|
||||
import com.raytheon.uf.viz.core.drawables.IShadedShape;
|
||||
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler.JTSGeometryData;
|
||||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
|
@ -56,6 +57,7 @@ import org.locationtech.jts.geom.GeometryFactory;
|
|||
* Mar 04, 2014 2832 njensen Moved disposeInternal() to abstract class
|
||||
* Apr 07, 2014 2959 njensen Correct handling of color change
|
||||
* Jan 16, 2017 5976 bsteffen Update shaded shape constructor.
|
||||
* Mar 15, 2022 srcarter@ucar Change initshape() to add a shadedshape and wireframeshape to every entry
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -169,11 +171,10 @@ public class WatchesResource extends AbstractWWAResource {
|
|||
if (!record.getUgcZones().isEmpty()) {
|
||||
setGeometry(record);
|
||||
if ((record.getGeometry() != null) && (record.getPhen() != null)) {
|
||||
IShadedShape ss = target.createShadedShape(false,
|
||||
descriptor.getGridGeometry());
|
||||
//add fill (shadedshape)
|
||||
IShadedShape ss = target.createShadedShape(false, descriptor.getGridGeometry());
|
||||
geo = record.getGeometry();
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(ss, null,
|
||||
this.descriptor);
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(ss, null, this.descriptor);
|
||||
JTSGeometryData geoData = jtsCompiler.createGeometryData();
|
||||
geoData.setGeometryColor(color);
|
||||
jtsCompiler.handle(geo, geoData);
|
||||
|
@ -187,6 +188,21 @@ public class WatchesResource extends AbstractWWAResource {
|
|||
entryMap.put(record.getDataURI(), entry);
|
||||
}
|
||||
entry.shadedShape = ss;
|
||||
|
||||
//add outline (wireshape)
|
||||
IWireframeShape wfs = entry.wireframeShape;
|
||||
|
||||
if (wfs != null) {
|
||||
wfs.dispose();
|
||||
}
|
||||
|
||||
wfs = target.createWireframeShape(false, descriptor);
|
||||
geo = record.getGeometry();
|
||||
|
||||
jtsCompiler = new JTSCompiler(null, wfs, descriptor);
|
||||
jtsCompiler.handle(geo);
|
||||
wfs.compile();
|
||||
entry.wireframeShape = wfs;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import com.raytheon.uf.common.time.SimulatedTime;
|
|||
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||
import com.raytheon.uf.viz.core.drawables.FillPatterns;
|
||||
import com.raytheon.uf.viz.core.drawables.IShadedShape;
|
||||
import com.raytheon.uf.viz.core.drawables.IWireframeShape;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler.JTSGeometryData;
|
||||
import com.raytheon.uf.viz.core.drawables.JTSCompiler.PointStyle;
|
||||
|
@ -38,6 +39,7 @@ import org.locationtech.jts.geom.Geometry;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* 2014-08-28 ASM #15682 D. Friemdan Initial creation
|
||||
* 2016-09-14 3241 bsteffen Update deprecated JTSCompiler method calls
|
||||
* 2022-03-15 srcarter@ucar Changed initshape() to draw a shadedshape and wireframeshape for every entry
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
|
@ -242,11 +244,10 @@ public class WouWcnWatchesResource extends WatchesResource implements ISimulated
|
|||
}
|
||||
AbstractWarningRecord record = entry.record;
|
||||
if (record.getGeometry() != null) {
|
||||
IShadedShape ss = target.createShadedShape(false,
|
||||
descriptor.getGridGeometry());
|
||||
//added fill (shadedshape)
|
||||
IShadedShape ss = target.createShadedShape(false, descriptor.getGridGeometry());
|
||||
Geometry geo = (Geometry) record.getGeometry().clone();
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(ss, null,
|
||||
this.descriptor);
|
||||
JTSCompiler jtsCompiler = new JTSCompiler(ss, null, this.descriptor);
|
||||
JTSGeometryData jtsData = jtsCompiler.createGeometryData();
|
||||
jtsData.setPointStyle(PointStyle.CROSS);
|
||||
jtsData.setGeometryColor(color);
|
||||
|
@ -255,6 +256,21 @@ public class WouWcnWatchesResource extends WatchesResource implements ISimulated
|
|||
.equals("TO") ? "VERTICAL" : "HORIZONTAL"));
|
||||
ss.compile();
|
||||
entry.shadedShape = ss;
|
||||
|
||||
//added outline (wireshape)
|
||||
IWireframeShape wfs = entry.wireframeShape;
|
||||
|
||||
if (wfs != null) {
|
||||
wfs.dispose();
|
||||
}
|
||||
|
||||
wfs = target.createWireframeShape(false, descriptor);
|
||||
geo = record.getGeometry();
|
||||
|
||||
jtsCompiler = new JTSCompiler(null, wfs, descriptor);
|
||||
jtsCompiler.handle(geo);
|
||||
wfs.compile();
|
||||
entry.wireframeShape = wfs;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,364 @@
|
|||
package com.raytheon.viz.warnings.ui;
|
||||
|
||||
import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.events.SelectionAdapter;
|
||||
import org.eclipse.swt.events.SelectionEvent;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.layout.GridLayout;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Group;
|
||||
import org.eclipse.swt.widgets.Label;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
|
||||
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
|
||||
import com.raytheon.viz.warnings.rsc.AbstractWWAResource;
|
||||
|
||||
/**
|
||||
* Dialog with options for displaying the outline, fill, text, and time,
|
||||
* individually, for each warnings, watches, and advisories.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ---------------- --------------------------
|
||||
* Mar 15, 2022 srcarter@ucar Initial creation
|
||||
* Mar 21, 2022 srcarter@ucar Set the current values every time initializeComponents is called (also called from .Open)
|
||||
* Jun 24, 2022 srcarter@ucar Move Watches to top, add section for Other/Statement, add 'enabled' functionality
|
||||
* Jun 28, 2022 srcarter@ucar Add 'Sampling' options
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author srcarter
|
||||
*/
|
||||
|
||||
public class DrawingPropertiesDialog extends CaveSWTDialog {
|
||||
|
||||
//gui components
|
||||
private Button warnOutlineChk;
|
||||
private Button warnFillChk;
|
||||
private Button warnTextChk;
|
||||
private Button warnTimeChk;
|
||||
private Button warnSampleChk;
|
||||
private Button watchOutlineChk;
|
||||
private Button watchFillChk;
|
||||
private Button watchTextChk;
|
||||
private Button watchTimeChk;
|
||||
private Button watchSampleChk;
|
||||
private Button advOutlineChk;
|
||||
private Button advFillChk;
|
||||
private Button advTextChk;
|
||||
private Button advTimeChk;
|
||||
private Button advSampleChk;
|
||||
private Button otherOutlineChk;
|
||||
private Button otherFillChk;
|
||||
private Button otherTextChk;
|
||||
private Button otherTimeChk;
|
||||
private Button otherSampleChk;
|
||||
|
||||
/**
|
||||
* The WWA Resource associated with this properties dialog
|
||||
*/
|
||||
private AbstractWWAResource myResource;
|
||||
|
||||
|
||||
/**
|
||||
* Creates a dialog with drawing options for all the warning, watches and
|
||||
* advisories drawn in the resource
|
||||
* @param parent The parent gui component to associate this dialog with
|
||||
* @param rsc The WWA resource associated with this dialog
|
||||
*/
|
||||
protected DrawingPropertiesDialog(Shell parent, AbstractWWAResource rsc) {
|
||||
super(parent, SWT.RESIZE | SWT.CLOSE);
|
||||
myResource = rsc;
|
||||
setText("WWA Drawing Properties");
|
||||
}
|
||||
|
||||
@Override
|
||||
// Create and initialize all gui components for controlling the drawing
|
||||
// displays for the WWAs.
|
||||
protected void initializeComponents(Shell shell) {
|
||||
// --- Sub title ---
|
||||
Composite subComp = new Composite(shell, SWT.NONE);
|
||||
subComp.setLayout(new GridLayout(1, true));
|
||||
subComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
|
||||
Label layerName = new Label(subComp, SWT.NONE);
|
||||
layerName.setText(myResource.getResourceData().getName());
|
||||
|
||||
// --- Watches ---
|
||||
Group watchComp = new Group(shell, SWT.NONE);
|
||||
watchComp.setText("Watches");
|
||||
watchComp.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, true));
|
||||
watchComp.setLayout(new GridLayout(2, true));
|
||||
|
||||
//outline and fill
|
||||
watchOutlineChk = createButton(watchComp, "Show Outline");
|
||||
watchFillChk = createButton(watchComp, "Thatched Fill");
|
||||
|
||||
//text and time
|
||||
watchTextChk = createButton(watchComp, "Show Text");
|
||||
watchTimeChk = createButton(watchComp, "Show Time");
|
||||
|
||||
//sample
|
||||
watchSampleChk = createButton(watchComp, "Show Sampling");
|
||||
|
||||
// --- end Watches ---
|
||||
|
||||
// --- Warnings ---
|
||||
Group warnComp = new Group(shell, SWT.NONE);
|
||||
warnComp.setText("Warnings");
|
||||
warnComp.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, true));
|
||||
warnComp.setLayout(new GridLayout(2, true));
|
||||
|
||||
//outline and fill
|
||||
warnOutlineChk = createButton(warnComp, "Show Outline");
|
||||
warnFillChk = createButton(warnComp, "Thatched Fill");
|
||||
//text and time
|
||||
warnTextChk = createButton(warnComp, "Show Text");
|
||||
warnTimeChk = createButton(warnComp, "Show Time");
|
||||
//sample
|
||||
warnSampleChk = createButton(warnComp, "Show Sampling");
|
||||
|
||||
// --- end Warnings ---
|
||||
|
||||
// --- Advisories ---
|
||||
Group advComp = new Group(shell, SWT.NONE);
|
||||
advComp.setText("Advisories");
|
||||
advComp.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, true));
|
||||
advComp.setLayout(new GridLayout(2, true));
|
||||
|
||||
//outline and fill
|
||||
advOutlineChk = createButton(advComp, "Show Outline");
|
||||
advFillChk = createButton(advComp, "Thatched Fill");
|
||||
|
||||
//text and time
|
||||
advTextChk = createButton(advComp, "Show Text");
|
||||
advTimeChk = createButton(advComp, "Show Time");
|
||||
|
||||
//sample
|
||||
advSampleChk = createButton(advComp, "Show Sampling");
|
||||
|
||||
// --- end Advisories ---
|
||||
|
||||
// --- Other ---
|
||||
Group otherComp = new Group(shell, SWT.NONE);
|
||||
otherComp.setText("Statements/Other");
|
||||
otherComp.setLayoutData(new GridData(SWT.CENTER, SWT.FILL, true, true));
|
||||
otherComp.setLayout(new GridLayout(2, true));
|
||||
|
||||
//outline and fill
|
||||
otherOutlineChk = createButton(otherComp, "Show Outline");
|
||||
otherFillChk = createButton(otherComp, "Thatched Fill");
|
||||
|
||||
//text and time
|
||||
otherTextChk = createButton(otherComp, "Show Text");
|
||||
otherTimeChk = createButton(otherComp, "Show Time");
|
||||
|
||||
//sample
|
||||
otherSampleChk = createButton(otherComp, "Show Sampling");
|
||||
|
||||
// --- end Other ---
|
||||
|
||||
// --- Bottom Buttons ---
|
||||
Composite btnComp = new Composite(shell, SWT.NONE);
|
||||
btnComp.setLayout(new GridLayout(1, true));
|
||||
btnComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
|
||||
|
||||
// Reset Button
|
||||
Button resetBtn = new Button(btnComp, SWT.PUSH);
|
||||
resetBtn.setText("Reset Defaults");
|
||||
GridData gd = new GridData(SWT.CENTER, SWT.DEFAULT, true, false);
|
||||
resetBtn.setLayoutData(gd);
|
||||
resetBtn.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event){
|
||||
resetDefaults();
|
||||
updateDisplay();
|
||||
}
|
||||
});
|
||||
|
||||
// Close Button
|
||||
Button closeBtn = new Button(btnComp, SWT.PUSH);
|
||||
closeBtn.setText("Close");
|
||||
gd = new GridData(SWT.CENTER, SWT.DEFAULT, true, false);
|
||||
gd.widthHint = 70;
|
||||
closeBtn.setLayoutData(gd);
|
||||
closeBtn.addSelectionListener(new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event) {
|
||||
shell.setVisible(false);
|
||||
}
|
||||
});
|
||||
// --- end Buttons ---
|
||||
|
||||
//set all the values
|
||||
setToCurrentValues();
|
||||
|
||||
//set visibility from resource
|
||||
setWarningControlsEnabled(myResource.enableWarnDisplay());
|
||||
setWatchControlsEnabled(myResource.enableWatchDisplay());
|
||||
setAdvisoryControlsEnabled(myResource.enableAdvisoryDisplay());
|
||||
setOtherControlsEnabled(myResource.enableOtherDisplay());
|
||||
}
|
||||
|
||||
public void updateControlsEnabled(boolean enableWatch, boolean enableWarn, boolean enableAdv, boolean enableOther){
|
||||
setWatchControlsEnabled(enableWatch);
|
||||
setWarningControlsEnabled(enableWarn);
|
||||
setAdvisoryControlsEnabled(enableAdv);
|
||||
setOtherControlsEnabled(enableOther);
|
||||
}
|
||||
|
||||
private void setWarningControlsEnabled(boolean isEnabled){
|
||||
warnOutlineChk.setEnabled(isEnabled);
|
||||
warnFillChk.setEnabled(isEnabled);
|
||||
warnTextChk.setEnabled(isEnabled);
|
||||
warnTimeChk.setEnabled(isEnabled);
|
||||
warnSampleChk.setEnabled(isEnabled);
|
||||
}
|
||||
|
||||
private void setWatchControlsEnabled(boolean isEnabled){
|
||||
watchOutlineChk.setEnabled(isEnabled);
|
||||
watchFillChk.setEnabled(isEnabled);
|
||||
watchTextChk.setEnabled(isEnabled);
|
||||
watchTimeChk.setEnabled(isEnabled);
|
||||
watchSampleChk.setEnabled(isEnabled);
|
||||
}
|
||||
|
||||
private void setAdvisoryControlsEnabled(boolean isEnabled){
|
||||
advOutlineChk.setEnabled(isEnabled);
|
||||
advFillChk.setEnabled(isEnabled);
|
||||
advTextChk.setEnabled(isEnabled);
|
||||
advTimeChk.setEnabled(isEnabled);
|
||||
advSampleChk.setEnabled(isEnabled);
|
||||
}
|
||||
|
||||
private void setOtherControlsEnabled(boolean isEnabled){
|
||||
otherOutlineChk.setEnabled(isEnabled);
|
||||
otherFillChk.setEnabled(isEnabled);
|
||||
otherTextChk.setEnabled(isEnabled);
|
||||
otherTimeChk.setEnabled(isEnabled);
|
||||
otherSampleChk.setEnabled(isEnabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a checkbox button used for defining the display
|
||||
* properties of a given option for the WWA resource. Adds
|
||||
* the selection listener to the button so it functions
|
||||
* properly as well.
|
||||
* @param parent The parent gui component to associate this
|
||||
* button with
|
||||
* @param title The text displayed next to the checkbox
|
||||
* @return A Checkbox style button
|
||||
*/
|
||||
private Button createButton(Composite parent, String title){
|
||||
Button btn = new Button(parent, SWT.CHECK);
|
||||
btn.setText(title);
|
||||
btn.addSelectionListener(checkboxListener);
|
||||
return btn;
|
||||
}
|
||||
|
||||
/**
|
||||
* The listener used on all the display checkbox buttons
|
||||
*/
|
||||
private SelectionAdapter checkboxListener = new SelectionAdapter() {
|
||||
@Override
|
||||
public void widgetSelected(SelectionEvent event){
|
||||
updateDisplay();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Updates all the display settings on the resource based on the
|
||||
* current button selections in this dialog. Then issues a
|
||||
* refresh on the resource so it updates the display.
|
||||
*/
|
||||
private void updateDisplay(){
|
||||
myResource.setWarnOutlineDisplay(warnOutlineChk.getSelection());
|
||||
myResource.setWarnFillDisplay(warnFillChk.getSelection());
|
||||
myResource.setWarnTextDisplay(warnTextChk.getSelection());
|
||||
myResource.setWarnTimeDisplay(warnTimeChk.getSelection());
|
||||
myResource.setWarnSampleDisplay(warnSampleChk.getSelection());
|
||||
|
||||
myResource.setWatchOutlineDisplay(watchOutlineChk.getSelection());
|
||||
myResource.setWatchFillDisplay(watchFillChk.getSelection());
|
||||
myResource.setWatchTextDisplay(watchTextChk.getSelection());
|
||||
myResource.setWatchTimeDisplay(watchTimeChk.getSelection());
|
||||
myResource.setWatchSampleDisplay(watchSampleChk.getSelection());
|
||||
|
||||
myResource.setAdvisoryOutlineDisplay(advOutlineChk.getSelection());
|
||||
myResource.setAdvisoryFillDisplay(advFillChk.getSelection());
|
||||
myResource.setAdvisoryTextDisplay(advTextChk.getSelection());
|
||||
myResource.setAdvisoryTimeDisplay(advTimeChk.getSelection());
|
||||
myResource.setAdvisorySampleDisplay(advSampleChk.getSelection());
|
||||
|
||||
myResource.setOtherOutlineDisplay(otherOutlineChk.getSelection());
|
||||
myResource.setOtherFillDisplay(otherFillChk.getSelection());
|
||||
myResource.setOtherTextDisplay(otherTextChk.getSelection());
|
||||
myResource.setOtherTimeDisplay(otherTimeChk.getSelection());
|
||||
myResource.setOtherSampleDisplay(otherSampleChk.getSelection());
|
||||
|
||||
myResource.issueRefresh();
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset all the button selections in this dialog to the default
|
||||
* values defined in the @AbstractWWAResource class
|
||||
*/
|
||||
private void resetDefaults(){
|
||||
warnOutlineChk.setSelection(AbstractWWAResource.WARN_OUTLINE_DEFAULT);
|
||||
warnFillChk.setSelection(AbstractWWAResource.WARN_FILL_DEFAULT);
|
||||
warnTextChk.setSelection(AbstractWWAResource.WARN_TEXT_DEFAULT);
|
||||
warnTimeChk.setSelection(AbstractWWAResource.WARN_TIME_DEFAULT);
|
||||
warnSampleChk.setSelection(true);
|
||||
|
||||
watchOutlineChk.setSelection(AbstractWWAResource.WATCH_OUTLINE_DEFAULT);
|
||||
watchFillChk.setSelection(AbstractWWAResource.WATCH_FILL_DEFAULT);
|
||||
watchTextChk.setSelection(AbstractWWAResource.WATCH_TEXT_DEFAULT);
|
||||
watchTimeChk.setSelection(AbstractWWAResource.WATCH_TIME_DEFAULT);
|
||||
watchSampleChk.setSelection(true);
|
||||
|
||||
advOutlineChk.setSelection(AbstractWWAResource.ADV_OUTLINE_DEFAULT);
|
||||
advFillChk.setSelection(AbstractWWAResource.ADV_FILL_DEFAULT);
|
||||
advTextChk.setSelection(AbstractWWAResource.ADV_TEXT_DEFAULT);
|
||||
advTimeChk.setSelection(AbstractWWAResource.ADV_TIME_DEFAULT);
|
||||
advSampleChk.setSelection(true);
|
||||
|
||||
otherOutlineChk.setSelection(AbstractWWAResource.OTHER_OUTLINE_DEFAULT);
|
||||
otherFillChk.setSelection(AbstractWWAResource.OTHER_FILL_DEFAULT);
|
||||
otherTextChk.setSelection(AbstractWWAResource.OTHER_TEXT_DEFAULT);
|
||||
otherTimeChk.setSelection(AbstractWWAResource.OTHER_TIME_DEFAULT);
|
||||
otherSampleChk.setSelection(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set all the GUI checkboxes to the current boolean values from
|
||||
* the associated resource
|
||||
*/
|
||||
protected void setToCurrentValues(){
|
||||
warnOutlineChk.setSelection(myResource.showWarnOutline());
|
||||
warnFillChk.setSelection(myResource.showWarnFill());
|
||||
warnTextChk.setSelection(myResource.showWarnText());
|
||||
warnTimeChk.setSelection(myResource.showWarnTime());
|
||||
warnSampleChk.setSelection(myResource.showWarnSampling());
|
||||
|
||||
watchOutlineChk.setSelection(myResource.showWatchOutline());
|
||||
watchFillChk.setSelection(myResource.showWatchFill());
|
||||
watchTextChk.setSelection(myResource.showWatchText());
|
||||
watchTimeChk.setSelection(myResource.showWatchTime());
|
||||
watchSampleChk.setSelection(myResource.showWatchSampling());
|
||||
|
||||
advOutlineChk.setSelection(myResource.showAdvisoryOutline());
|
||||
advFillChk.setSelection(myResource.showAdvisoryFill());
|
||||
advTextChk.setSelection(myResource.showAdvisoryText());
|
||||
advTimeChk.setSelection(myResource.showAdvisoryTime());
|
||||
advSampleChk.setSelection(myResource.showAdvisorySampling());
|
||||
|
||||
otherOutlineChk.setSelection(myResource.showOtherOutline());
|
||||
otherFillChk.setSelection(myResource.showOtherFill());
|
||||
otherTextChk.setSelection(myResource.showOtherText());
|
||||
otherTimeChk.setSelection(myResource.showOtherTime());
|
||||
otherSampleChk.setSelection(myResource.showOtherSampling());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
package com.raytheon.viz.warnings.ui;
|
||||
|
||||
import org.eclipse.ui.PlatformUI;
|
||||
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||
import com.raytheon.viz.ui.cmenu.AbstractRightClickAction;
|
||||
import com.raytheon.viz.warnings.rsc.AbstractWWAResource;
|
||||
import com.raytheon.viz.warnings.rsc.CWASPSResource;
|
||||
import com.raytheon.viz.warnings.rsc.WarningsResource;
|
||||
import com.raytheon.viz.warnings.rsc.WatchesResource;
|
||||
|
||||
/**
|
||||
* This action shows an option in the resource menu that opens a new
|
||||
* dialog which allows the users to specify display properties for
|
||||
* the WWA resource.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ---------------- --------------------------
|
||||
* Mar 15, 2022 srcarter@ucar Initial creation
|
||||
* Mar 17, 2022 srcarter@ucar Small change to isHidden to only display for proper resources
|
||||
* Jun 24, 2022 srcarter@ucar Enable for CWASPSResources as well
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author srcarter
|
||||
*/
|
||||
|
||||
public class WWADrawingPropertiesAction extends AbstractRightClickAction {
|
||||
|
||||
@Override
|
||||
public String getText() {
|
||||
return "Open Drawing Properties...";
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.action.Action#run()
|
||||
*
|
||||
* Create and assign a new DrawingPropertiesDialog to the associated
|
||||
* resource if it does not already have a dialog. If it has a dialog
|
||||
* proceed with the existing one and show the dialog.
|
||||
*/
|
||||
@Override
|
||||
public void run() {
|
||||
AbstractWWAResource rsc = (AbstractWWAResource)getSelectedRsc();
|
||||
|
||||
DrawingPropertiesDialog dialog = rsc.getDrawingDialog();
|
||||
|
||||
if(dialog == null){
|
||||
dialog = new DrawingPropertiesDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), rsc);
|
||||
rsc.setDrawingDialog(dialog);
|
||||
}
|
||||
dialog.open();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.raytheon.viz.ui.cmenu.AbstractRightClickAction#isHidden()
|
||||
*
|
||||
* Only display the drawing properties dialog for WarningsResource and
|
||||
* WatchesResource, but not for a CWASPS resource.
|
||||
*/
|
||||
@Override
|
||||
public boolean isHidden(){
|
||||
AbstractVizResource rsc = getSelectedRsc();
|
||||
|
||||
if(rsc instanceof WatchesResource || rsc instanceof WarningsResource){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,139 @@
|
|||
package com.raytheon.uf.common.dataplugin.warning.util;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.Unmarshaller;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
|
||||
import com.raytheon.uf.common.localization.IPathManager;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext;
|
||||
import com.raytheon.uf.common.localization.LocalizationContext.LocalizationType;
|
||||
import com.raytheon.uf.common.localization.PathManagerFactory;
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
|
||||
/**
|
||||
* Class for looking up phensig info for warnings/advisories.
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------- -------- --------- --------------------------------------------
|
||||
* Dec 19, 2018 mjames Initial creation
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author mjames
|
||||
*/
|
||||
public class WarningLookups {
|
||||
private static final IUFStatusHandler theHandler = UFStatus.getHandler(WarningLookups.class);
|
||||
|
||||
private static final String LOOKUP_DIR = "warngen";
|
||||
|
||||
public static class PhensigValue {
|
||||
public PhensigValue() {}
|
||||
|
||||
public PhensigValue(String name, String color) {
|
||||
this.name = name;
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
@XmlAttribute
|
||||
public String name;
|
||||
|
||||
@XmlAttribute
|
||||
public String color;
|
||||
}
|
||||
|
||||
@XmlAccessorType(XmlAccessType.NONE)
|
||||
public static abstract class AbstractLookup<K, V> {
|
||||
public abstract Map<K, V> getMap();
|
||||
}
|
||||
|
||||
@XmlRootElement
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
public static class PhensigColors extends
|
||||
AbstractLookup<String, PhensigValue> {
|
||||
public HashMap<String, PhensigValue> map = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public Map<String, PhensigValue> getMap() {
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
private PhensigColors phensigColorLookup;
|
||||
|
||||
public WarningLookups() {
|
||||
try {
|
||||
init();
|
||||
} catch (Exception e) {
|
||||
theHandler.error("Failed to initialize lookups", e);
|
||||
}
|
||||
}
|
||||
|
||||
private void init() throws Exception {
|
||||
JAXBContext context = JAXBContext.newInstance(PhensigColors.class);
|
||||
Unmarshaller u = context.createUnmarshaller();
|
||||
phensigColorLookup = load(new PhensigColors(), "phensigColors.xml", u);
|
||||
}
|
||||
|
||||
private static <T extends AbstractLookup<K, V>, K, V> T load(
|
||||
T combinedLookup, String fileName, Unmarshaller u) {
|
||||
|
||||
IPathManager pm = PathManagerFactory.getPathManager();
|
||||
|
||||
List<LocalizationContext> contexts = Arrays.asList(pm
|
||||
.getLocalSearchHierarchy(LocalizationType.COMMON_STATIC));
|
||||
Collections.reverse(contexts);
|
||||
|
||||
for (LocalizationContext ctx : contexts) {
|
||||
File f = pm.getFile(ctx, LOOKUP_DIR + IPathManager.SEPARATOR + fileName);
|
||||
if (f != null && f.isFile()) {
|
||||
try {
|
||||
@SuppressWarnings("unchecked")
|
||||
T lookup = (T) u.unmarshal(f);
|
||||
if (!combinedLookup.getClass().isAssignableFrom(
|
||||
lookup.getClass())) {
|
||||
throw new Exception(String.format(
|
||||
"file contains %s' expected %s",
|
||||
lookup.getClass(), combinedLookup.getClass()));
|
||||
}
|
||||
combinedLookup.getMap().putAll(lookup.getMap());
|
||||
} catch (Exception e) {
|
||||
theHandler.error(
|
||||
String.format("%s: %s", f, e.getMessage()), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return combinedLookup;
|
||||
}
|
||||
|
||||
public PhensigValue getPhensig(String phensigCode) {
|
||||
return phensigColorLookup.map.get(phensigCode);
|
||||
}
|
||||
|
||||
private static WarningLookups instance;
|
||||
|
||||
public static synchronized WarningLookups getInstance() {
|
||||
if (instance == null)
|
||||
instance = new WarningLookups();
|
||||
return instance;
|
||||
}
|
||||
|
||||
public static synchronized void reload() {
|
||||
instance = new WarningLookups();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,109 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<phensigColors>
|
||||
<map>
|
||||
<entry><key>AQ.Y</key><value color="gray" name="Air Quality Alert"></value></entry>
|
||||
<entry><key>AS.O</key><value color="gray" name="Air Stagnation Outlook"></value></entry>
|
||||
<entry><key>AS.Y</key><value color="gray" name="Air Stagnation Advisory"></value></entry>
|
||||
<entry><key>BH.S</key><value color="turquoise" name="Beach Hazards Statement"></value></entry>
|
||||
<entry><key>BW.Y</key><value color="thistle" name="Brisk Wind Advisory"></value></entry>
|
||||
<entry><key>BZ.A</key><value color="greenyellow" name="Blizzard Watch"></value></entry>
|
||||
<entry><key>BZ.W</key><value color="orangered" name="Blizzard Warning"></value></entry>
|
||||
<entry><key>CF.A</key><value color="mediumaquamarine" name="Coastal Flood Watch"></value></entry>
|
||||
<entry><key>CF.W</key><value color="forestgreen" name="Coastal Flood Warning"></value></entry>
|
||||
<entry><key>CF.Y</key><value color="lawngreen" name="Coastal Flood Advisory"></value></entry>
|
||||
<entry><key>CF.S</key><value color="olivedrab" name="Coastal Flood Statement"></value></entry>
|
||||
<entry><key>DS.W</key><value color="bisque" name="Dust Storm Warning"></value></entry>
|
||||
<entry><key>DS.Y</key><value color="darkkhaki" name="Dust Advisory"></value></entry>
|
||||
<entry><key>DU.Y</key><value color="darkkhaki" name="Blowing Dust Advisory"></value></entry>
|
||||
<entry><key>EC.A</key><value color="blue" name="Extreme Cold Watch"></value></entry>
|
||||
<entry><key>EC.W</key><value color="blue" name="Extreme Cold Warning"></value></entry>
|
||||
<entry><key>EH.A</key><value color="maroon" name="Excessive Heat Watch"></value></entry>
|
||||
<entry><key>EH.W</key><value color="mediumvioletred" name="Excessive Heat Warning"></value></entry>
|
||||
<entry><key>EW.W</key><value color="deeppink" name="Excessive Wind Warning"></value></entry>
|
||||
<entry><key>FA.A</key><value color="seagreen" name="Flood Watch"></value></entry>
|
||||
<entry><key>FA.W</key><value color="seagreen" name="Areal Flood Warning"></value></entry>
|
||||
<entry><key>FA.Y</key><value color="seagreen" name="Areal Flood Advisory"></value></entry>
|
||||
<entry><key>FF.A</key><value color="limegreen" name="Flash Flood Watch"></value></entry>
|
||||
<entry><key>FF.S</key><value color="yellowgreen" name="Flash Flood Statement"></value></entry>
|
||||
<entry><key>FF.W</key><value color="darkred" name="Flash Flood Warning"></value></entry>
|
||||
<entry><key>FG.Y</key><value color="slategray" name="Dense Fog Advisory"></value></entry>
|
||||
<entry><key>FL.A</key><value color="seagreen" name="Flood Watch"></value></entry>
|
||||
<entry><key>FL.W</key><value color="green" name="Flood Warning"></value></entry>
|
||||
<entry><key>HY.S</key><value color="#00ff7f" name="Hydrological Statement"></value></entry>
|
||||
<entry><key>FL.S</key><value color="#00ff7f" name="Flood Statement"></value></entry>
|
||||
<entry><key>FL.Y</key><value color="#00ff7f" name="Flood Advisory"></value></entry>
|
||||
<entry><key>FR.Y</key><value color="cornflowerblue" name="Frost Advisory"></value></entry>
|
||||
<entry><key>FW.A</key><value color="navajowhite" name="Fire Weather Watch"></value></entry>
|
||||
<entry><key>FW.W</key><value color="deeppink" name="Red Flag Warning"></value></entry>
|
||||
<entry><key>FZ.A</key><value color="royalblue" name="Freeze Watch"></value></entry>
|
||||
<entry><key>FZ.W</key><value color="cyan" name="Freeze Warning"></value></entry>
|
||||
<entry><key>GL.A</key><value color="pink" name="Gale Watch"></value></entry>
|
||||
<entry><key>GL.W</key><value color="#dda0dd" name="Gale Warning"></value></entry>
|
||||
<entry><key>HF.A</key><value color="darkorchid" name="Hurricane Force Wind Watch"></value></entry>
|
||||
<entry><key>HF.W</key><value color="#cd5c5c" name="Hurricane Force Wind Warning"></value></entry>
|
||||
<entry><key>HT.Y</key><value color="#ff7f4e" name="Heat Advisory"></value></entry>
|
||||
<entry><key>HU.A</key><value color="#ff00ff" name="Hurricane Watch"></value></entry>
|
||||
<entry><key>HU.S</key><value color="yellow" name="Hurricane Statement"></value></entry>
|
||||
<entry><key>HU.W</key><value color="#dc143c" name="Hurricane Warning"></value></entry>
|
||||
<entry><key>HW.A</key><value color="darkgoldenrod" name="High Wind Watch"></value></entry>
|
||||
<entry><key>HW.W</key><value color="goldenrod" name="High Wind Warning"></value></entry>
|
||||
<entry><key>HZ.A</key><value color="royalblue" name="Hard Freeze Watch"></value></entry>
|
||||
<entry><key>HZ.W</key><value color="blue" name="Hard Freeze Warning"></value></entry>
|
||||
<entry><key>SQ.W</key><value color="#EF2B1C" name="Snow Squall Warning"></value></entry>
|
||||
<entry><key>IS.W</key><value color="darkmagenta" name="Ice Storm Warning"></value></entry>
|
||||
<entry><key>LE.A</key><value color="LightSkyBlue" name="Lake Effect Snow Watch"></value></entry>
|
||||
<entry><key>LE.W</key><value color="DarkCyan" name="Lake Effect Snow Warning"></value></entry>
|
||||
<entry><key>LE.Y</key><value color="MediumTurquoise" name="Lake Effect Snow Advisory"></value></entry>
|
||||
<entry><key>LO.Y</key><value color="maroon" name="Low Water Advisory"></value></entry>
|
||||
<entry><key>LS.A</key><value color="MediumAquaMarine" name="Lakeshore Flood Watch"></value></entry>
|
||||
<entry><key>LS.S</key><value color="lawngreen" name="Lakeshore Flood Statement"></value></entry>
|
||||
<entry><key>LS.W</key><value color="forestgreen" name="Lakeshore Flood Warning"></value></entry>
|
||||
<entry><key>LS.Y</key><value color="lawngreen" name="Lakeshore Flood Advisory"></value></entry>
|
||||
<entry><key>LW.Y</key><value color="tan" name="Lake Wind Advisory"></value></entry>
|
||||
<entry><key>MA.A</key><value color="peachpuff" name="Special Marine Advisory"></value></entry>
|
||||
<entry><key>MA.S</key><value color="peachpuff" name="Special Marine Statement"></value></entry>
|
||||
<entry><key>MA.W</key><value color="palevioletred" name="Special Marine Warning"></value></entry>
|
||||
<entry><key>MF.Y</key><value color="slategray" name="Dense Fog Advisory"></value></entry>
|
||||
<entry><key>MH.W</key><value color="darkgray" name="Ashfall Warning"></value></entry>
|
||||
<entry><key>MH.Y</key><value color="dimgray" name="Ashfall Advisory"></value></entry>
|
||||
<entry><key>MS.Y</key><value color="khaki" name="Dense Smoke Advisory"></value></entry>
|
||||
<entry><key>RB.Y</key><value color="thistle" name="Small Craft Advisory for rough bar"></value></entry>
|
||||
<entry><key>RP.S</key><value color="turquoise" name="High Rip Current Risk"></value></entry>
|
||||
<entry><key>SC.Y</key><value color="thistle" name="Small Craft Advisory"></value></entry>
|
||||
<entry><key>SE.A</key><value color="darkslateblue" name="Hazardous Seas Watch"></value></entry>
|
||||
<entry><key>SE.W</key><value color="thistle" name="Hazardous Seas Warning"></value></entry>
|
||||
<entry><key>SI.Y</key><value color="thistle" name="Small Craft Advisory for winds"></value></entry>
|
||||
<entry><key>SM.Y</key><value color="khaki" name="Dense Smoke Advisory"></value></entry>
|
||||
<entry><key>SR.A</key><value color="violet" name="Storm Watch"></value></entry>
|
||||
<entry><key>SR.W</key><value color="darkorchid" name="Storm Warning"></value></entry>
|
||||
<entry><key>SS.A</key><value color="#DB7FF7" name="Storm Surge Watch"></value></entry>
|
||||
<entry><key>SS.W</key><value color="#B524F7" name="Storm Surge Warning"></value></entry>
|
||||
<entry><key>SU.W</key><value color="forestgreen" name="High Surf Warning"></value></entry>
|
||||
<entry><key>SU.Y</key><value color="mediumorchid" name="High Surf Advisory"></value></entry>
|
||||
<entry><key>SV.A</key><value color="palevioletred" name="Severe Thunderstorm Watch"></value></entry>
|
||||
<entry><key>SV.S</key><value color="aqua" name="Severe Weather Statement"></value></entry>
|
||||
<entry><key>SV.W</key><value color="orange" name="Severe Thunderstorm Warning"></value></entry>
|
||||
<entry><key>SW.Y</key><value color="thistle" name="Small Craft Advisory for hazardous seas"></value></entry>
|
||||
<entry><key>TO.A</key><value color="yellow" name="Tornado Watch"></value></entry>
|
||||
<entry><key>TO.W</key><value color="red" name="Tornado Warning"></value></entry>
|
||||
<entry><key>TR.A</key><value color="#f08080" name="Tropical Storm Watch"></value></entry>
|
||||
<entry><key>TR.W</key><value color="#b22222" name="Tropical Storm Warning"></value></entry>
|
||||
<entry><key>TS.A</key><value color="fuchsia" name="Tsunami Watch"></value></entry>
|
||||
<entry><key>TS.W</key><value color="#FD6347" name="Tsunami Warning"></value></entry>
|
||||
<entry><key>TS.Y</key><value color="chocolate" name="Tsunami Advisory"></value></entry>
|
||||
<entry><key>TY.A</key><value color="fuchsia" name="Typhoon Watch"></value></entry>
|
||||
<entry><key>TY.W</key><value color="#FD6347" name="Typhoon Warning"></value></entry>
|
||||
<entry><key>UP.A</key><value color="RosyBrown" name="Heavy Freezing Spray Watch"></value></entry>
|
||||
<entry><key>UP.W</key><value color="#00C0FF" name="Heavy Freezing Spray Warning"></value></entry>
|
||||
<entry><key>UP.Y</key><value color="#00C0FF" name="Freezing Spray Advisory"></value></entry>
|
||||
<entry><key>WC.A</key><value color="cadetblue" name="Wind Chill Watch"></value></entry>
|
||||
<entry><key>WC.W</key><value color="lightsteelblue" name="Wind Chill Warning"></value></entry>
|
||||
<entry><key>WC.Y</key><value color="paleturquoise" name="Wind Chill Advisory"></value></entry>
|
||||
<entry><key>WI.Y</key><value color="tan" name="Wind Advisory"></value></entry>
|
||||
<entry><key>WS.A</key><value color="#4682b4" name="Winter Storm Watch"></value></entry>
|
||||
<entry><key>WS.W</key><value color="hotpink" name="Winter Storm Warning"></value></entry>
|
||||
<entry><key>WW.Y</key><value color="#7b68ee" name="Winter Weather Advisory"></value></entry>
|
||||
<entry><key>ZF.Y</key><value color="teal" name="Freezing Fog Advisory"></value></entry>
|
||||
<entry><key>ZR.Y</key><value color="orchid" name="Freezing Rain Advisory"></value></entry>
|
||||
</map>
|
||||
</phensigColors>
|
Loading…
Add table
Reference in a new issue