RadarMenuUtil update for osx
This commit is contained in:
parent
ffa67d830c
commit
8c1044a50f
1 changed files with 142 additions and 122 deletions
|
@ -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();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue