RadarMenuUtil update for osx

This commit is contained in:
Michael James 2016-09-28 15:56:48 -06:00
parent ffa67d830c
commit 8c1044a50f

View file

@ -93,19 +93,91 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
public void createMenus() { public void createMenus() {
statusHandler.info("Creating radar menus..."); statusHandler.info("Creating radar menus...");
// retrieve the local radars from
// radarsInUse.txt
RadarsInUseUtil.setParsed(false); RadarsInUseUtil.setParsed(false);
VariableSubstitution[] vars = null; List<String> radars = RadarsInUseUtil.getSite(getSite(),
// loop through all the radars RadarsInUseUtil.LOCAL_CONSTANT);
Map<String, List<Double>> map = TerminalRadarUtils
.parseTerminalRadarFile();
String path = "menus" + File.separator + "radar" + File.separator; String path = "menus" + File.separator + "radar" + File.separator;
CommonMenuContributionFile menuContributionFile = new CommonMenuContributionFile(); CommonMenuContributionFile menuContributionFile = new CommonMenuContributionFile();
CommonIncludeMenuItem includeMenuItem = null; 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 toXml(menuContributionFile, "menus" + File.separator + "radar"
List<String> radars = RadarsInUseUtil.getSite(getSite(), + File.separator + "index.xml");
RadarsInUseUtil.MOSAIC_CONSTANT);
// now on to dial radars
radars = RadarsInUseUtil.getSite(getSite(),
RadarsInUseUtil.DIAL_CONSTANT);
// create MenuTemplateFile for the dialRadars.xml
MenuTemplateFile menuTemplateFile = new MenuTemplateFile(); MenuTemplateFile menuTemplateFile = new MenuTemplateFile();
menuTemplateFile.contributions = new CommonIncludeMenuContribution[radars menuTemplateFile.contributions = new CommonIncludeMenuContribution[radars
.size()]; .size()];
@ -167,121 +239,8 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
} }
Arrays.sort(menuTemplateFile.contributions); 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 // 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) { if (menuTemplateFile.contributions.length > 12) {
double numMenus = Math double numMenus = Math
.ceil(((double) menuTemplateFile.contributions.length) / 12); .ceil(((double) menuTemplateFile.contributions.length) / 12);
@ -325,7 +284,68 @@ public class RadarMenuUtil extends AbstractMenuUtil implements
} }
toXml(menuTemplateFile, "menus" + File.separator + "radar" 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(); menuContributionFile = new CommonMenuContributionFile();