localize/create individual Regional.xml scale; RadarMenuUtil revert; BOU localization;radar 4-panel update for lvl3
This commit is contained in:
parent
507cb39462
commit
7397b099f9
16 changed files with 2764 additions and 446 deletions
|
@ -1,8 +1,8 @@
|
|||
### EDEX localization related variables ###
|
||||
export AW_SITE_IDENTIFIER=OAX
|
||||
export AW_SITE_IDENTIFIER=BOU
|
||||
## Cluster id can be set to the cluster's id (example:tbw for dx1-tbwo)
|
||||
## it will be autogenerated if not set
|
||||
export CLUSTER_ID=OAX
|
||||
export CLUSTER_ID=NCF
|
||||
# Change the NCF_HOST to be the IP address of the server acting as the NCF server
|
||||
export DATADELIVERY_HOST=thredds.ucar.edu
|
||||
export EBXML_REGISTRY_FEDERATION_ENABLED=true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<project default="main" basedir=".">
|
||||
<property name="localization.sites" value="OAX" />
|
||||
<property name="localization.sites" value="BOU" />
|
||||
<property name="deploy.python" value="true" />
|
||||
<!--
|
||||
The python packages to deploy - provided that
|
||||
|
|
|
@ -25,12 +25,6 @@
|
|||
<import feature="com.raytheon.viz.text.feature" version="1.0.0.qualifier"/>
|
||||
</requires>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.d2d.ui.local"
|
||||
download-size="0"
|
||||
install-size="0"
|
||||
version="0.0.0"/>
|
||||
|
||||
<plugin
|
||||
id="com.raytheon.uf.viz.d2d.ui.ncephydro"
|
||||
download-size="0"
|
||||
|
|
|
@ -273,6 +273,7 @@
|
|||
name="afterLayoutGroup"
|
||||
visible="true">
|
||||
</separator>
|
||||
<dynamic class="com.raytheon.viz.ui.actions.ToggleToolbarContributionItem" id="com.raytheon.uf.viz.d2d.ui.actions.ToggleToolbarContributionItem"/>
|
||||
</menu>
|
||||
<menu
|
||||
id="options"
|
||||
|
@ -411,6 +412,12 @@
|
|||
</visibleWhen>
|
||||
<separator name="RADAR_MENU_START" visible="false"/>
|
||||
</menu>
|
||||
<menu id="scan" mnemonic="C" label="SCAN">
|
||||
<visibleWhen>
|
||||
<reference definitionId="com.raytheon.uf.viz.d2d.ui.inD2DActionSet"></reference>
|
||||
</visibleWhen>
|
||||
<separator name="SCAN_MENU_START" visible="false"></separator>
|
||||
</menu>
|
||||
|
||||
<menu
|
||||
id="D2Dmaps"
|
||||
|
@ -427,8 +434,22 @@
|
|||
</dynamic>
|
||||
</menu>
|
||||
</menuContribution>
|
||||
<menuContribution
|
||||
locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
|
||||
<menuContribution
|
||||
locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
|
||||
<toolbar id="d2d-1">
|
||||
<command
|
||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.loadmodebutton"
|
||||
id="com.raytheon.uf.viz.d2d.ui.actions.loadmode"
|
||||
label="Load Mode"
|
||||
style="pulldown"
|
||||
tooltip="Load Mode">
|
||||
<visibleWhen>
|
||||
<reference
|
||||
definitionId="com.raytheon.uf.viz.d2d.ui.inD2DActionSet">
|
||||
</reference>
|
||||
</visibleWhen>
|
||||
</command>
|
||||
</toolbar>
|
||||
<toolbar
|
||||
id="mapControls">
|
||||
<command
|
||||
|
@ -465,21 +486,6 @@
|
|||
</visibleWhen>
|
||||
</command>
|
||||
</toolbar>
|
||||
<toolbar
|
||||
id="d2d-1">
|
||||
<command
|
||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.loadmodebutton"
|
||||
id="com.raytheon.uf.viz.d2d.ui.actions.loadmode"
|
||||
label="Load Mode"
|
||||
style="pulldown"
|
||||
tooltip="Load Mode">
|
||||
<visibleWhen>
|
||||
<reference
|
||||
definitionId="com.raytheon.uf.viz.d2d.ui.inD2DActionSet">
|
||||
</reference>
|
||||
</visibleWhen>
|
||||
</command>
|
||||
</toolbar>
|
||||
<toolbar
|
||||
id="loopControls">
|
||||
<command
|
||||
|
@ -972,7 +978,7 @@
|
|||
class="com.raytheon.uf.viz.d2d.ui.map.actions.ToggleResourceHandler"
|
||||
commandId="com.raytheon.viz.ui.actions.toggleResource">
|
||||
<activeWhen>
|
||||
<reference
|
||||
<reference
|
||||
definitionId="com.raytheon.uf.viz.d2d.ui.inD2DActionSet">
|
||||
</reference>
|
||||
</activeWhen>
|
||||
|
@ -992,6 +998,10 @@
|
|||
<handler
|
||||
class="com.raytheon.uf.viz.d2d.ui.actions.ImageCombinationAction"
|
||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.imageCombination">
|
||||
</handler>
|
||||
<handler
|
||||
class="com.raytheon.uf.viz.d2d.ui.actions.ShowHistoryList"
|
||||
commandId="com.raytheon.viz.ui.showHistoryList">
|
||||
</handler>
|
||||
<handler
|
||||
class="com.raytheon.uf.viz.d2d.ui.actions.AddAWIPSProcedure"
|
||||
|
@ -1513,6 +1523,12 @@
|
|||
description="Toggle the image combination option"
|
||||
name="Image Combination">
|
||||
</command>
|
||||
<command
|
||||
id="com.raytheon.viz.ui.showHistoryList"
|
||||
categoryId="com.raytheon.uf.viz.d2d.ui"
|
||||
description="Show the d2d history list"
|
||||
name="Show History List">
|
||||
</command>
|
||||
<command
|
||||
id="com.raytheon.viz.ui.openAWIPSProcedure"
|
||||
categoryId="com.raytheon.uf.viz.d2d.ui"
|
||||
|
|
|
@ -88,78 +88,12 @@ public class ThinClientConnectivityDialog extends ConnectivityPreferenceDialog {
|
|||
private static final transient IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(ThinClientConnectivityDialog.class, "CAVE");
|
||||
|
||||
private class ServicesCallback implements IConnectivityCallback {
|
||||
|
||||
@Override
|
||||
public void connectionChecked(ConnectivityResult results) {
|
||||
servicesGood = results.hasConnectivity;
|
||||
appendDetails(buildDetails(results));
|
||||
if (!results.hasConnectivity && status == null) {
|
||||
status = buildErrorMessage(results);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class PypiesCallback implements IConnectivityCallback {
|
||||
|
||||
@Override
|
||||
public void connectionChecked(ConnectivityResult results) {
|
||||
pypiesGood = results.hasConnectivity;
|
||||
appendDetails(buildDetails(results));
|
||||
if (!results.hasConnectivity && status == null) {
|
||||
status = buildErrorMessage(results);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class JmsCallback implements IConnectivityCallback {
|
||||
|
||||
@Override
|
||||
public void connectionChecked(ConnectivityResult results) {
|
||||
jmsGood = results.hasConnectivity;
|
||||
appendDetails(buildDetails(results));
|
||||
if (!results.hasConnectivity && status == null) {
|
||||
status = buildErrorMessage(results);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean servicesGood = false;
|
||||
|
||||
private IConnectivityCallback servicesCallback = new ServicesCallback();
|
||||
|
||||
private boolean pypiesGood = false;
|
||||
|
||||
private IConnectivityCallback pypiesCallback = new PypiesCallback();
|
||||
|
||||
private boolean useProxy = true;
|
||||
|
||||
private Button alwaysPromptCheck;
|
||||
|
||||
private String dataRefreshMethod;
|
||||
|
||||
private boolean jmsGood = false;
|
||||
|
||||
private boolean alwaysPrompt;
|
||||
|
||||
private IConnectivityCallback jmsCallback = new JmsCallback();
|
||||
|
||||
private String proxyAddress;
|
||||
|
||||
private Button autoPullBtn;
|
||||
|
||||
private Button timedPollBtn;
|
||||
|
||||
private final String dataRefreshTooltip = "Automatic Push: Data pushed as soon as available\n"
|
||||
+ "Timed Poll: Poll for new data at scheduled intervals";
|
||||
|
||||
private final String unableConnectJMS = "\n\nUnable to connect to JMS: Automatic Push disabled";
|
||||
|
||||
private Group dataRefreshGroup;
|
||||
|
||||
public ThinClientConnectivityDialog(boolean checkAlertViz) {
|
||||
super(checkAlertViz, "AWIPS Connectivity Preferences");
|
||||
super(checkAlertViz, "TC Connectivity Preferences");
|
||||
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
|
||||
dataRefreshMethod = store
|
||||
.getString(ThinClientPreferenceConstants.P_DATA_REFRESH_METHOD);
|
||||
|
@ -167,192 +101,4 @@ public class ThinClientConnectivityDialog extends ConnectivityPreferenceDialog {
|
|||
.getString(ThinClientPreferenceConstants.P_PROXY_ADDRESS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String[] getServerOptions() {
|
||||
IPreferenceStore thinPrefs = Activator.getDefault()
|
||||
.getPreferenceStore();
|
||||
return ServerRemembrance.getServerOptions(thinPrefs,
|
||||
ThinClientPreferenceConstants.P_PROXY_SERVER_OPTIONS);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createTextBoxes(Composite textBoxComp) {
|
||||
super.createTextBoxes(textBoxComp);
|
||||
new Label(textBoxComp, SWT.NONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applySettings() {
|
||||
IPersistentPreferenceStore thinStore = Activator.getDefault()
|
||||
.getPreferenceStore();
|
||||
thinStore.setValue(ThinClientPreferenceConstants.P_DATA_REFRESH_METHOD,
|
||||
dataRefreshMethod);
|
||||
thinStore.setValue(ThinClientPreferenceConstants.P_USE_PROXIES,
|
||||
useProxy);
|
||||
|
||||
IPersistentPreferenceStore localStore = LocalizationManager
|
||||
.getInstance().getLocalizationStore();
|
||||
localStore.setValue(
|
||||
LocalizationConstants.P_LOCALIZATION_PROMPT_ON_STARTUP,
|
||||
alwaysPrompt);
|
||||
|
||||
thinStore.setValue(ThinClientPreferenceConstants.P_PROXY_ADDRESS,
|
||||
proxyAddress);
|
||||
String proxyServerOptions = ServerRemembrance.formatServerOptions(
|
||||
proxyAddress, thinStore,
|
||||
ThinClientPreferenceConstants.P_PROXY_SERVER_OPTIONS);
|
||||
thinStore.setValue(
|
||||
ThinClientPreferenceConstants.P_PROXY_SERVER_OPTIONS,
|
||||
proxyServerOptions);
|
||||
|
||||
if (getAlertVizServer() != null) {
|
||||
localStore.setValue(LocalizationConstants.P_ALERT_SERVER,
|
||||
getAlertVizServer());
|
||||
}
|
||||
LocalizationManager.getInstance().setCurrentSite(getSite());
|
||||
|
||||
try {
|
||||
localStore.save();
|
||||
} catch (IOException e) {
|
||||
statusHandler.handle(Priority.SIGNIFICANT,
|
||||
"Unable to persist localization preference store", e);
|
||||
}
|
||||
|
||||
/*
|
||||
* Have to store the thin client preferences either way to remember the
|
||||
* JMS and proxy checkboxes correctly
|
||||
*/
|
||||
try {
|
||||
thinStore.save();
|
||||
} catch (IOException e) {
|
||||
statusHandler
|
||||
.handle(Priority.SIGNIFICANT,
|
||||
"Unable to persist thinclient localization preference store",
|
||||
e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validate() {
|
||||
|
||||
status = null;
|
||||
details = null;
|
||||
|
||||
// If we don't have a localizationSrv yet, try to use the stored
|
||||
// preference value.
|
||||
if (localizationSrv != null) {
|
||||
// validate proxy
|
||||
proxyAddress = fullServerName(localizationSrv.getText().trim());
|
||||
}
|
||||
|
||||
if (proxyAddress != null && proxyAddress.length() > 0) {
|
||||
validateServices();
|
||||
validatePypies();
|
||||
} else {
|
||||
servicesGood = false;
|
||||
pypiesGood = false;
|
||||
status = "";
|
||||
}
|
||||
|
||||
if (localizationSrv != null && !localizationSrv.widget.isDisposed()) {
|
||||
localizationSrv.widget.setForeground(getTextColor(servicesGood
|
||||
&& pypiesGood));
|
||||
}
|
||||
|
||||
validateJms(servicesGood);
|
||||
|
||||
// validate site
|
||||
if (siteText != null && !siteText.isDisposed()) {
|
||||
super.setSite(siteText.getText());
|
||||
}
|
||||
super.validateSite();
|
||||
if (siteText != null && !siteText.isDisposed()) {
|
||||
siteText.setForeground(getTextColor(isSiteGood()));
|
||||
}
|
||||
|
||||
// validate alertviz
|
||||
// apparently alertvizserver == null means it's alertviz itself
|
||||
if (alertVizServer != null) {
|
||||
if (alertVizText != null && !alertVizText.isDisposed()) {
|
||||
setAlertVizServer(alertVizText.getText());
|
||||
}
|
||||
super.validateAlertviz();
|
||||
if (alertVizText != null && !alertVizText.isDisposed()) {
|
||||
alertVizText.setBackground(getTextColor(isAlertVizGood()));
|
||||
}
|
||||
}
|
||||
|
||||
boolean everythingGood = servicesGood && pypiesGood && isSiteGood()
|
||||
&& isAlertVizGood() && jmsGood;
|
||||
updateStatus(everythingGood, status, details);
|
||||
|
||||
return everythingGood;
|
||||
}
|
||||
|
||||
private void validateServices() {
|
||||
ConnectivityManager.checkLocalizationServer(
|
||||
ThinClientUriUtil.getServicesAddress(proxyAddress),
|
||||
servicesCallback);
|
||||
}
|
||||
|
||||
private void validatePypies() {
|
||||
ConnectivityManager.checkHttpServer(
|
||||
ThinClientUriUtil.getPypiesAddress(proxyAddress),
|
||||
pypiesCallback);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates that a connection to JMS works.
|
||||
*
|
||||
* @param hasEdexConnection
|
||||
* if we've successfully connected to edex
|
||||
*/
|
||||
private void validateJms(boolean hasEdexConnection) {
|
||||
if (hasEdexConnection) {
|
||||
try {
|
||||
String server = ThinClientUriUtil
|
||||
.getServicesAddress(proxyAddress);
|
||||
GetServersResponse response = ConnectivityManager
|
||||
.checkLocalizationServer(server, false);
|
||||
ConnectivityManager.checkJmsServer(
|
||||
response.getJmsConnectionString(), jmsCallback);
|
||||
} catch (VizException e) {
|
||||
appendDetails(buildDetails(new ConnectivityResult(false, null,
|
||||
e)));
|
||||
jmsGood = false;
|
||||
}
|
||||
} else {
|
||||
// JMS can't be good if we're not connected to edex cause
|
||||
// then we don't even know where to connect to
|
||||
jmsGood = false;
|
||||
}
|
||||
|
||||
// If display items are not disposed, update them as needed.
|
||||
if (autoPullBtn != null && timedPollBtn != null
|
||||
&& dataRefreshGroup != null && !autoPullBtn.isDisposed()
|
||||
&& !timedPollBtn.isDisposed() && !dataRefreshGroup.isDisposed()) {
|
||||
if (jmsGood && !autoPullBtn.isEnabled()) {
|
||||
autoPullBtn.setEnabled(true);
|
||||
autoPullBtn.setSelection(true);
|
||||
timedPollBtn.setSelection(false);
|
||||
dataRefreshMethod = ThinClientPreferenceConstants.P_DATA_REFRESH_METHOD_PUSH;
|
||||
dataRefreshGroup.setToolTipText(dataRefreshTooltip);
|
||||
} else if (!jmsGood && autoPullBtn.isEnabled()) {
|
||||
autoPullBtn.setEnabled(false);
|
||||
autoPullBtn.setSelection(false);
|
||||
timedPollBtn.setSelection(true);
|
||||
dataRefreshMethod = ThinClientPreferenceConstants.P_DATA_REFRESH_METHOD_POLL;
|
||||
dataRefreshGroup.setToolTipText(dataRefreshTooltip
|
||||
+ unableConnectJMS);
|
||||
}
|
||||
}
|
||||
if (!jmsGood
|
||||
&& (dataRefreshMethod
|
||||
.equals(ThinClientPreferenceConstants.P_DATA_REFRESH_METHOD_POLL))) {
|
||||
// Since JMS is now disabled, we're in a good state.
|
||||
jmsGood = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,323 @@
|
|||
<?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.
|
||||
-->
|
||||
<!-- loads four panel base data, looks like this
|
||||
|
||||
+++++++++++++++++++++++
|
||||
+ DHR DVL + SRM V +
|
||||
+++++++++++++++++++++++
|
||||
+ KDP HC + EET +
|
||||
+++++++++++++++++++++++
|
||||
|
||||
substitution keys:
|
||||
product the productCode to load
|
||||
elev a range of elevations to load seperated by two dashes.
|
||||
-->
|
||||
<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="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="blendedResourceData">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="radarResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" >
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="32"
|
||||
constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${icao}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}"
|
||||
constraintType="BETWEEN" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="radarResourceData" mode="SRM8"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true" >
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="134"
|
||||
constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${icao}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}"
|
||||
constraintType="BETWEEN" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
<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="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="blendedResourceData">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="radarResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="56"
|
||||
constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${icao}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}"
|
||||
constraintType="BETWEEN" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability"
|
||||
interpolationState="false" brightness="1.0" contrast="1.0"
|
||||
alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false"
|
||||
isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="radarResourceData"
|
||||
isUpdatingOnMetadataOnly="false"
|
||||
isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="99"
|
||||
constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${icao}"
|
||||
constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}"
|
||||
constraintType="BETWEEN" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
|
||||
<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="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="blendedResourceData">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="radarResourceData" isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="163" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${icao}" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}" constraintType="BETWEEN" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="radarResourceData" isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="177" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${icao}" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}" constraintType="BETWEEN" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays><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="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="blendedResourceData">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="true">
|
||||
<capabilities>
|
||||
<capability xsi:type="imagingCapability" interpolationState="false" brightness="1.0" contrast="1.0" alpha="1.0" />
|
||||
<capability xsi:type="rangeRingsOverlayCapability" />
|
||||
</capabilities>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="false" isHoverOn="false" isVisible="true">
|
||||
</properties>
|
||||
<resourceData xsi:type="radarResourceData" isUpdatingOnMetadataOnly="false" isRequeryNecessaryOnTimeMatch="true">
|
||||
<metadataMap>
|
||||
<mapping key="productCode">
|
||||
<constraint constraintValue="135" constraintType="IN" />
|
||||
</mapping>
|
||||
<mapping key="icao">
|
||||
<constraint constraintValue="${icao}" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="pluginName">
|
||||
<constraint constraintValue="radar" constraintType="EQUALS" />
|
||||
</mapping>
|
||||
<mapping key="primaryElevationAngle">
|
||||
<constraint constraintValue="${elevation}" constraintType="BETWEEN" />
|
||||
</mapping>
|
||||
</metadataMap>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</resourceData>
|
||||
</resource>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
|
@ -7,15 +7,19 @@
|
|||
________________________Omaha,_NE_68106 ________________________402.291.0100
|
||||
See_the_AWIPS_II_Master_Rights_File_("Master_Rights_File.pdf")_for further_licensing_information. -->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="subMenu" menuText="NEXRAD Stations"
|
||||
<contribute xsi:type="subMenu" menuText="NEXRAD - Local"
|
||||
id="RadarMenuDialRadarsSubMenu">
|
||||
<contribute xsi:type="subinclude" fileName="menus/radar/dialRadars.xml" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="NEXRAD - All"
|
||||
id="RadarMenuDialAllRadarsSubMenu">
|
||||
<contribute xsi:type="subinclude" fileName="menus/radar/dialAllRadars.xml" />
|
||||
</contribute>
|
||||
<contribute xsi:type="subMenu" menuText="TDWR Stations"
|
||||
id="RadarMenuTwdrRadarsSubMenu">
|
||||
<contribute xsi:type="subinclude" fileName="menus/radar/tdwrRadars.xml" />
|
||||
</contribute>
|
||||
<contribute xsi:type="titleItem" titleText="------ FNEXRAD Composites ------"
|
||||
<contribute xsi:type="titleItem" titleText="------ CONUS Composites ------"
|
||||
id="RadarMosaic" />
|
||||
<!-- Unidata Composite -->
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarComposite.xml"
|
||||
|
@ -54,7 +58,7 @@
|
|||
<substitute key="colormap" value="Radar/8-bit STP"/>
|
||||
<substitute key="interpolate" value="true"/>
|
||||
</contribute>
|
||||
<contribute xsi:type="titleItem" titleText="------ Mosaic ------"
|
||||
<contribute xsi:type="titleItem" titleText="------ Local Mosaic ------"
|
||||
id="RadarMosaic" />
|
||||
<contribute xsi:type="bundleItem" file="bundles/DefaultRadarMosaic.xml"
|
||||
menuText="N0Q - Base Reflectivity" id="Radar05Reflectivity">
|
||||
|
|
|
@ -19,6 +19,12 @@
|
|||
further_licensing_information.
|
||||
-->
|
||||
<menuTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<contribute xsi:type="bundleItem"
|
||||
file="bundles/DefaultRadarFourPanel.xml" menuText="4-Panel Z+DVL/SRM+V/KDP+HC/EET"
|
||||
id="05dualpolbasedata">
|
||||
<substitute key="icao" value="${icao}" />
|
||||
<substitute key="elevation" value="0.0--0.5" />
|
||||
</contribute>
|
||||
<contribute xsi:type="titleItem" id="${icao}4PanelZ+SRMZDR+VKDP+HCCC+SW"
|
||||
titleText="------ 4-Panel Z+SRM/ZDR+V/KDP+HC/CC ------" />
|
||||
<contribute xsi:type="bundleItem"
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,7 +16,7 @@ deploy.gfesuite=true
|
|||
esb.overwrite=false
|
||||
# a colon (:) separated list of localization sites; the associated
|
||||
# localization files will be deployed for the specified site.
|
||||
localization.sites=OAX
|
||||
localization.sites=BOU
|
||||
|
||||
# the python installation directory.
|
||||
python.root.directory=/awips2/python
|
||||
|
@ -33,4 +33,4 @@ python.version.dir=python2.7
|
|||
edex.feature=com.raytheon.edex.feature.uframe/feature.xml
|
||||
# the name of the Work Assignment EDEX feature -
|
||||
# this feature must exist in a Work Assignment to deploy it.
|
||||
wa.edex.feature=com.raytheon.edex.wa.feature/feature.xml
|
||||
wa.edex.feature=com.raytheon.edex.wa.feature/feature.xml
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
</condition>
|
||||
|
||||
<!-- Set the edex localization site -->
|
||||
<property name="def.site.identifier" value="OAX"/>
|
||||
<property name="def.site.identifier" value="BOU"/>
|
||||
<condition property="site.identifier" value="%siteIdentifier" else="${def.site.identifier}">
|
||||
<isset property="installer"/>
|
||||
</condition>
|
||||
|
@ -187,4 +187,4 @@
|
|||
<filter token="SITE_IDENTIFIER" value="${site.identifier}" />
|
||||
<filter token="INSTALL_PATH" value="${install.path}" />
|
||||
<filter token="INSTALL_PATH_D" value="${install.path.d}" />
|
||||
</filterset>
|
||||
</filterset>
|
||||
|
|
|
@ -93,19 +93,91 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
|
|||
public void createMenus() {
|
||||
statusHandler.info("Creating radar menus...");
|
||||
|
||||
// retrieve the local radars from
|
||||
// radarsInUse.txt
|
||||
RadarsInUseUtil.setParsed(false);
|
||||
VariableSubstitution[] vars = null;
|
||||
// loop through all the radars
|
||||
Map<String, List<Double>> map = TerminalRadarUtils
|
||||
.parseTerminalRadarFile();
|
||||
List<String> radars = RadarsInUseUtil.getSite(getSite(),
|
||||
RadarsInUseUtil.LOCAL_CONSTANT);
|
||||
|
||||
String path = "menus" + File.separator + "radar" + File.separator;
|
||||
CommonMenuContributionFile menuContributionFile = new CommonMenuContributionFile();
|
||||
CommonIncludeMenuItem includeMenuItem = null;
|
||||
VariableSubstitution[] vars = null;
|
||||
if (radars.size() == 0) {
|
||||
menuContributionFile.contribution = new CommonIncludeMenuItem[1];
|
||||
} else {
|
||||
menuContributionFile.contribution = new CommonIncludeMenuItem[radars
|
||||
.size()];
|
||||
}
|
||||
// loop through all the radars
|
||||
Map<String, List<Double>> map = TerminalRadarUtils
|
||||
.parseTerminalRadarFile();
|
||||
if (radars.size() > 0) {
|
||||
for (int i = radars.size() - 1; i >= 0; i--) {
|
||||
includeMenuItem = new CommonIncludeMenuItem();
|
||||
// check for terminal radars
|
||||
boolean terminal = TerminalRadarUtils.isTerminalRadar(radars
|
||||
.get(i).toLowerCase());
|
||||
if (terminal) {
|
||||
includeMenuItem.fileName = new File(path + "dualPol"
|
||||
+ File.separator + "baseTerminalLocalRadarMenu.xml");
|
||||
List<Double> elevations = map.get(radars.get(i));
|
||||
vars = new VariableSubstitution[(elevations.size() + 1)
|
||||
+ NUM_POSSIBLE_RADARS + 1];
|
||||
vars[0] = new VariableSubstitution();
|
||||
vars[0].key = "icao";
|
||||
vars[0].value = radars.get(i);
|
||||
for (int j = 1; j <= elevations.size(); j++) {
|
||||
vars[j] = new VariableSubstitution();
|
||||
vars[j].key = "elev" + (j - 1);
|
||||
vars[j].value = String.valueOf(elevations.get(j - 1));
|
||||
}
|
||||
for (int j = 1; j <= elevations.size(); j++) {
|
||||
vars[j + elevations.size()] = new VariableSubstitution();
|
||||
vars[j + elevations.size()].key = "suppressErrors"
|
||||
+ (j - 1);
|
||||
vars[j + elevations.size()].value = "false";
|
||||
}
|
||||
for (int j = elevations.size() + 1; j <= NUM_POSSIBLE_RADARS; j++) {
|
||||
vars[j + elevations.size()] = new VariableSubstitution();
|
||||
vars[j + elevations.size()].key = "suppressErrors"
|
||||
+ (j - 1);
|
||||
vars[j + elevations.size()].value = "true";
|
||||
}
|
||||
includeMenuItem.substitutions = vars;
|
||||
} else {
|
||||
if (SsssRadarUtil.isSsssRadar(radars.get(i).toLowerCase())) {
|
||||
String ssssRadar = radars.get(i).toLowerCase();
|
||||
includeMenuItem.fileName = new File(path + ssssRadar
|
||||
+ File.separator + "baseLocalRadarMenu.xml");
|
||||
} else {
|
||||
includeMenuItem.fileName = new File(path + "dualPol"
|
||||
+ File.separator + "baseLocalRadarMenu.xml");
|
||||
}
|
||||
vars = new VariableSubstitution[1];
|
||||
vars[0] = new VariableSubstitution();
|
||||
vars[0].key = "icao";
|
||||
vars[0].value = radars.get(i);
|
||||
includeMenuItem.substitutions = vars;
|
||||
}
|
||||
includeMenuItem.visibleOnActionSet = new String[] { "com.raytheon.uf.viz.d2d.ui.D2DActionSet" };
|
||||
includeMenuItem.installationLocation = "menu:org.eclipse.ui.main.menu?after=satellite";
|
||||
menuContributionFile.contribution[radars.size() - 1 - i] = includeMenuItem;
|
||||
}
|
||||
} else {
|
||||
includeMenuItem = new CommonIncludeMenuItem();
|
||||
menuContributionFile.contribution[0] = includeMenuItem;
|
||||
menuContributionFile.contribution[0].fileName = new File("");
|
||||
}
|
||||
|
||||
// Build radar menu for all stations
|
||||
List<String> radars = RadarsInUseUtil.getSite(getSite(),
|
||||
RadarsInUseUtil.MOSAIC_CONSTANT);
|
||||
toXml(menuContributionFile, "menus" + File.separator + "radar"
|
||||
+ File.separator + "index.xml");
|
||||
|
||||
// now on to dial radars
|
||||
radars = RadarsInUseUtil.getSite(getSite(),
|
||||
RadarsInUseUtil.DIAL_CONSTANT);
|
||||
|
||||
// create MenuTemplateFile for the dialRadars.xml
|
||||
MenuTemplateFile menuTemplateFile = new MenuTemplateFile();
|
||||
menuTemplateFile.contributions = new CommonIncludeMenuContribution[radars
|
||||
.size()];
|
||||
|
@ -167,121 +239,8 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
|
|||
}
|
||||
|
||||
Arrays.sort(menuTemplateFile.contributions);
|
||||
// only want 18 radars in the dial radar menu, otherwise put it in
|
||||
// only want 12 radars in the dial radar menu, otherwise put it in
|
||||
// submenus
|
||||
if (menuTemplateFile.contributions.length > 18) {
|
||||
double numMenus = Math
|
||||
.ceil(((double) menuTemplateFile.contributions.length) / 18);
|
||||
int perMenu = (int) (menuTemplateFile.contributions.length
|
||||
/ numMenus + 1);
|
||||
statusHandler.info("For " + menuTemplateFile.contributions.length
|
||||
+ " dial radars, menus have increased to " + (int) numMenus
|
||||
+ " with an average of " + perMenu + " per menu");
|
||||
List<CommonAbstractMenuContribution> list = Arrays
|
||||
.asList(menuTemplateFile.contributions);
|
||||
menuTemplateFile.contributions = new CommonSubmenuContribution[(int) numMenus];
|
||||
|
||||
int count = 0;
|
||||
for (int i = 0; i < numMenus; i++) {
|
||||
menuTemplateFile.contributions[i] = new CommonSubmenuContribution();
|
||||
int numCount = 0;
|
||||
if (list.size() - count < perMenu) {
|
||||
numCount = list.size() - count;
|
||||
((CommonSubmenuContribution) menuTemplateFile.contributions[i]).contributions = new CommonIncludeMenuContribution[list
|
||||
.size() - count];
|
||||
((CommonSubmenuContribution) menuTemplateFile.contributions[i]).menuText = ((CommonIncludeMenuContribution) list
|
||||
.get(count)).substitutions[0].value
|
||||
+ "-"
|
||||
+ ((CommonIncludeMenuContribution) list.get(perMenu
|
||||
* i + list.size() - count - 1)).substitutions[0].value;
|
||||
} else {
|
||||
numCount = perMenu;
|
||||
((CommonSubmenuContribution) menuTemplateFile.contributions[i]).contributions = new CommonIncludeMenuContribution[perMenu];
|
||||
((CommonSubmenuContribution) menuTemplateFile.contributions[i]).menuText = ((CommonIncludeMenuContribution) list
|
||||
.get(count)).substitutions[0].value
|
||||
+ "-"
|
||||
+ ((CommonIncludeMenuContribution) list.get(perMenu
|
||||
* (i + 1) - 1)).substitutions[0].value;
|
||||
}
|
||||
for (int j = 0; j < numCount; j++) {
|
||||
((CommonSubmenuContribution) menuTemplateFile.contributions[i]).contributions[j] = list
|
||||
.get(count);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
toXml(menuTemplateFile, "menus" + File.separator + "radar"
|
||||
+ File.separator + "dialRadars.xml");
|
||||
|
||||
// now on to TDWR radars
|
||||
radars = RadarsInUseUtil.getSite(getSite(),
|
||||
RadarsInUseUtil.TDWR_CONSTANT);
|
||||
|
||||
// create MenuTemplateFile for the dialRadars.xml
|
||||
menuTemplateFile = new MenuTemplateFile();
|
||||
menuTemplateFile.contributions = new CommonIncludeMenuContribution[radars
|
||||
.size()];
|
||||
|
||||
includeMenuContribution = null;
|
||||
for (int i = radars.size() - 1; i >= 0; i--) {
|
||||
includeMenuContribution = new CommonIncludeMenuContribution();
|
||||
includeMenuContribution.substitutions = vars;
|
||||
|
||||
boolean terminal = TerminalRadarUtils.isTerminalRadar(radars.get(i)
|
||||
.toLowerCase());
|
||||
if (terminal) {
|
||||
List<Double> elevations = map.get(radars.get(i));
|
||||
includeMenuContribution.fileName = new File(path + "dualPol"
|
||||
+ File.separator + File.separator
|
||||
+ "baseTerminalLocalRadarMenu.xml");
|
||||
vars = new VariableSubstitution[(elevations.size() + 1)
|
||||
+ NUM_POSSIBLE_RADARS + 1];
|
||||
vars[0] = new VariableSubstitution();
|
||||
vars[0].key = "icao";
|
||||
vars[0].value = radars.get(i);
|
||||
for (int j = 1; j <= elevations.size(); j++) {
|
||||
vars[j] = new VariableSubstitution();
|
||||
vars[j].key = "elev" + (j - 1);
|
||||
vars[j].value = String.valueOf(elevations.get(j - 1));
|
||||
}
|
||||
for (int j = 1; j <= elevations.size(); j++) {
|
||||
vars[j + elevations.size()] = new VariableSubstitution();
|
||||
vars[j + elevations.size()].key = "suppressErrors"
|
||||
+ (j - 1);
|
||||
vars[j + elevations.size()].value = "false";
|
||||
}
|
||||
for (int j = elevations.size() + 1; j <= NUM_POSSIBLE_RADARS; j++) {
|
||||
vars[j + elevations.size()] = new VariableSubstitution();
|
||||
vars[j + elevations.size()].key = "suppressErrors"
|
||||
+ (j - 1);
|
||||
vars[j + elevations.size()].value = "true";
|
||||
}
|
||||
includeMenuContribution.substitutions = vars;
|
||||
terminal = true;
|
||||
} else {
|
||||
if (SsssRadarUtil.isSsssRadar(radars.get(i).toLowerCase())) {
|
||||
String ssssRadar = radars.get(i).toLowerCase();
|
||||
includeMenuContribution.fileName = new File(path
|
||||
+ ssssRadar + File.separator
|
||||
+ "baseLocalRadarMenu.xml");
|
||||
} else {
|
||||
includeMenuContribution.fileName = new File(path
|
||||
+ "dualPol" + File.separator
|
||||
+ "baseLocalRadarMenu.xml");
|
||||
}
|
||||
vars = new VariableSubstitution[1];
|
||||
vars[0] = new VariableSubstitution();
|
||||
vars[0].key = "icao";
|
||||
vars[0].value = radars.get(i);
|
||||
includeMenuContribution.substitutions = vars;
|
||||
}
|
||||
menuTemplateFile.contributions[radars.size() - 1 - i] = includeMenuContribution;
|
||||
}
|
||||
|
||||
Arrays.sort(menuTemplateFile.contributions);
|
||||
|
||||
// only want 12 radars in each menu, otherwise put it in submenus
|
||||
if (menuTemplateFile.contributions.length > 12) {
|
||||
double numMenus = Math
|
||||
.ceil(((double) menuTemplateFile.contributions.length) / 12);
|
||||
|
@ -325,7 +284,68 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
|
|||
}
|
||||
|
||||
toXml(menuTemplateFile, "menus" + File.separator + "radar"
|
||||
+ File.separator + "tdwrRadars.xml");
|
||||
+ File.separator + "dialRadars.xml");
|
||||
|
||||
CommonSubmenuContribution submenuContribution = new CommonSubmenuContribution();
|
||||
List<CommonAbstractMenuContribution> contributions = new ArrayList<CommonAbstractMenuContribution>();
|
||||
|
||||
// now on to asr radars
|
||||
radars = RadarsInUseUtil.getSite(getSite(),
|
||||
RadarsInUseUtil.ASR_CONSTANT);
|
||||
if (!radars.isEmpty()) {
|
||||
submenuContribution.contributions = new CommonAbstractMenuContribution[radars
|
||||
.size()];
|
||||
submenuContribution.menuText = "ASR-11 Radar";
|
||||
submenuContribution.id = "asr11radarsubmenu";
|
||||
menuTemplateFile = new MenuTemplateFile();
|
||||
for (int i = radars.size() - 1; i >= 0; i--) {
|
||||
includeMenuContribution = new CommonIncludeMenuContribution();
|
||||
vars = new VariableSubstitution[1];
|
||||
vars[0] = new VariableSubstitution();
|
||||
vars[0] = new VariableSubstitution();
|
||||
vars[0].key = "icao";
|
||||
vars[0].value = radars.get(i);
|
||||
includeMenuContribution.substitutions = vars;
|
||||
includeMenuContribution.fileName = new File(path + "dualPol"
|
||||
+ File.separator + "asrRadars.xml");
|
||||
submenuContribution.contributions[i] = includeMenuContribution;
|
||||
}
|
||||
contributions.add(submenuContribution);
|
||||
}
|
||||
|
||||
// now on to arsr radars
|
||||
radars = RadarsInUseUtil.getSite(getSite(),
|
||||
RadarsInUseUtil.ARSR_CONSTANT);
|
||||
if (!radars.isEmpty()) {
|
||||
submenuContribution = new CommonSubmenuContribution();
|
||||
submenuContribution.contributions = new CommonAbstractMenuContribution[radars
|
||||
.size()];
|
||||
submenuContribution.menuText = "ARSR-4 Radar";
|
||||
submenuContribution.id = "arsr4radarsubmenu";
|
||||
for (int i = radars.size() - 1; i >= 0; i--) {
|
||||
includeMenuContribution = new CommonIncludeMenuContribution();
|
||||
vars = new VariableSubstitution[1];
|
||||
vars[0] = new VariableSubstitution();
|
||||
vars[0].key = "icao";
|
||||
vars[0].value = radars.get(i);
|
||||
includeMenuContribution.fileName = new File(path + "dualPol"
|
||||
+ File.separator + "arsrRadars.xml");
|
||||
includeMenuContribution.substitutions = vars;
|
||||
submenuContribution.contributions[radars.size() - 1 - i] = includeMenuContribution;
|
||||
}
|
||||
contributions.add(submenuContribution);
|
||||
}
|
||||
if (contributions.isEmpty()) {
|
||||
CommonSeparatorMenuContribution separatorCont = new CommonSeparatorMenuContribution();
|
||||
separatorCont.id = "emptyAirportRadarId";
|
||||
contributions.add(separatorCont);
|
||||
}
|
||||
menuTemplateFile.contributions = contributions
|
||||
.toArray(new CommonAbstractMenuContribution[contributions
|
||||
.size()]);
|
||||
|
||||
toXml(menuTemplateFile, "menus" + File.separator + "radar"
|
||||
+ File.separator + "airportRadars.xml");
|
||||
|
||||
menuContributionFile = new CommonMenuContributionFile();
|
||||
|
||||
|
|
|
@ -2,20 +2,16 @@
|
|||
# LOCAL_RADARS (including terminal) - MUST HAVE THIS LINE
|
||||
|
||||
# DIAL_RADARS - MUST HAVE THIS LINE
|
||||
kabr
|
||||
kpux
|
||||
kcys
|
||||
kdmx
|
||||
kgjx
|
||||
kgld
|
||||
kuex
|
||||
keax
|
||||
karx
|
||||
kmpx
|
||||
klnx
|
||||
kdvn
|
||||
kudx
|
||||
kfsd
|
||||
ktwx
|
||||
tmsp
|
||||
kddc
|
||||
kama
|
||||
kabx
|
||||
|
||||
# TDWR_RADARS - MUST HAVE THIS LINE
|
||||
tadw
|
||||
|
|
|
@ -52,7 +52,6 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* Jul 14, 2010 mnash Initial creation
|
||||
* Feb 15, 2016 5244 nabowle Replace deprecated LocalizationFile methods.
|
||||
* Jun 23, 2016 mjames@ucar Add TDWR radars
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
|
@ -76,8 +75,6 @@ public class RadarsInUseUtil {
|
|||
|
||||
public static final String MOSAIC_CONSTANT = "MOSAIC_RADARS";
|
||||
|
||||
public static final String TDWR_CONSTANT = "TDWR_RADARS";
|
||||
|
||||
private static final IUFStatusHandler handler = UFStatus
|
||||
.getHandler(RadarsInUseUtil.class);
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ if [ -d ${RPM_BUILD_ROOT} ]; then
|
|||
fi
|
||||
|
||||
%build
|
||||
# Build all WFO site localization Map Scales (States.xml, WFO.xml)
|
||||
# Build all WFO site localization Map Scales (Regional.xml, States.xml, WFO.xml)
|
||||
BUILD_DIR=%{_baseline_workspace}/rpms/awips2.core/Installer.localization/
|
||||
UTIL=%{_baseline_workspace}/localization/utility
|
||||
file=$BUILD_DIR/wfo.dat
|
||||
|
|
|
@ -0,0 +1,150 @@
|
|||
<?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.
|
||||
-->
|
||||
<bundle>
|
||||
<displayList>
|
||||
<displays xsi:type="d2DMapRenderableDisplay" scale="Regional" density="1.0" magnification="1.0" zoomLevel="1.0" mapCenter="LONGITUDE LATITUDE 0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<descriptor xsi:type="mapDescriptor">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b"/>
|
||||
</capabilities>
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
</loadProperties>
|
||||
<properties renderingOrderId="MAP_OUTLINE" isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" opacity="1.0" isVisible="true">
|
||||
<pdProps maxDisplayWidth="100000000" minDisplayWidth="0"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="mapResourceGroupData">
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b"/>
|
||||
</capabilities>
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" opacity="1.0" isVisible="true">
|
||||
<pdProps maxDisplayWidth="100000000" minDisplayWidth="0"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="dbMapResourceData">
|
||||
<mapName>World</mapName>
|
||||
<table>mapdata.world</table>
|
||||
<geomField>the_geom</geomField>
|
||||
<constraint>name not in ('CANADA', 'MEXICO', 'UNITED STATES')</constraint>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b"/>
|
||||
</capabilities>
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" opacity="1.0" isVisible="true">
|
||||
<pdProps maxDisplayWidth="100000000" minDisplayWidth="750000"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="dbMapResourceData">
|
||||
<mapName>State Boundaries</mapName>
|
||||
<table>mapdata.states</table>
|
||||
<geomField>the_geom</geomField>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b"/>
|
||||
</capabilities>
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" opacity="1.0" isVisible="true">
|
||||
<pdProps maxDisplayWidth="100000000" minDisplayWidth="0"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="dbMapResourceData">
|
||||
<mapName>Canada</mapName>
|
||||
<table>mapdata.canada</table>
|
||||
<geomField>the_geom</geomField>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b"/>
|
||||
</capabilities>
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" opacity="1.0" isVisible="true">
|
||||
<pdProps maxDisplayWidth="100000000" minDisplayWidth="0"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="dbMapResourceData">
|
||||
<mapName>Mexico</mapName>
|
||||
<table>mapdata.mexico</table>
|
||||
<geomField>the_geom</geomField>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<resource>
|
||||
<loadProperties loadWithoutData="false">
|
||||
<capabilities>
|
||||
<capability xsi:type="outlineCapability" lineStyle="SOLID" outlineOn="true" outlineWidth="1"/>
|
||||
<capability xsi:type="colorableCapability" colorAsString="#9b9b9b"/>
|
||||
</capabilities>
|
||||
<resourceType>PLAN_VIEW</resourceType>
|
||||
</loadProperties>
|
||||
<properties isSystemResource="false" isBlinking="false" isMapLayer="true" isHoverOn="false" opacity="1.0" isVisible="true">
|
||||
<pdProps maxDisplayWidth="750000" minDisplayWidth="0"/>
|
||||
</properties>
|
||||
<resourceData xsi:type="dbMapResourceData">
|
||||
<mapName>County Boundaries</mapName>
|
||||
<table>mapdata.county</table>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<mapName>State/County Boundaries</mapName>
|
||||
</resourceData>
|
||||
</resource>
|
||||
<timeMatcher xsi:type="d2DTimeMatcher" loadMode="VALID_TIME_SEQ" deltaFilter="0" forecastFilter="0"/>
|
||||
<numberOfFrames>12</numberOfFrames>
|
||||
<gridGeometry envelopeMaxY="2901076.347219158" envelopeMinY="810930.3906458529" envelopeMaxX="697573.8190745931" envelopeMinX="-1392571.7793350497" rangeY="0 9999" rangeX="0 9999">
|
||||
<CRS>PROJCS["Lambert_Conformal_Conic_1SP",
|
||||
GEOGCS["WGS84(DD)",
|
||||
DATUM["WGS84",
|
||||
SPHEROID["WGS84", 6378137.0, 298.257223563]],
|
||||
PRIMEM["Greenwich", 0.0],
|
||||
UNIT["degree", 0.017453292519943295],
|
||||
AXIS["Geodetic longitude", EAST],
|
||||
AXIS["Geodetic latitude", NORTH]],
|
||||
PROJECTION["Lambert_Conformal_Conic_1SP"],
|
||||
PARAMETER["semi_major", 6371200.0],
|
||||
PARAMETER["semi_minor", 6371200.0],
|
||||
PARAMETER["central_meridian", LONGITUDE],
|
||||
PARAMETER["latitude_of_origin", LATITUDE],
|
||||
PARAMETER["false_easting", 0.0],
|
||||
PARAMETER["false_northing", 0.0],
|
||||
UNIT["m", 1.0],
|
||||
AXIS["Easting", EAST],
|
||||
AXIS["Northing", NORTH]]</CRS>
|
||||
</gridGeometry>
|
||||
</descriptor>
|
||||
</displays>
|
||||
</displayList>
|
||||
</bundle>
|
Loading…
Add table
Reference in a new issue