TDWR menu separate from NEXRAD sites

This commit is contained in:
AWIPS User 2015-04-22 17:28:24 -06:00
parent 24949388e5
commit aa23b0afe0
2 changed files with 123 additions and 4 deletions

View file

@ -280,9 +280,125 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
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 the dial radar menu, otherwise put it in
// submenus
if (menuTemplateFile.contributions.length > 12) {
double numMenus = Math
.ceil(((double) menuTemplateFile.contributions.length) / 12);
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 + "tdwrRadars.xml");
/* // Unidata comment out
CommonSubmenuContribution submenuContribution = new CommonSubmenuContribution();
List<CommonAbstractMenuContribution> contributions = new ArrayList<CommonAbstractMenuContribution>();
/*
// now on to asr radars
radars = RadarsInUseUtil.getSite(getSite(),
RadarsInUseUtil.ASR_CONSTANT);
@ -334,14 +450,16 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
separatorCont.id = "emptyAirportRadarId";
contributions.add(separatorCont);
}
*/
menuTemplateFile.contributions = contributions
.toArray(new CommonAbstractMenuContribution[contributions
.size()]);
toXml(menuTemplateFile, "menus" + File.separator + "radar"
+ File.separator + "airportRadars.xml");
*/
// NEXRAD Menu Creation
menuContributionFile = new CommonMenuContributionFile();
menuContributionFile.contribution = new CommonIncludeMenuItem[1];
@ -362,7 +480,6 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
toXml(menuContributionFile, "menus" + File.separator + "radar"
+ File.separator + "radarindex.xml");
statusHandler.info("Finished processing radar menus.");
}
public void setSkipParse(boolean rebuild) {

View file

@ -72,6 +72,8 @@ 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);