From f53eb8789277dd1d3e469d81ac88e9a129905c02 Mon Sep 17 00:00:00 2001 From: Steve Harris Date: Wed, 4 Dec 2013 16:47:59 -0500 Subject: [PATCH] 14.1.1-12 baseline Former-commit-id: a3ec45a99fdec83a3341c20a5e0473c9c7e19c0c [formerly b24d9c80b0a67a6e48445a34ef714eb1477c4bee [formerly 3b3b8ffbdadc65f41b67f2d649ec18e19521c989]] Former-commit-id: b24d9c80b0a67a6e48445a34ef714eb1477c4bee Former-commit-id: 371d1ca63c846703cd32cb1a3c8f2ba2a4c7b08a --- .../etc/gfe/userPython/gfeConfig/gfeConfig.py | 21 +- .../viz/alertviz/ui/audio/AlarmBeepJob.java | 9 +- .../monitor/ffmp/ui/dialogs/FFMPTable.java | 10 +- .../ffmp/ui/dialogs/TimeDurScaleComp.java | 25 ++- .../uf/viz/monitor/scan/tables/SCANTable.java | 4 +- .../uf/viz/monitor/ui/dialogs/TableComp.java | 8 + .../aviation/climatology/WindRosePlotDlg.java | 23 +- .../localization/fonts/VeraMono.ttf | Bin 49224 -> 0 bytes .../dialogs/AbstractSaveParameterDialog.java | 8 +- .../viz/gfe/dialogs/WERevertDialog.java | 6 +- .../formatterlauncher/StyledTextComp.java | 86 +++---- .../com/raytheon/viz/gfe/rsc/GFEFonts.java | 5 +- cave/com.raytheon.viz.radar/plugin.xml | 8 + .../radar/rsc/graphic/RadarGraphicsPage.java | 210 +++++++++--------- .../dialogs/AlarmDisplayWindow.java | 8 +- .../alarmalert/util/AlarmBeepJob.java | 7 +- .../raytheon/edex/ingestsrv/DupElimSrv.java | 2 +- .../process/AbstractProcessLauncher.cs | 11 +- .../process/impl/CaveProcessLauncher.cs | 11 +- .../A2Staging/VisualStudio/VizLauncher.exe | Bin 15360 -> 16384 bytes nativeLib/gridslice/src/gridslice.c | 15 +- .../Installer.python/component.spec | 2 +- .../nativeLib/x86_64/gridslice.so | Bin 249217 -> 249185 bytes rpms/build/x86_64/build.sh | 8 +- 24 files changed, 293 insertions(+), 194 deletions(-) delete mode 100644 cave/com.raytheon.viz.core.gl/localization/fonts/VeraMono.ttf diff --git a/cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/gfeConfig.py b/cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/gfeConfig.py index 8f3a42adc9..bc075edc18 100644 --- a/cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/gfeConfig.py +++ b/cave/build/static/common/cave/etc/gfe/userPython/gfeConfig/gfeConfig.py @@ -24,11 +24,12 @@ #------*-python-*------------------------------------------------------------- # Config file for the GFE (Graphical Forecast Editor). -# -# $Id$ -#----------------------------------------------------------------------------- -# Heading -#----------------------------------------------------------------------------- +# +# SOFTWARE HISTORY +# +# Date Ticket# Engineer Description +# ------------ ---------- ----------- -------------------------- +# 11/20/2013 2488 randerso Changed to use DejaVu fonts GFESUITE_HOME = "/awips2/GFESuite" GFESUITE_PRDDIR = "/tmp/products" @@ -262,11 +263,11 @@ MapBackgrounds_default = ['States','CWA'] # style is a font style (one of "regular", "bold", "italic", or "bold italic") # height is an integer representing the font height. # Example: Times New Roman-bold-36. -TextFont0 = "Bitstream Vera Sans Mono-regular-9" -TextFont1 = "Bitstream Vera Sans Mono-regular-9" -TextFont2 = "Bitstream Vera Sans Mono-bold-12" -TextFont3 = "Bitstream Vera Sans Mono-bold-14" -TextFont4 = "Bitstream Vera Sans Mono-bold-20" +TextFont0 = "DejaVu Sans Mono-regular-9" +TextFont1 = "DejaVu Sans Mono-regular-9" +TextFont2 = "DejaVu Sans Mono-bold-12" +TextFont3 = "DejaVu Sans Mono-bold-14" +TextFont4 = "DejaVu Sans Mono-bold-20" # The color which will be used as the background for all of the display # panes. diff --git a/cave/com.raytheon.uf.viz.alertviz.ui/src/com/raytheon/uf/viz/alertviz/ui/audio/AlarmBeepJob.java b/cave/com.raytheon.uf.viz.alertviz.ui/src/com/raytheon/uf/viz/alertviz/ui/audio/AlarmBeepJob.java index e81969c057..f41a8387f5 100644 --- a/cave/com.raytheon.uf.viz.alertviz.ui/src/com/raytheon/uf/viz/alertviz/ui/audio/AlarmBeepJob.java +++ b/cave/com.raytheon.uf.viz.alertviz.ui/src/com/raytheon/uf/viz/alertviz/ui/audio/AlarmBeepJob.java @@ -25,6 +25,9 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; +import org.eclipse.swt.widgets.Display; + +import com.raytheon.uf.viz.core.VizApp; /** * Repeats playing the System beep. Same code as @@ -36,9 +39,9 @@ import org.eclipse.core.runtime.jobs.Job; * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * Mar 03, 2011 #8059 rferrel Initial creation + * Nov 26, 2013 DR16772 gzhang use Display.beep() * * - * * @author rferrel * @version 1.0 */ @@ -70,8 +73,8 @@ public class AlarmBeepJob extends Job { @Override protected IStatus run(IProgressMonitor monitor) { IStatus status = Status.OK_STATUS; - if (count > 0) { - Toolkit.getDefaultToolkit().beep(); + if (count > 0) { + VizApp.runAsync(new Runnable(){@Override public void run(){Display.getDefault().beep();}}); // DR 16772 //Toolkit.getDefaultToolkit().beep(); reSchedule(); count--; } else { diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FFMPTable.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FFMPTable.java index 9c0b1b732d..7c2ccaa8d4 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FFMPTable.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/FFMPTable.java @@ -250,7 +250,8 @@ public abstract class FFMPTable extends Composite { event.gc.setForeground(lineColor); event.gc.setLineWidth(1); int currentCol = event.index; - + + TableItem ti = (TableItem) event.item; Rectangle rect = ((TableItem) event.item).getBounds(currentCol); event.gc.drawRectangle(rect.x - 1, rect.y - 1, rect.width, rect.height); @@ -265,6 +266,13 @@ public abstract class FFMPTable extends Composite { // Draw a top line event.gc.drawLine(rect.x, rect.y, rect.x + rect.width, rect.y); + // Draw a bottom line if this is the last row of the table + int index = table.indexOf(ti); + if (index == table.getItemCount() - 1) { + event.gc.drawLine(rect.x, rect.y + rect.height - 2, rect.x + + rect.width, rect.y + rect.height - 2); + } + if ((tableIndex >= 0) && (tableIndex < table.getItemCount())) { event.gc.setForeground(parent.getDisplay().getSystemColor( SWT.COLOR_BLUE)); diff --git a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/TimeDurScaleComp.java b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/TimeDurScaleComp.java index a82796bb47..ccb17fafb6 100644 --- a/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/TimeDurScaleComp.java +++ b/cave/com.raytheon.uf.viz.monitor.ffmp/src/com/raytheon/uf/viz/monitor/ffmp/ui/dialogs/TimeDurScaleComp.java @@ -41,6 +41,22 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Canvas; import org.eclipse.swt.widgets.Composite; +/** + * Time Duration Scale Composite + * + *
+ * 
+ * SOFTWARE HISTORY
+ * 
+ * Date         Ticket#    Engineer    Description
+ * ------------ ---------- ----------- --------------------------
+ * Nov 20, 2013      #2488 randerso    Changed to use DejaVu font
+ * 
+ * 
+ * + * @author randerso + * @version 1.0 + */ public class TimeDurScaleComp extends Composite { /** * Parent composite. @@ -252,13 +268,10 @@ public class TimeDurScaleComp extends Composite { */ private void init() { // Create the font - // canvasFont = new Font(parentComp.getDisplay(), "Courier", 10, - // SWT.NORMAL); - // canvasFont = new Font(parentComp.getDisplay(), "Monospace", 10, - // SWT.NORMAL); FontData fd = parentComp.getDisplay().getSystemFont().getFontData()[0]; - fd.setName("Bitstream Vera Sans Mono"); + // TODO not have hard coded font name + fd.setName("DejaVu Sans Mono"); canvasFont = new Font(parentComp.getDisplay(), fd); // Create the time bar colors @@ -307,6 +320,7 @@ public class TimeDurScaleComp extends Composite { this.pack(); this.addDisposeListener(new DisposeListener() { + @Override public void widgetDisposed(DisposeEvent arg0) { greyColor.dispose(); yellowColor.dispose(); @@ -328,6 +342,7 @@ public class TimeDurScaleComp extends Composite { timeSliderCanvas.setLayoutData(new GridData(CANVAS_WIDTH + 10, CANVAS_HEIGHT)); timeSliderCanvas.addPaintListener(new PaintListener() { + @Override public void paintControl(PaintEvent e) { drawTimeSliderCanvas(e.gc); } diff --git a/cave/com.raytheon.uf.viz.monitor.scan/src/com/raytheon/uf/viz/monitor/scan/tables/SCANTable.java b/cave/com.raytheon.uf.viz.monitor.scan/src/com/raytheon/uf/viz/monitor/scan/tables/SCANTable.java index 695cfc69d9..efe965078e 100644 --- a/cave/com.raytheon.uf.viz.monitor.scan/src/com/raytheon/uf/viz/monitor/scan/tables/SCANTable.java +++ b/cave/com.raytheon.uf.viz.monitor.scan/src/com/raytheon/uf/viz/monitor/scan/tables/SCANTable.java @@ -82,8 +82,8 @@ import com.raytheon.uf.viz.monitor.scan.tables.SCANAlarmAlertManager.AlertedAlar * issue on the images being blank and throwing errors. * Also cleaned up some code. * + * Nov 26, 2013 DR16782 gzhang use Display.beep() * - * * @author lvenable * @version 1.0 */ @@ -934,7 +934,7 @@ public abstract class SCANTable extends Composite { beepTimer.purge(); } if (mgr.isRing()) { - Toolkit.getDefaultToolkit().beep(); + Display.getDefault().beep();//Toolkit.getDefaultToolkit().beep(); } else { beepTimer.cancel(); beepTimer.purge(); diff --git a/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/TableComp.java b/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/TableComp.java index d27f140d83..524c069168 100644 --- a/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/TableComp.java +++ b/cave/com.raytheon.uf.viz.monitor/src/com/raytheon/uf/viz/monitor/ui/dialogs/TableComp.java @@ -270,6 +270,14 @@ public abstract class TableComp extends Composite { // Draw a top line event.gc.drawLine(rect.x, rect.y, rect.x + rect.width, rect.y); + + // Draw a bottom line if this is the last row of the table + TableItem ti = (TableItem) event.item; + int idx = table.indexOf(ti); + if (idx == table.getItemCount() - 1) { + event.gc.drawLine(rect.x, rect.y + rect.height - 2, rect.x + + rect.width, rect.y + rect.height - 2); + } if (tableIndex >= 0) { event.gc.setForeground(parent.getDisplay().getSystemColor( diff --git a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatology/WindRosePlotDlg.java b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatology/WindRosePlotDlg.java index cc580a6708..5a308a114b 100644 --- a/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatology/WindRosePlotDlg.java +++ b/cave/com.raytheon.viz.aviation/src/com/raytheon/viz/aviation/climatology/WindRosePlotDlg.java @@ -37,7 +37,9 @@ import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.ImageLoader; +import org.eclipse.swt.graphics.Point; import org.eclipse.swt.graphics.RGB; +import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.printing.PrintDialog; @@ -85,6 +87,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * 04OCT2012 1229 rferrel Changes for non-blocking WindRoseConfigDlg. * 08OCT2012 1229 rferrel Made non-blocking. * 10/15/2012 1229 rferrel Changes for non-blocking HelpUsageDlg. + * 03Dec2013 16754 zhao Modified printImage() * * * @@ -734,20 +737,36 @@ public class WindRosePlotDlg extends CaveSWTDialog { } private void printImage() { + Image image = windRoseCanvasComp.getWindRoseImage(); + ImageData imageData = image.getImageData(); PrintDialog dialog = new PrintDialog(shell, SWT.NULL); PrinterData printerData = dialog.open(); if (printerData != null) { - // Create the printer object Printer printer = new Printer(printerData); + Point screenDPI = shell.getDisplay().getDPI(); + Point printerDPI = printer.getDPI(); + Rectangle bounds = printer.getBounds(); + int destX = (screenDPI.x*bounds.width - printerDPI.x*imageData.width)/screenDPI.x/2; + if (destX < 0) { + destX = 0; + } + int destY = (screenDPI.x*bounds.height - printerDPI.x*imageData.height)/screenDPI.x*80/100/2; + if (destY < 0) { + destY = 0; + } printer.startJob("jj"); GC gc = new GC(printer); + Image printerImage = new Image(printer, imageData); if (printer.startPage()) { - windRoseCanvasComp.drawCanvas(gc); + gc.drawImage(printerImage, 0, 0, imageData.width, imageData.height, destX, destY, + printerDPI.x*imageData.width/screenDPI.x, + printerDPI.x*imageData.height/screenDPI.x); printer.endPage(); } + printerImage.dispose(); gc.dispose(); printer.endJob(); printer.dispose(); diff --git a/cave/com.raytheon.viz.core.gl/localization/fonts/VeraMono.ttf b/cave/com.raytheon.viz.core.gl/localization/fonts/VeraMono.ttf deleted file mode 100644 index 139f0b4311ad2e0369a347b3be6c46e6c2b730d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49224 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 diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/AbstractSaveParameterDialog.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/AbstractSaveParameterDialog.java index 46cb855de0..d96b935d09 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/AbstractSaveParameterDialog.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/AbstractSaveParameterDialog.java @@ -63,10 +63,11 @@ import com.raytheon.viz.ui.dialogs.CaveJFACEDialog; * * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * Oct 26, 2011 randerso Initial creation + * Oct 26, 2011 randerso Initial creation * Oct 30, 2012 1298 rferrel Code clean for non-blocking dialog. - * 02/13/2013 #1597 randerso Made number of concurrent save threads a configurable value. + * Feb 13, 2013 1597 randerso Made number of concurrent save threads a configurable value. * Added logging to support GFE Performance metrics + * Nov 20, 2013 2488 randerso Changed to use DejaVu font * * * @@ -127,7 +128,8 @@ public abstract class AbstractSaveParameterDialog extends CaveJFACEDialog master.addDisposeListener(this); FontData fd = master.getDisplay().getSystemFont().getFontData()[0]; - fd.setName("Bitstream Vera Sans Mono"); + // TODO not have hard coded font name + fd.setName("DejaVu Sans Mono"); font = new Font(master.getDisplay(), fd); initializeComponents(); diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/WERevertDialog.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/WERevertDialog.java index 779fec1dbf..9f1affbc8a 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/WERevertDialog.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/WERevertDialog.java @@ -57,8 +57,9 @@ import com.raytheon.viz.ui.dialogs.CaveJFACEDialog; * * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- - * Jan 21, 2011 randerso Initial creation + * Jan 21, 2011 randerso Initial creation * Oct 25, 2012 1287 rferrel Code clean up for non-blocking dialog. + * Nov 20, 2013 2488 randerso Changed to use DejaVu font * * * @@ -107,7 +108,8 @@ public class WERevertDialog extends CaveJFACEDialog implements DisposeListener { master.addDisposeListener(this); FontData fd = master.getDisplay().getSystemFont().getFontData()[0]; - fd.setName("Bitstream Vera Sans Mono"); + // TODO not have hard coded font name + fd.setName("DejaVu Sans Mono"); font = new Font(master.getDisplay(), fd); String t; diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java index 2a34c6da9e..0002a7fda2 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/dialogs/formatterlauncher/StyledTextComp.java @@ -65,11 +65,12 @@ import com.raytheon.uf.common.status.UFStatus.Priority; import com.raytheon.uf.viz.core.RGBColors; import com.raytheon.viz.gfe.Activator; import com.raytheon.viz.gfe.dialogs.formatterlauncher.ProductEditorComp.PTypeCategory; +import com.raytheon.viz.gfe.rsc.GFEFonts; import com.raytheon.viz.gfe.textformatter.TextFmtParserUtil; /** * Composite containing the product editor. - * + * *
  * SOFTWARE HISTORY
  * Date         Ticket#    Engineer    Description
@@ -81,12 +82,12 @@ import com.raytheon.viz.gfe.textformatter.TextFmtParserUtil;
  * 03 Dec 2012  15620      ryu         Unlock framed cities list for editing.
  * 30 APR 2013  16095      ryu         Modified updateTextStyle() to not lock edited text.
  * 04 SEP 2013  16534      ryu         Fixed word wrap to not insert duplicate text; refactor.
- *
+ * 
  * 
- * + * * @author lvenable * @version 1.0 - * + * */ public class StyledTextComp extends Composite { private static final transient IUFStatusHandler statusHandler = UFStatus @@ -189,7 +190,7 @@ public class StyledTextComp extends Composite { /** * Constructor. - * + * * @param parent * Parent composite. */ @@ -207,10 +208,12 @@ public class StyledTextComp extends Composite { private void init() { String fontSetting = Activator.getDefault().getPreferenceStore() .getString("ProductOutputDialog_font"); + FontData fontData; if (fontSetting.isEmpty()) { - fontSetting = "Bitstream Vera Sans Mono-bold-12"; + fontData = GFEFonts.getFontData(2); + } else { + fontData = StringConverter.asFontData(fontSetting); } - FontData fontData = StringConverter.asFontData(fontSetting); textFont = new Font(parent.getDisplay(), fontData); createMouseListner(); @@ -227,6 +230,7 @@ public class StyledTextComp extends Composite { createTextControl(); this.addDisposeListener(new DisposeListener() { + @Override public void widgetDisposed(DisposeEvent arg0) { textFont.dispose(); bgColor.dispose(); @@ -307,7 +311,7 @@ public class StyledTextComp extends Composite { /** * Get the StyledText editor. - * + * * @return The StyledText editor. */ public StyledText getTextEditorST() { @@ -316,7 +320,7 @@ public class StyledTextComp extends Composite { /** * Set the product text. - * + * * @param text * The product text. */ @@ -398,8 +402,7 @@ public class StyledTextComp extends Composite { // should be unlocked. Cities list is unlocked for editing // when framing codes are present. if (newProduct) { - if (cityTip != null && - cityTip.getText().indexOf("|*") > 0) { + if (cityTip != null && cityTip.getText().indexOf("|*") > 0) { unlockCitySegs.add(ugc); } } @@ -411,8 +414,7 @@ public class StyledTextComp extends Composite { lockLines(productTextArray, startLine, cityStart); lockLines(productTextArray, cityEnd, endLine); - } - else { + } else { lockLines(productTextArray, startLine, endLine); } } @@ -484,7 +486,7 @@ public class StyledTextComp extends Composite { /** * Parse the product text string. - * + * * @param productText */ private void parseProductText(String productText) { @@ -564,7 +566,7 @@ public class StyledTextComp extends Composite { replaceText(ff, SPC + newfield); } } else { - String s = SPC + newfield; + String s = SPC + newfield; if (!ff.getText().equals(s)) { replaceText(ff, s); } @@ -670,7 +672,7 @@ public class StyledTextComp extends Composite { /** * Handle the verify key event. This event fires after a change has been * made to the control (after the text has been updated, for example) - * + * * @param event * Verify event that was fired. */ @@ -731,8 +733,7 @@ public class StyledTextComp extends Composite { // .getStyleRangeAtOffset(event.start + event.length + 1); // if it's in a framing code, turn it red - if (startRange != null - && endRange != null + if (startRange != null && endRange != null && event.start > startRange.start && event.start + event.length < endRange.start && startRange.similarTo(endRange) @@ -763,7 +764,7 @@ public class StyledTextComp extends Composite { /** * Handle the key event when a key is released. - * + * * @param ke * Key event. */ @@ -785,7 +786,7 @@ public class StyledTextComp extends Composite { /** * Check if there is selected text and if there is locked text in the * selected text. - * + * * @return True if there is selected text that contains locked text. */ private boolean selectionHasLockedText() { @@ -799,12 +800,12 @@ public class StyledTextComp extends Composite { /** * Check if there is locked text in the specified range of text. - * + * * @param offset * The starting point of the locked text search. * @param length * The length of the search. - * + * * @return Whether or not there is text in the range that contains locked * text. */ @@ -822,7 +823,7 @@ public class StyledTextComp extends Composite { /** * Select the framing code and the text contained in the framing code. - * + * * @param sr * StyleRange. */ @@ -834,7 +835,7 @@ public class StyledTextComp extends Composite { /** * Check if the key being pressed is a "non-edit" key. - * + * * @param event * Verify event. * @return True if the key is an arrow or "non-edit" key. @@ -856,6 +857,7 @@ public class StyledTextComp extends Composite { private void createMouseListner() { mouseListener = new Listener() { + @Override public void handleEvent(Event e) { if (e.type == SWT.MouseDown) { handleMouseDown(e); @@ -868,7 +870,7 @@ public class StyledTextComp extends Composite { /** * Handle the mouse down event. - * + * * @param e * Event fired. */ @@ -903,7 +905,7 @@ public class StyledTextComp extends Composite { /** * Handle the mouse up event - * + * * @param e * Event fired. */ @@ -1010,7 +1012,7 @@ public class StyledTextComp extends Composite { /** * Checks if the system is editing, e.g. updating the issue time every * minute, vs a user typing text in the text area - * + * * @return */ private boolean isSystemTextChange() { @@ -1035,17 +1037,19 @@ public class StyledTextComp extends Composite { } protected boolean isUpperCase(final String word) { - for (int index= word.length() - 1; index >= 0; index--) { - if (Character.isLowerCase(word.charAt(index))) + for (int index = word.length() - 1; index >= 0; index--) { + if (Character.isLowerCase(word.charAt(index))) { return false; + } } return true; } protected void upper() { String text = textEditorST.getText(); - if (isUpperCase(text)) + if (isUpperCase(text)) { return; + } int topIdx = textEditorST.getTopIndex(); setProductText(textEditorST.getText().toUpperCase()); textEditorST.setTopIndex(topIdx); @@ -1161,7 +1165,7 @@ public class StyledTextComp extends Composite { /** * Getter for the column at which wrap and auto-wrap will wrap the text. - * + * * @return the column number */ public int getWrapColumn() { @@ -1170,7 +1174,7 @@ public class StyledTextComp extends Composite { /** * Getter for the column at which wrap and auto-wrap will wrap the text. - * + * * @param wrapColumn * the column number */ @@ -1209,7 +1213,7 @@ public class StyledTextComp extends Composite { /** * Query the prefs for setting. If it does not exist, use colorDft as its * value. Create an SWT Color for display from the value and return it. - * + * * @param prefs * A preference store which might have config values. * @param display @@ -1232,7 +1236,7 @@ public class StyledTextComp extends Composite { /** * Send a PROBLEM message if color1 is exactly equal to color2. - * + * * @param color1 * the first color * @param color2 @@ -1259,7 +1263,7 @@ public class StyledTextComp extends Composite { *

* The getter name is different to avoid confusion with the getFgColor() * method of Control. - * + * * @return the foreground Color */ public Color getFgndColor() { @@ -1270,7 +1274,7 @@ public class StyledTextComp extends Composite { * Get the framed text color of the StyledTextComp. This is the actual * color, not a copy. It will be disposed when the StyledTextComp is, and * should not be disposed before then. - * + * * @return the frameColor */ public Color getFrameColor() { @@ -1281,7 +1285,7 @@ public class StyledTextComp extends Composite { * Get the insert color of the StyledTextComp. This is the actual color, not * a copy. It will be disposed when the StyledTextComp is, and should not be * disposed before then. - * + * * @return the insertColor */ public Color getInsertColor() { @@ -1292,7 +1296,7 @@ public class StyledTextComp extends Composite { * Get the locked text color of the StyledTextComp. This is the actual * color, not a copy. It will be disposed when the StyledTextComp is, and * should not be disposed before then. - * + * * @return the lockColor */ public Color getLockColor() { @@ -1302,7 +1306,7 @@ public class StyledTextComp extends Composite { /** * Word wrap the text in the block around cursorIndex. Adjust the cursor * position to account for inserted or deleted whitespace. - * + * * @param st * The StyledText in which word wrap is to be performed * @param cursorIndex @@ -1336,7 +1340,7 @@ public class StyledTextComp extends Composite { line = st.getLine(searchLine); int lineOffset = st.getOffsetAtLine(searchLine); - // if line contains locked text, quit looking. + // if line contains locked text, quit looking. if (rangeHasLockedText(lineOffset, line.length())) { break; } @@ -1393,7 +1397,7 @@ public class StyledTextComp extends Composite { if (endIndex >= st.getCharCount()) { endIndex = st.getCharCount() - 1; } - + if (endIndex < startIndex) { return new int[] { startIndex, endIndex, 0 }; } diff --git a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/rsc/GFEFonts.java b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/rsc/GFEFonts.java index 80122794cd..b9029f1fc8 100644 --- a/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/rsc/GFEFonts.java +++ b/cave/com.raytheon.viz.gfe/src/com/raytheon/viz/gfe/rsc/GFEFonts.java @@ -46,6 +46,7 @@ import com.raytheon.viz.gfe.GFEPreference; * Apr 27, 2011 #9250 bkowal getStyle and getName are now used to * get the style and name associated with * a FontData object. + * Nov 20, 2013 #2488 randerso Changed to use DejaVu fonts * * * @@ -57,9 +58,9 @@ public class GFEFonts { private static final transient IUFStatusHandler statusHandler = UFStatus .getHandler(GFEFonts.class); - private static final String DEFAULT_FONT_NAME = "Bitstream Vera Sans"; + private static final String DEFAULT_FONT_NAME = "DejaVu Sans Mono"; - private static final int[] DEFAULT_FONT_SIZE = { 8, 10, 12, 14, 20 }; + private static final int[] DEFAULT_FONT_SIZE = { 9, 9, 12, 14, 20 }; private static final int DEFAULT_FONT_STYLE = SWT.BOLD; diff --git a/cave/com.raytheon.viz.radar/plugin.xml b/cave/com.raytheon.viz.radar/plugin.xml index fd55cfb605..bfeff98aa4 100644 --- a/cave/com.raytheon.viz.radar/plugin.xml +++ b/cave/com.raytheon.viz.radar/plugin.xml @@ -147,4 +147,12 @@ + + + + diff --git a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java index ce04cd41a0..364bf592ec 100644 --- a/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java +++ b/cave/com.raytheon.viz.radar/src/com/raytheon/viz/radar/rsc/graphic/RadarGraphicsPage.java @@ -19,13 +19,12 @@ **/ package com.raytheon.viz.radar.rsc.graphic; -import java.io.File; +import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; -import java.awt.image.BufferedImage; import javax.measure.converter.UnitConverter; import javax.measure.unit.NonSI; @@ -42,8 +41,8 @@ import com.raytheon.uf.common.dataplugin.radar.level3.CellTrendDataPacket; import com.raytheon.uf.common.dataplugin.radar.level3.CellTrendVolumeScanPacket; import com.raytheon.uf.common.dataplugin.radar.level3.CorrelatedShearPacket; import com.raytheon.uf.common.dataplugin.radar.level3.DMDPacket.DMDAttributeIDs; -import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket; import com.raytheon.uf.common.dataplugin.radar.level3.ETVSPacket; +import com.raytheon.uf.common.dataplugin.radar.level3.GFMPacket; import com.raytheon.uf.common.dataplugin.radar.level3.HailPositivePacket; import com.raytheon.uf.common.dataplugin.radar.level3.HailProbablePacket; import com.raytheon.uf.common.dataplugin.radar.level3.HdaHailPacket; @@ -78,20 +77,19 @@ import com.raytheon.uf.common.dataplugin.radar.level3.generic.GenericDataCompone import com.raytheon.uf.common.geospatial.ReferencedCoordinate; import com.raytheon.uf.common.geospatial.ReferencedGeometry; import com.raytheon.uf.common.geospatial.ReferencedObject.Type; -import com.raytheon.uf.common.localization.PathManagerFactory; import com.raytheon.uf.viz.core.DrawableLine; import com.raytheon.uf.viz.core.DrawableString; import com.raytheon.uf.viz.core.IGraphicsTarget; -import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; import com.raytheon.uf.viz.core.IGraphicsTarget.LineStyle; +import com.raytheon.uf.viz.core.IGraphicsTarget.VerticalAlignment; import com.raytheon.uf.viz.core.data.prep.IODataPreparer; import com.raytheon.uf.viz.core.drawables.IDescriptor; import com.raytheon.uf.viz.core.drawables.IFont; +import com.raytheon.uf.viz.core.drawables.IImage; import com.raytheon.uf.viz.core.drawables.IRenderable; import com.raytheon.uf.viz.core.drawables.IWireframeShape; import com.raytheon.uf.viz.core.drawables.PaintProperties; import com.raytheon.uf.viz.core.drawables.ext.ICanvasRenderingExtension; -import com.raytheon.uf.viz.core.drawables.IImage; import com.raytheon.uf.viz.core.exception.VizException; import com.raytheon.viz.core.rsc.jts.JTSCompiler; import com.raytheon.viz.pointdata.PointWindDisplay; @@ -121,6 +119,7 @@ import com.vividsolutions.jts.geom.LineString; * Jan 8, 2009 chammack Initial creation * 03/05/2013 DCS51 zwang Handle GFM product * 06/24/2013 DR16162 zwang Remove "wind behind" + * 11/20/2013 2488 randerso Removed use of VeraMono font file * * * @@ -143,7 +142,7 @@ public class RadarGraphicsPage implements IRenderable { private JTSCompiler compiler; private IWireframeShape wireframeShape; - + private IWireframeShape gfmFcstWireframeShape; /** Map of ascii strings in local coordinate system */ @@ -190,14 +189,15 @@ public class RadarGraphicsPage implements IRenderable { private boolean drawBorder = false; private int recordsPerPage = 5; - + // for GFM product, add gfmFcstWireframeShape public RadarGraphicsPage(IDescriptor descriptor, GeneralGridGeometry gg, - IWireframeShape shape, IWireframeShape gfmShape, IGraphicsTarget target, RGB color) { + IWireframeShape shape, IWireframeShape gfmShape, + IGraphicsTarget target, RGB color) { this(descriptor, gg, shape, target, color); this.gfmFcstWireframeShape = gfmShape; } - + public RadarGraphicsPage(IDescriptor descriptor, GeneralGridGeometry gg, IWireframeShape shape, IGraphicsTarget target, RGB color, DmdModifier tableModifier) { @@ -467,10 +467,10 @@ public class RadarGraphicsPage implements IRenderable { } } // GFM - else if (type == 140) { - List gfmImages = new ArrayList(); + else if (type == 140) { + List gfmImages = new ArrayList(); - // Handle each Feature in the GFM Packet + // Handle each Feature in the GFM Packet for (GenericDataComponent currComponent : stormData .getDisplayGenericPointData().get(type).values()) { // Handle Graphic portion @@ -892,104 +892,113 @@ public class RadarGraphicsPage implements IRenderable { // Handle GFM product private List getGfmImage(GenericDataComponent currPt) - throws VizException { + throws VizException { List images = new ArrayList(); - - UnitConverter metersPerSecondToKnots = SI.METERS_PER_SECOND.getConverterTo(NonSI.KNOT); - + + UnitConverter metersPerSecondToKnots = SI.METERS_PER_SECOND + .getConverterTo(NonSI.KNOT); + boolean isFcst = false; - double x,y; + double x, y; Coordinate pos1, pos2; - + int imgSize = 64; - + AreaComponent currFeature = (AreaComponent) currPt; - + int numPoints = currFeature.getPoints().size(); int numParam = currFeature.getParameters().size(); - + String propU, propV, windX, windY; double pU = 0.0; - double pV = 0.0; + double pV = 0.0; double wX = 0.0; double wY = 0.0; - + // if the component only has dectect ID and DeltaT if (numParam == 2) { - isFcst = true; + isFcst = true; } // 11 parameters else { - propU = currFeature.getValue(GFMPacket.GFMAttributeIDs.PROPU.getName()); - if ((propU != null) && (propU.length() > 0)) { - pU = metersPerSecondToKnots.convert(new Double(propU)); - } - propV = currFeature.getValue(GFMPacket.GFMAttributeIDs.PROPV.getName()); - if ((propV != null) && (propV.length() > 0)) { - pV = metersPerSecondToKnots.convert(new Double(propV)); - } - windX = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDX.getName()); - if ((windX != null) && (windX.length() > 0)) { - wX = Float.parseFloat(windX); - } - windY = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDY.getName()); - if ((windY != null) && (windY.length() > 0)) { - wY = Float.parseFloat(windY); - } - - // Get the nearest point on the MIGFA front to the wind behind point - // Plot front movement arrow at this point - Coordinate windBehind = new Coordinate(wX, wY); - Coordinate plotPoint = getPlotPoint(currFeature, windBehind); - wX = plotPoint.x; - wY = plotPoint.y; - - // Prop wind arrow - PlotObject poWind = new PlotObject(); - PointWindDisplay barb = new PointWindDisplay(imgSize * 0.4, 0.5, 2, 0); - barb.setImageParameters(imgSize, imgSize, 255, 255, 255, 1); - barb.setColor(this.color); - - // plot the wind arrow in the same length as 50 kts - double spd = Math.sqrt(pU * pU + pV * pV); - if (spd > 0) { - pU *= 50.0 / spd; - pV *= 50.0 / spd; - } - - barb.setWind(pU, pV, false); - BufferedImage imgBuf = barb.getWindImage(false, DisplayType.ARROW, 0.2); - IImage img = this.target.initializeRaster(new IODataPreparer(imgBuf, UUID.randomUUID().toString(), 0), null); - poWind.image = img; - - ReferencedCoordinate rc = referencedGfmCoord(wX, wY); - try { - poWind.coord = rc.asPixel(this.descriptor.getGridGeometry()); - poWind.pixelOffset = new int[] { 0, 0 }; - images.add(poWind); - } catch (Exception e) { - throw new VizException("Unable to transform coordinates", e); - } + propU = currFeature.getValue(GFMPacket.GFMAttributeIDs.PROPU + .getName()); + if ((propU != null) && (propU.length() > 0)) { + pU = metersPerSecondToKnots.convert(new Double(propU)); + } + propV = currFeature.getValue(GFMPacket.GFMAttributeIDs.PROPV + .getName()); + if ((propV != null) && (propV.length() > 0)) { + pV = metersPerSecondToKnots.convert(new Double(propV)); + } + windX = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDX + .getName()); + if ((windX != null) && (windX.length() > 0)) { + wX = Float.parseFloat(windX); + } + windY = currFeature.getValue(GFMPacket.GFMAttributeIDs.WINDBEHINDY + .getName()); + if ((windY != null) && (windY.length() > 0)) { + wY = Float.parseFloat(windY); + } + + // Get the nearest point on the MIGFA front to the wind behind point + // Plot front movement arrow at this point + Coordinate windBehind = new Coordinate(wX, wY); + Coordinate plotPoint = getPlotPoint(currFeature, windBehind); + wX = plotPoint.x; + wY = plotPoint.y; + + // Prop wind arrow + PlotObject poWind = new PlotObject(); + PointWindDisplay barb = new PointWindDisplay(imgSize * 0.4, 0.5, 2, + 0); + barb.setImageParameters(imgSize, imgSize, 255, 255, 255, 1); + barb.setColor(this.color); + + // plot the wind arrow in the same length as 50 kts + double spd = Math.sqrt(pU * pU + pV * pV); + if (spd > 0) { + pU *= 50.0 / spd; + pV *= 50.0 / spd; + } + + barb.setWind(pU, pV, false); + BufferedImage imgBuf = barb.getWindImage(false, DisplayType.ARROW, + 0.2); + IImage img = this.target.initializeRaster(new IODataPreparer( + imgBuf, UUID.randomUUID().toString(), 0), null); + poWind.image = img; + + ReferencedCoordinate rc = referencedGfmCoord(wX, wY); + try { + poWind.coord = rc.asPixel(this.descriptor.getGridGeometry()); + poWind.pixelOffset = new int[] { 0, 0 }; + images.add(poWind); + } catch (Exception e) { + throw new VizException("Unable to transform coordinates", e); + } } - + // Draw GFM fronts x = currFeature.getPoints().get(0).getCoordinate1(); y = currFeature.getPoints().get(0).getCoordinate2(); try { pos1 = referencedGfmCoord(x, y).asLatLon(); - + for (int k = 1; k < numPoints; k++) { x = currFeature.getPoints().get(k).getCoordinate1(); y = currFeature.getPoints().get(k).getCoordinate2(); - //convert xy to latlon - pos2 = referencedGfmCoord(x, y).asLatLon(); - + // convert xy to latlon + pos2 = referencedGfmCoord(x, y).asLatLon(); + // Connect the dots if (isFcst) { - gfmFcstWireframeShape.addLineSegment(new Coordinate[] {pos1, pos2 }); - } - else { - wireframeShape.addLineSegment(new Coordinate[] {pos1, pos2 }); + gfmFcstWireframeShape.addLineSegment(new Coordinate[] { + pos1, pos2 }); + } else { + wireframeShape + .addLineSegment(new Coordinate[] { pos1, pos2 }); } pos1 = pos2; } @@ -1000,7 +1009,7 @@ public class RadarGraphicsPage implements IRenderable { } return images; } - + private PlotObject getImage(HdaHailPoint currPt) throws VizException { PlotObject image = null; @@ -1190,9 +1199,7 @@ public class RadarGraphicsPage implements IRenderable { public void paint(IGraphicsTarget target, PaintProperties paintProps) throws VizException { if (font == null) { - File fontFile = PathManagerFactory.getPathManager().getStaticFile( - "fonts" + File.separator + "VeraMono.ttf"); - this.font = target.initializeFont(fontFile, 12.0f, null); + this.font = target.initializeFont(getClass().getName()); this.font.setMagnification((float) magnification, false); this.font.setSmoothing(true); } @@ -1201,9 +1208,9 @@ public class RadarGraphicsPage implements IRenderable { // GFM forecast positions should be dashed thick lines if (this.gfmFcstWireframeShape != null) { target.drawWireframeShape(this.wireframeShape, this.color, 3.0f); - target.drawWireframeShape(this.gfmFcstWireframeShape, this.color, 3.0f, LineStyle.DASHED); - } - else if (this.wireframeShape != null) { + target.drawWireframeShape(this.gfmFcstWireframeShape, this.color, + 3.0f, LineStyle.DASHED); + } else if (this.wireframeShape != null) { target.drawWireframeShape(this.wireframeShape, this.color, 1.0f); } @@ -1478,35 +1485,36 @@ public class RadarGraphicsPage implements IRenderable { this.tableX = this.startTableX; this.tableY = this.startTableY; } - + /** * Need to convert x/y to lon/lat for GFM product */ public ReferencedCoordinate referencedGfmCoord(double i, double j) { - return new ReferencedCoordinate(rectifyCoordinate(new Coordinate(i * 4, j * 4)), - this.gridGeometry, Type.GRID_CENTER); + return new ReferencedCoordinate(rectifyCoordinate(new Coordinate(i * 4, + j * 4)), this.gridGeometry, Type.GRID_CENTER); } /** - * Gets the nearest point from GFM front to wind behind point to plot - * front movement arrow + * Gets the nearest point from GFM front to wind behind point to plot front + * movement arrow * * @param AreaComponent * @param Coordinate * @return Coordinate * */ - private Coordinate getPlotPoint(AreaComponent currFeature, Coordinate windBehind) { + private Coordinate getPlotPoint(AreaComponent currFeature, + Coordinate windBehind) { Coordinate point = new Coordinate(); double minDist = Double.MAX_VALUE; - + int numPoints = currFeature.getPoints().size(); double x1 = windBehind.x; double y1 = windBehind.y; double x2 = 0.0; double y2 = 0.0; double dist = 0.0; - + for (int k = 0; k < numPoints; k++) { x2 = currFeature.getPoints().get(k).getCoordinate1(); y2 = currFeature.getPoints().get(k).getCoordinate2(); @@ -1517,8 +1525,8 @@ public class RadarGraphicsPage implements IRenderable { minDist = dist; } } - + return point; } - + } diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java index 16200b88cf..1bd1acdfdd 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/dialogs/AlarmDisplayWindow.java @@ -60,7 +60,8 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog; * uses the font. * Feb 03, 2012 14317 mhuang Make alarm display window wider * Sep 6, 2012 13365 rferrel Accumulate and Display fix. - * Sep 25, 2012 1196 lvenable Dialog refactor for AlarmDisplayWindow.Added DO_NOT_BLOCK. + * Sep 25, 2012 1196 lvenable Dialog refactor for AlarmDisplayWindow.Added DO_NOT_BLOCK. + * Nov 20, 2013 2488 randerso Changed to use DejaVu font * * * @@ -127,7 +128,8 @@ public class AlarmDisplayWindow extends CaveSWTDialog { shell.setMinimumSize(300, 100); FontData fd = shell.getDisplay().getSystemFont().getFontData()[0]; - fd.setName("Bitstream Vera Sans Mono"); + // TODO not have hard coded font name + fd.setName("DejaVu Sans Mono"); font = new Font(shell.getDisplay(), fd); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); @@ -207,7 +209,7 @@ public class AlarmDisplayWindow extends CaveSWTDialog { @Override public void widgetSelected(SelectionEvent event) { PrintDisplay.print(text.getText(), - text.getFont().getFontData()[0], + text.getFont().getFontData()[0], UFStatus.getHandler(AlarmDisplayWindow.class)); } }); diff --git a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/util/AlarmBeepJob.java b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/util/AlarmBeepJob.java index b4d7a89ec3..3297f2dada 100644 --- a/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/util/AlarmBeepJob.java +++ b/cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/util/AlarmBeepJob.java @@ -19,11 +19,10 @@ **/ package com.raytheon.viz.texteditor.alarmalert.util; -import java.awt.Toolkit; - import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; +import org.eclipse.swt.widgets.Display; import org.eclipse.ui.progress.UIJob; /** @@ -36,6 +35,8 @@ import org.eclipse.ui.progress.UIJob; * ------------ ---------- ----------- -------------------------- * Oct 19, 2009 mnash Initial creation * Jul 25, 2012 15122 rferrel Add sound repeat interval. + * Nov 26, 2013 16781 mgamazaychikov Changed AWT Toolkit.getDefaultToolkit().beep to + * SWT Display.beep() * * * @@ -78,7 +79,7 @@ public class AlarmBeepJob extends UIJob { public IStatus runInUIThread(IProgressMonitor monitor) { IStatus status = Status.OK_STATUS; if (count < BEEP_COUNT) { - Toolkit.getDefaultToolkit().beep(); + Display.getCurrent().beep(); if (!disposed) { this.schedule(BEEP_INTERVAL); } diff --git a/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/ingestsrv/DupElimSrv.java b/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/ingestsrv/DupElimSrv.java index a14c97fdef..d6ad310743 100644 --- a/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/ingestsrv/DupElimSrv.java +++ b/edexOsgi/com.raytheon.edex.ingestsrv/src/com/raytheon/edex/ingestsrv/DupElimSrv.java @@ -106,7 +106,7 @@ public class DupElimSrv { newPdos.add(pdo); } else { // shouldn't be more than 1 - PluginDataObject dbPdo = dbPdos.get(1); + PluginDataObject dbPdo = dbPdos.get(0); if ((dbPdo == null) || !pdo.getDataURI().equals(dbPdo.getDataURI())) { newPdos.add(pdo); diff --git a/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/AbstractProcessLauncher.cs b/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/AbstractProcessLauncher.cs index 31a4bf9a90..f07dff604f 100644 --- a/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/AbstractProcessLauncher.cs +++ b/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/AbstractProcessLauncher.cs @@ -14,12 +14,14 @@ namespace VizLauncher.com.raytheon.viz.launcher.process protected static readonly String LOG_SUFFIX = ".log"; protected Process process = null; private StreamWriter logFileWriter; + protected VizEnvironment vizEnvironment; private bool ready = false; private String exceptionText = null; public AbstractProcessLauncher(VizEnvironment vizEnvironment) { + this.vizEnvironment = vizEnvironment; // Prepare the log file. if (Directory.Exists(vizEnvironment.getLogDirectory()) == false) { @@ -56,8 +58,10 @@ namespace VizLauncher.com.raytheon.viz.launcher.process { ProcessStartInfo processStartInfo = new ProcessStartInfo(this.constructProcessName(vizEnvironment.getLocation())); + // include the default system PATH in the application PATH + String systemPath = System.Environment.GetEnvironmentVariable("PATH"); processStartInfo.EnvironmentVariables[EnvironmentProperties.ENVIRONMENT_VARIABLE_PATH] = - vizEnvironment.getPath(); + vizEnvironment.getPath() + this.getApplicationSpecificPath() + systemPath; processStartInfo.EnvironmentVariables[EnvironmentProperties.ENVIRONMENT_VARIABLE_PYTHON_PATH] = vizEnvironment.getPythonPath(); processStartInfo.UseShellExecute = false; @@ -119,6 +123,11 @@ namespace VizLauncher.com.raytheon.viz.launcher.process return this.exceptionText; } + protected virtual String getApplicationSpecificPath() + { + return String.Empty; + } + protected abstract String constructProcessName(String location); protected abstract String constructLogName(String logDate); diff --git a/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/impl/CaveProcessLauncher.cs b/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/impl/CaveProcessLauncher.cs index ef7e113cc1..83321fea2d 100644 --- a/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/impl/CaveProcessLauncher.cs +++ b/msi/VizLauncher/VizLauncher/com/raytheon/viz/launcher/process/impl/CaveProcessLauncher.cs @@ -12,14 +12,21 @@ namespace VizLauncher.com.raytheon.viz.launcher.process.impl { private static readonly String LOG_PREFIX = "cave_"; private static readonly String COMMAND_LINE_ARGUMENTS = "-component thinclient"; - private static readonly String CAVE_EXECUTABLE = - Path.DirectorySeparatorChar + "CAVE" + Path.DirectorySeparatorChar + "cave.exe"; + private static readonly String CAVE_DIRECTORY = Path.DirectorySeparatorChar + "CAVE"; + private static readonly String CAVE_EXECUTABLE = + CAVE_DIRECTORY + Path.DirectorySeparatorChar + "cave.exe"; public CaveProcessLauncher(VizEnvironment vizEnvironment) : base(vizEnvironment) { } + protected override String getApplicationSpecificPath() + { + return Path.PathSeparator + this.vizEnvironment.getLocation() + + CAVE_DIRECTORY + Path.DirectorySeparatorChar + "lib" + Path.PathSeparator; + } + protected override String constructProcessName(String location) { return location + CAVE_EXECUTABLE; diff --git a/msi/build/A2Staging/VisualStudio/VizLauncher.exe b/msi/build/A2Staging/VisualStudio/VizLauncher.exe index af03282d6f74fc2a27a11b84bb3e5f530115c113..099e80ea286c05b009e3f9c8084597b5b80682ad 100644 GIT binary patch delta 7012 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 VUT6CM2K2EjdSkQCt36YL{}1r!65s#; delta 5935 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 diff --git a/nativeLib/gridslice/src/gridslice.c b/nativeLib/gridslice/src/gridslice.c index 6d8fcd81fe..247c97ff20 100644 --- a/nativeLib/gridslice/src/gridslice.c +++ b/nativeLib/gridslice/src/gridslice.c @@ -29,6 +29,7 @@ * Date Ticket# Engineer Description * ------------ ---------- ----------- -------------------------- * 11/17/09 3580 brockwoo Initial Creation + * 11/19/13 2495 bclement changed dim arrays/lists to use npy_intp * * * @@ -50,7 +51,7 @@ static int dimensions(PyObject * array) { if (aDim == 3) { returnValue |= 4; // 2d arrays } else if (aDim == 2) { - npy_int * aDimList = PyArray_DIMS(array); + npy_intp * aDimList = PyArray_DIMS(array); if (aDimList[0] == 1) { returnValue |= 1; //linear array } @@ -79,9 +80,9 @@ static PyObject * defineNumpySlice(PyObject *self, PyObject* args) int * param3dDim; int levelCount; int vnz, pnz, vny , pny , vnx , pnx; - int dimSize[2]; - npy_int * vdimList; - npy_int * pdimList; + npy_intp dimSize[2]; + npy_intp * vdimList; + npy_intp * pdimList; if (!PyArg_ParseTuple(args, "OOfi", &vc, ¶m, &targetLevel, &sense)) { return NULL; @@ -211,9 +212,9 @@ static PyObject * createNumpySlice(PyObject *self, PyObject* args) int * vc3dDim ; int levelCount; float * vc2d ; - int dimSize[2]; - npy_int * vdimList; - npy_int * sdimList; + npy_intp dimSize[2]; + npy_intp * vdimList; + npy_intp * sdimList; if (!PyArg_ParseTuple(args, "OOOi|i", &vc, &s3d, &targetLevel, &sense, &hyb)) { return NULL; diff --git a/rpms/awips2.core/Installer.python/component.spec b/rpms/awips2.core/Installer.python/component.spec index 1dd94a2804..c4d4b4655f 100644 --- a/rpms/awips2.core/Installer.python/component.spec +++ b/rpms/awips2.core/Installer.python/component.spec @@ -9,7 +9,7 @@ Name: awips2-python Summary: AWIPS II Python Distribution Version: 2.7.1 -Release: 9.el6 +Release: 10.el6 Group: AWIPSII BuildRoot: %{_build_root} BuildArch: %{_build_arch} diff --git a/rpms/awips2.core/Installer.python/nativeLib/x86_64/gridslice.so b/rpms/awips2.core/Installer.python/nativeLib/x86_64/gridslice.so index d38fd49fb81fd530c59c0527615780657cc89686..2451ac586a8d9dc08ca1dac65bec4ea48c8786c6 100755 GIT binary patch delta 16646 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

)`mrB&_hQ;GOw&rey6M*x>3Fp5$ShXqClhI< zQzf92x01Y!!qTNBd6^0w5iZX0Lizzkv7^w7>4Y>VZ$(K?VX62n1fGwJVRX8gneQmf z%*oGF=rm5)m@%L*OOWXhPV~rbPcNOui4HU?qcE$W5DyY+T|e$OSTs5`!`|BnbVgR_ z$XJ3W^-CRvf|pLpRu$$HJ8tWv1G6GWR%U()MwtZCp;=~jM&WHdbb>BnPTtadam0?1 zlRXNZt7U19;@kM?bgj^l>&Pg&T@xLjOB012I?!I3QFg%0 zbV|wc#g4+sj^gb6B}EFIqcptn7@UYys$?tuQAuTj!)>HB^KdlFan` zCjxnn)zUKh@e-PyS%_Rh0{wmoJG4xUo9v+BXf54onG^IDI2YE4>FhrpgXF21_d)Hy(?;n2MB6oG{8F6-kbz3VqS=Vhua!pbO1H za}_#*LVKu5Ct7Kx6CA}e9K|$@P9*XQuzK?IbCt~qrlieHzh`b*@(hJ`XbFv*l$thq zYErU7o43SEb5x-n#{w2=DYWO9#-IG9V`tiT)H%lG7nIIel~FK7 z@U(PrjdB~pBWS--=a`b8cfX@BU(m<6@{rt%wkdUTVqumb(Wa%|my};D`f$sW@A^3+ zjJ7g$+KkMMJVCtV`UlCPO--FPJ|{O<&}cJL@0^ieD5Z^Z#T+z*Lyl|MK||Ca+SBy1 zWM<@M6xwt0mWa``#i^6VXA~8W%greegww97gN9C4+V;Gieow|ShoDEgjvq9HOrV|2 zbe$oIsz{-2&9*(X0h*psSeP!#Orf1c4}+&J6j$d%hE7m=c<3R+0pJDTd${=(Lp@`b zO4p`W4SoIfzhK|vI{vC*h<}6U;oabZ*ARODp5B#6aA+N_>G&CXc-?D;2?lVxP8~H2 zfy*viM*6~DVj8vU+=`t>cXdR)xuLw~DJ{ex@*Dj09^8RY3tarJ)-t5DzU(8+T=k^V7$<^beVHNCf?K+9*5!aQIhIAIy k!!@zV@Nk6wqDQ~ delta 16671 zcmbt+d0bW1zWDyG1Gw36;4sPIC~ycw#5sq|A)HX~IH2a(pomN|%AjJ&RyimL8ni0x zMu}ynT`dbs%Tl^pVp)+*-s--nwD4+WGi5h^-|t#yAHny2|Ganlu=o0|?>wxv_Fik- z7k~5L^oW059PFzfaEo`zV~Y5d)MuXv$a+Kq?mNE~GK241f39lmk6tsERW_`eq2D>A zbkH2{=EHE9g{9U@`u9EMeJChOpyH#f;F~;#!Yck8UYGJOJcfpS87C>GhRgdn7v&~C zz;kHWx(3;6T%%psSiagbG)#?>{h#!b_aqlKuX(rUX%@ErZ?e1fal2@!5>(RoCN(sy z#)WOa0lSw!huE?(N!)n@wuXP9h9)0z@v2Yslzc5xa#?TaH+0!==s&|Jd54DiNg>LZ z8?ZHeHDW(;=}Ni*8^w2fhb9}6m*0TB;^NA>p?{=H*SZ_}YdC13VSl-}s&2qe=fky7 zsA*2t-eJ(M*=nA{Ae?9U$AK@e_wNh6`7{0t;Z5#o84dgSc*|1|!!KB7uwS?EVF8QT zg)Mwrz-{cx7XD_y0QSQc{!755u>KVrerBcNNi~TbNi`GgN!5v+*zT-R_}su!ea#j{ zNvb}5l;YX(=^tHPl`W;3fG*W~A*!abu&b*JDLU+UuTFGgPnN64PxMsPBv#cdaC)~@ zC)U;^*1pzhs_2ALds2<(;X1pLw0%^#RM9cvT345pe6w3JPYjCHPhvTtN#|=Ucx|sy zZv98;FoKgRT0CT*Xi>k_)vvnyRiZB;bum)i+m*tjj)UloRQEUz4k2HuPTc4gtW;Ot zOODip3r#4ex^f+M)F92yq}SR_@PS>wQh_Aa8G&OIjepC|rXHOiHb2w*4bYGOay^3c zWLrdVnrt@_|5({RMC~EeuGmng_&bkanbwHBRad4^vP8^bD>+2Ru6%5gysRNKwEpYZDcJW57X3*SB~m%hD% zb_k0ujp#N?9=Kk2m{*J&RM{+#zP)%aD&TKxYj}=mQVxJ3e2aoTY ztk?e_A}z9+F55@R*Cp7#bQm40*s#;&f8W!h)#%}0*(Ce^KjUT()qagKE^&`2+ksn! zOMN#;mky&)>C!+fTOyrIhLcb3;YB_X@ISb;=Ia08QYxPq9^7Z9M77{F=l?9mg{BEn z?IW%>7lda39OEBFEX;F$f8E=o--)*H_JC}+kmpU*uGp{-Yx?h4Lp6zY)s@RJ-zd7e za;2=!7_EF>4V<1qg6X`@~sFL|m zd;aiWu&1)6%-+!^*gTUrAp?$`?V}>sN}g{JarvI4?GwsTNXI4qj=i@za5IUWa0m4~ z#DA~{PjFE4PLfgW`5(g8c>XGGmZXY*KvFdhypW5c1DBueqXxMQioep;b><|W8nwgc zqszpch`~M2p>`1WzG)@9wvIm+-`h7Az4l+)@}s}S+}>P&69#${?~EP@3wTV7Jz^vp z>fg}fY$nCtj#+{&sXbV}DN-Z1<)LwmVV<+qhJr^ultfG<2Cz+H$v0I{j`#smgi6 z2FT(86NkX9eBwkqSa~X1-pMyjT*!7WmE0dJCT`fk|D3#zc`TO9?Dih(oyXwpDsJn8Ym)eDD_1j9QuEsR z&oP#g$OooGvZ0B5W=bscPb5j~)2X~E^|srD)MqCMsXHbJ zsb7y5QePZTQejH-=w*i(yZ=@pZ1t@q4CeA-D+aRgTS*rD&Nr?&!X}LoqMpA+h^oJZ zM8PFqw{j>}XUobWHf^+FUN|40c_&-Gm)||Dq}eZP7r}+2<7}5w(sJ7 zSKZFk;e2aOKi;tFJ23Ipt77?qoDuLaZ_lyAIu5y8;VQ4rwZpso>D(2{IBFV#&huFMW ze*B(DHawPpe$OCgisj~em%u*$Ug=5pXAJ+MdJsDo!~M4nfExbY8aobJ|FzTDlo!RT~-nMQa6(F{kaC_Mz1~*Cd7wm5JC3aHJ=G%FF$%F6; zfAtBf`lo(f`lnw2a+jpl)qNBl-(6bk-(_7R}Y4*+;3Yvn;0N0 zi3|{N=;XV%O=QO`XviJ>wwe{NnD4GxfYtb0O(~4$d9^n9fmhXL583MHo?d=8iRq>4 z`t*|FKg2WRI>DzVel;l=5}QYEU*uuV!v}V;aN|;z%6Hb!gj4)teJPuL56`a+W2Srf z+WWJpufXa9e8i5?CMhS5orDPuC6$|AAcJ8 z@gDX(^5gxFw~!z2o*y7T!}ooLPbRI{@%t})NMk&VGN&8}N51#-2fxT`IbPKrwa)jNO16@y0&D^#8`sQz4eOJW&V- z`0zd9KHDM`MQ*F8e94{xQ3OAZJ2~0;*(I4p*(-~4v(wUr4IHmb*~XvPQ>Sl1DjZ?> zQ=tiULx35xj+wmEU-T+!l)M{Pw$E2lLf#*buu1I|kBh$v)Cy!Wv0g_tym|B*DmuL? zMW^QxA4T!-@XXFHK?cwDXd-(QM{n=#c_>0>$rfzyptffQUMQSiBpj4pDti)j^*&5U zRXvDT6L{5{QGg$s-1}APXFf<0Jp4^;diTQSd8( zwfoQ@Yi|KqbnQ8Or?G|#$f{+abylkY?Aphu$r>hrI4u)nW3>rjn06=HZ0#d}FG&*({OyYNDaP9x1A7qaP_)5> zj1|^jRWyzC#S7?XMH@~E2SEus)2V192saF7AhZ#*+c5*y;jkE?&7jS}oAqW8?@XXw z!SGl|!^_BC1==W*lAwc*GZo#rqWs zfNI{13AVOS@+_G8JnB;^$DRlALLP`3p7D5Nd)jQ6N<9E|MTI7Huc0cT5BF+^X$BWsd2B$FA9~194g}B6Glf7~f%93p(kT z2?r4vqh;u5ienahjt~~_mt@jx2*ja-#d`oPam;}k2x0LSVKN;lun-|E-h)^Kj@uyt z8L)PbA-iJ%BqD^hJDk)l1P4M`yHhd4j-{{y`LJ5wBJ=M6j-s(zll(CLjyr`=EXi$T z+FjsUHiWPuRrJx33Ug5?R^;s@W+mid9I+xlA!9N`7_cIfiEndvl^V(*$Ubu6XxGhB0|;%nir{G2Zs=O9<;**mBA|rwS(3{D(-~` z$V1TH#bh})KofZg+6IbKIed>$Cun&@sf%oFWZF*@nT0$O|X5BW@ql&X6&cU_}*&n05j?9b4cE-i|Wu0twv;tC78h zX-|-pD&cP{(_*j=9o0g88`FHr&}{-b&$O+Sdc8(~?Mxd^$XWq)FztC#zg<9AnU;!r z9Xmt;buw)~)mA;wV*?hos#0aMP6|ox9n?&qN~xTS@>F#ZUj2m_3W0?#*gFnyY&kX^ z`j&OrR@HL6N;)bHK_`jX2y%AoV}fdrn~L&zoytY}71>aAMv%TMNHb8!=LV_57LZrf z{}u!^4f%sEh8V66E)h9o)HWaNP}Kmu%6TA`2;3J$kss`BDyHqX2-*pPmb&K=t#DR| zX01fEgBBoFO>#GFq4ndoN_Uv=fx=2L~St*g;-z-R9a+99# zNh(B3`Vo{g{*|D=5kivk_%W)mt*2r3Nl z>UfMuSqxR-t`uyl>O#Cqt{iMhWz<5{WD|~mdNx%YP4^1o&2HjGH?dIRO&q>O7~tiO zJ>zkV1+OU0P#jN+IXSps#VWU1e%%7lA$Ma+c zKGl1Ys+ovzJ;JbOX#h5pFKi|aq8C;mQdP6?DoRUNHe*u;MYPC1Bp?~A4;k|!7aR}c zH3XjSL9DP?vgG3z1jRAD%5rUUQ_0*PM)i*Kp9(5ky(JY*kQSXNTr1<7l(c^WhD=p^ z;Z>4FVN2R4#EN+L9s`a~2b(}eXkwJqipROI-E+E(*r zGNpsscJs~HuRAUg5NAG#HR<>_4gO)~CTd@vhV3zCe~Q5sYGdFpQ5L=>00V!8eE*In zf;Po`7XjZB=DcG5kjSo*+;+trN7{cNphGcVBj85@t}5mq(E;7@6G5GdIg%{?nShO8 zevRtm7X|I80`o=6;jbjS4$LzN^BVy>!TcFvItge3^Fp%vcLMf-`FFznLBJs}*I`jO z{v^>y!F&%1_zwXsV6N9Get!|v3g&PMP8R{V8of#w1qi~`Xe$QT0b45trEK&;X*b( z!NicE5kg!m9&=|A7zv}1A=K)K0zgx>CnyRxNz-&Kh765%+4c{T90Ot+RRWKb+5Mo6 zxQ99VLppJPN@0ovf5a);&t%pBpy^Q67L)bykcfaqTR^-6VKv^Y+VfP9gJ2OVwri&; zC4->~fjC7E98D$;0W-=DY$Wx=VFR{R@lF*Y)?7J01H(w!&G3l8?#63~c#0E)Qwh94 z^*aJy64(=XmBaU+*pkCnv@+0YlzjrPf$cbEbjL`zELeUJEHoX^^Ot0Kil_tA$of%0 z3w7W_G|omt1a_%v3|^%cdPuv@;9(G!|WOc}9`gE~R+kf0zd=`l^J6jNA+Fm*lE)_5s;I3;$1Y%ish-v;y) z5qN;Ym>|viO(%aQN+5vjodlgi(O+&w^w4FYr}FFCl)zFFI2owiR5c#2^5KP^hb1j7 z1cX9gRh34Bs#5W(Dix9M4D7Hk@ArT|t}*7%(9q?v^boI@w_tTG@2{d8s(B8Yusn_& zvzP}X!}56XppP;Zp&Dxn3IbfKvF-a362;~E&?Bh%a}<~BD^eGnnO>sgnj=VDa51(0 zrefO?ys{uo$@NDX9p~hcC_7iwm>p&BMHzt!=&s`t*oaP;EFM?TDE1&$^723`0!G#^ zA4EnlPlR*T0i-}3idPv1p`_c&G7AOdde0G53j`H;Re&x1dQfGRtLiT(H_T(Jr4G@y z16VwY?G20s*k+P$g$1Cnt&^r;Kbwukv-K{L)h8K8m51}T8JI-d14ypeLNK6Un~EgN zmVj83Ee!iTY&#L@X*+@IikIyZdj9EU+kui*TPzCpww*^(%{Cv=J~lGN*G6S-wrxRk z{A>jnTz}i+DB5D{i(CP=Z&6&JZ36ZL+0G$-u+4(u39(JY^z^nZ#CE9d8n!nw^vd}_ zIvJ=?aoD~?({!+nM-qX1VI$#&BduaPi4E7K%!E&nUJrpk+-yDRT#lj! z#hDLYxN9lrx_;QQh{;sY(?GLOAKEk!Z{EkT6jGc)>`w&5i@Y{>Gkh!Q}IHWW+T8O?G-X&s$I`RFe;D~4&A-Z=i90|hjuZ-(L=!itcpMbR3u%$>sp zq7}n@jchFhHQ0zje{5NV=OPC5a4usI_zM|T3?tm6vxu~3WbyMeEOKWlQsMj;IG;>k z1Lz7RIa=gV;Y?6;ZwW?(gf(d7fvH_2z=9>1>e7f zZSD&$cT^qa@RJ}83Nftj>4JsSDS<(_3^+GJBvQ%ZnAem3y8Xhu>lYg8N_ZjY&TUZF z8w;dCtrj%9YK7c^dg0?z()w-1LgM=x|8r3 zLij-W2qpgve2EY~Q2t06co#Yl!UxJoQt=^thY&tc_9f^e@W2|vXU6vl`Y-YBkGm9K zqQB0IV59nC8ofI?zXp3K=D(F`FVVRF27X1oxJ}WAW`s)+i=?2BUKNbN4P098`*`NT$1X<)<%C@0(5l`|-uZHVu(YDCq5~cP@ z51OV}{hju)Sm?ETJ!lzX^~>$^G4-`ixxg$XimZa6V$(Jd4Wpm?=%(=kio59`)+!8@ z{EMR}p$RZd3SS<*o4AKdXl2X<-6dhE>mD71T45B4Vf9%Q$wzSfM2$uzkRU46(B(c3 zYCLK~oeVvL1k!1$KU#j%9#ZN850&>@lcvCAiEJ;AeiUmPrU+24KVRN2f1Lt}WRj`A z1EDenrb*}uLhBWnE}^UC(Q7d@kTeS;Vyge3Jo+vy21u6JHq=t8zzhlfT;8wnI@DPn zy&s2#f&8;PdI^dE$59(5)l|PxkA8^IGmoPurur&9`aISW%%Vy))z|6KY2?jpiQTD3 z#}M-ziEYxO?4c=Zy>vj1&pdm5*dYv2P`_`iU%v97O;P zlhGi0jC}an1)Bnmf5W`QicvS(#gi2)Mx6mJS0YwZp-zwz49+OGgwIfdE=5e}DZ&6z zL@%7qV5$^hu#R+#h``fRDPd|)2?mG~hKivkB^aF34GDVVa<>RaPZ0))B3`CQ%#|Vx z)}@AsMmoZkM$GLg!2p*l{oyv8qahu@U~?VXV*NF?A%A3^0vQIk5?6^{rw^o;8-Tcl zI6Ml)HXs5OI0y?XsYVgVAxy0V?AK63Z5E@QUT;&|6VklsuV{)IOeEf>^R7VZ z@L1VvJS{4{6g#awun2}?pSP*yamo9?u|lEE5|a{uGnebM`YY5$r`5(O^~eU)g};du zkY)VSllJuWXfl&$e7HqTC)G@zR5K7q)QpKEYJ|kmvOEU#1Ydk^fM75Le;FqQL*r1? z?j=T5Ff~o}o#kF>eEF&A7BTaOj1!%om3!UAkDQ91FrMV}rqfoMY`y=521BR>ck14U z2o|wdUv|41Z@*j_M<(-@h|*p4D5-Ytn`(a6o{j z`klJpBob-BO}d{5)j=12pYHbx8En9ZbU#rL27FZa6VZ||PRZsRh2MT=gZ?~mJ>#+= zSJB`;Qge$542xG}8kW<(q>rfHTTC+j=gWO6B)QCgTe;6kl6Q+qX0Wx~r(EL6M^pW& zav!mXjB)WFE$1n3jc+3f1(J&c$WcLexu1|1EiSjp^h&-z=%a& zfe{m5EO*Ri^w}Kz81lZe;n2blo{g9!jKAn%j8&PduU#;jA-U0b}kmxbNGK zrV6vZ@sM#LJ95a5THKR&>0ec2*fA3auFOrXXV2W!diKmst>^XJaP6HXcZ=w6_jEbj&fO)25e->fJK&GdnYnVxLfbyGO}dAlqC-DMh1x7 z)O&Wz&G2{k%L2XMWu7ZH21qe^k_v8PFECYTQVZNgTUnH<1^N0 zoF~y~X2s-3KyuI+3Sn;vB8RV=(1!@|;6V_g5F+%8Mftd!5d!^vrACV<_B22Celmmc z%^e>yZA8nOAr+;&GBY!e9n79N;b!%LUAs*FC2UgAZZ%4cdgh?Iboa%J6}wnmkUDOr zy0oeOr=NIad#KMYb(dN%|KpR|$FgI`_=ffVGkkx0xVj4kG}R;UZuNp?GZPj1{AgM7oMpKMX*t+WUn&up zms*sQUZlK9TnGwM`ZmZAN1qJ2h0%6yittMcr`^I7z09qfzN%P;N8IUYB?^5yky18C z0(1gbnx9%!mQk9YrqEI0iflK?5iChBa>H~|nw`J8G`pxwd=r7^8ZutHPJb`G*RfGlkGLx#o1CT9gLS0rLIXYDoz*Z_=eXG znSyjW#YrifpT4>@JwGjdR(eTR!OCKVPIXesW~CMuX6I)bopi{PQZ`w*n}VJcEA)9z zMp1gYh$(%EwKBc9q^LBlq@YNlZ?OuCup9)EzQw|Go79q$A_3EJ9Kkwv6o?-BJ_}EC z+!S>B=7J>weX^C7S15?-gRLU;Ljd#@R#s|pmH_CCttdM!%b=taHB^K-k;L@r69M_@ z>&P-aO`#8$(C)M%BoiX&(O}{AuS6f5in!4SO8Mz)1%gh|Qgd;X2xuc!bV*rZ zIwpatn%+fH%5KMwIkJOJz*5SlOvAb^p}NGwCY{18f<84pL!p<9?l5ifqE%?FLZ?q? z4>jp9E2V6Dddd9s65^s02%17x6cpqtwD;qhPn5mbo}IE}+3ibG66Y(lJ4?`%naL@$ z=1fggXyaCM(H1HXHN5k@DKv~$p_H;oMMbG)%TRuDNqQdHtNg3sujfr+HrjGD&{GNu z%jU05Efn~%4a1v}oi-z{qLVf;5nG-xn( zgez8PTXUJwJC!O-p*_x?J+vFTEVZa;nW#90wi#UnuA-rx(4IXw{VG_5II+{$&||S0 zj@Vu>?S~_+FPfSd>!@m2^^$3bxA9Ng*EQ^Z$#jc%RRi(imUhDz1iJsBeM8jC2&%L& z;7>i0`m$-d2~IWaf7Nsg{MPWrtEL3+&JQIvpkcsqB=-JJg0DAZBM9#_>^_b}JD$P% z$KMMLm#BA2L(~aV0(3N_(rw+5-6u?Q0M<49&|(UOD!PT3{FJPQsMioykKFp2>0Jhe z4c@0rLt$dWt*1=-lDSe1zP6LIKJGnJ@$Ek1=sOVVH+H}_<6=NR`bYfKZ|uNe9>i~y ztKY97;B~CkD7)-7(2HH@kqwg&4bzV-dEL|tAhjX&4b$}h_J0akgbN@29|vL^UPCmf z4c@0sYhgvhrqc*5Z8&qm-M59P~zRx@Lnsrn|B1xn3j9| EKa6*N1poj5 diff --git a/rpms/build/x86_64/build.sh b/rpms/build/x86_64/build.sh index 809364bc69..215afb4d57 100644 --- a/rpms/build/x86_64/build.sh +++ b/rpms/build/x86_64/build.sh @@ -400,10 +400,10 @@ if [ "${1}" = "-viz" ]; then buildRPM "awips2" buildRPM "awips2-common-base" #buildRPM "awips2-python-dynamicserialize" - buildRPM "awips2-gfesuite-client" - buildRPM "awips2-gfesuite-server" - buildRPM "awips2-python-numpy" - #buildRPM "awips2-python" + #buildRPM "awips2-gfesuite-client" + #buildRPM "awips2-gfesuite-server" + #buildRPM "awips2-python-numpy" + buildRPM "awips2-python" #buildRPM "awips2-adapt-native" #unpackHttpdPypies #if [ $? -ne 0 ]; then