Merge branch 'omaha_16.2.1' into omaha_16.2.2

Conflicts:
	cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/alarmalert/util/AlarmAlertFunctions.java
	cave/com.raytheon.viz.texteditor/src/com/raytheon/viz/texteditor/dialogs/TextEditorDialog.java


Former-commit-id: 58b1a82b5cf59525bf266416bc8c3ca6c0dea4ad
This commit is contained in:
Steve Harris 2016-01-13 09:20:51 -06:00
commit 25cee1be8c
13 changed files with 83 additions and 32 deletions

View file

@ -133,6 +133,7 @@ import com.raytheon.viz.avnconfig.TafSiteData;
import com.raytheon.viz.core.mode.CAVEMode;
import com.raytheon.viz.texteditor.TextDisplayModel;
import com.raytheon.viz.texteditor.msgs.IAviationObserver;
import com.raytheon.viz.texteditor.util.AviationTextUtility;
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
import com.raytheon.viz.ui.dialogs.ICloseCallback;
import com.raytheon.viz.ui.simulatedtime.SimulatedTimeOperations;
@ -251,6 +252,7 @@ import com.raytheon.viz.ui.simulatedtime.SimulatedTimeOperations;
* Nov 12, 2015 4834 njensen Changed LocalizationOpFailedException to LocalizationException
* Nov 12, 2015 4834 njensen Changed LocalizationOpFailedException to LocalizationException
* Dec 09, 2015 4645 skorolev Initiated wrapChk using ResourceTag. Removed popup menu persistance.
* Jan 07, 2016 4860 skorolev Initiated TextDisplayModel at start of dialog.
*
* </pre>
*
@ -569,6 +571,9 @@ public class TafViewerEditorDlg extends CaveSWTDialog implements ITafSettable,
this.stationList = stationList;
setText("AvnFPS TAF Editor");
// Initiate TextDisplayModel
TextDisplayModel.getInstance().setTextAviation(
new AviationTextUtility());
SimulatedTime.getSystemTime().addSimulatedTimeChangeListener(this);
}

View file

@ -83,6 +83,8 @@ import com.vividsolutions.jts.geom.GeometryFactory;
* 09/09/2014 3580 mapeters Removed IQueryTransport usage (no longer exists).
* 12/03/2014 ASM #16829 D. Friedman Lazy initialization of alarmAlertBell
* Nov 12, 2015 4834 njensen Changed LocalizationOpFailedException to LocalizationException
* 11/29/2015 ASM #14995 m.gamazaychikov Made sure that non-standard latlons in
* LAT...LON string did not result in error.
*
* </pre>
*
@ -535,6 +537,9 @@ public class AlarmAlertFunctions {
String body = stp.getProduct();
if (body.contains("LAT...LON")) {
Coordinate[] coords = getLatLonCoords(body);
if (coords.length == 0) {
return null;
}
GeometryFactory gf = new GeometryFactory();
return gf.createLinearRing(coords);
}
@ -593,6 +598,9 @@ public class AlarmAlertFunctions {
boolean pair = false;
Double dlat, dlong;
StringTokenizer latlonTokens = new StringTokenizer(latLon);
if (latLon.length() == 0) {
return coordinates;
}
while (latlonTokens.hasMoreTokens()) {
currentToken = latlonTokens.nextToken();
if (!currentToken.equals(latlon)) {

View file

@ -360,6 +360,7 @@ import com.raytheon.viz.ui.simulatedtime.SimulatedTimeOperations;
* Oct 28, 2015 5054 randerso Make Text Editor windows appear on same monitor as the parent.
* Removed hard coded offset for window placement.
* Nov 05, 2015 5039 rferrel Prevent wrapping text to a component name line and clean up of streams.
* 11Dec2015 RM14752 mgamazaychikov Fix problems with wrapping in the impact section.
*
* </pre>
*
@ -8022,6 +8023,13 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
inPathcast = true;
}
// is this the impact paragraph?
if (paragraphStart.startsWith(" IMPACT...") ||
paragraphStart.startsWith(" HAZARD...") ||
paragraphStart.startsWith(" SOURCE...") ) {
padding = " ";
}
if (paragraphStart.matches(METAR_PARAGRAPH)) {
padding = " ";
} else if (checkParagraphPadding(paragraphStart)) {
@ -8102,7 +8110,8 @@ public class TextEditorDialog extends CaveSWTDialog implements VerifyListener,
// if the next line does not start a new paragraph
if (!isParagraphStart(lineNumber + 1)) {
// if the next line is not empty
if (!textEditor.getLine(lineNumber + 1).trim().isEmpty()) {
if (!textEditor.getLine(lineNumber + 1).trim().isEmpty() ||
(textEditor.getLine(lineNumber + 1).length() == padding.length()+1) ) {
// Determine what kind of end of line marker line has.
int deleteLen = 0;

View file

@ -90,6 +90,7 @@ import com.vividsolutions.jts.geom.prep.PreparedGeometry;
* refactored WarngenLayer::filterArea.
* Mar 9, 2014 ASM #17190 D. Friedman Use fipsField and areaField for unique area ID.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* Dec 15, 2015 ASM #17933 mgamazaychikov Update calculation of partOfParentRegion.
* </pre>
*
* @author chammack
@ -267,7 +268,7 @@ public class Area {
.get(parentAreaField));
String feArea = (String) regionFeature.attributes
.get("FE_AREA");
area.partOfParentRegion = converFeAreaToPartList(feArea);
area.partOfParentRegion = Arrays.asList(feArea);
}
// Search against point matches

View file

@ -91,6 +91,7 @@ import com.vividsolutions.jts.geom.Polygon;
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* Jun 04, 2015 RODO #4522 randerso Added proper primary key to ActiveTableRecord
* Jul 16, 2015 ASM #17741 D. Friedman Use acceptable timestamp format in query
* Dec 15, 2015 ASM #17933 mgamazaychikov Return feAreas from determineAffectedPortions.
* </pre>
*
* @author jsanchez
@ -560,9 +561,7 @@ public class WatchUtil {
}
}
Set<String> affectedPortions = new HashSet(
Area.converFeAreaToPartList(mungeFeAreas(feAreas)));
return affectedPortions;
return feAreas;
}
private List<Watch> generateMarineWatchItems(Watch template,

View file

@ -33,6 +33,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* Nov 15, 2011 jsanchez Initial creation
* Sep 26, 2012 1193 rferrel Convert to extend CaveSWTDialog
* and made non-blocking.
* Dec 10, 2015 DR 17908 Qinglu Lin Added getEndTime().
*
* </pre>
*
@ -428,4 +429,7 @@ public class ValidPeriodDialog extends CaveSWTDialog {
timer.schedule(updateTimeTask, 60000, 60000);
}
public Calendar getEndTime() {
return endTime;
}
}

View file

@ -174,6 +174,7 @@ import com.vividsolutions.jts.geom.Polygon;
* Nov 9, 2015 DR 14905 Qinglu Lin Updated backupSiteSelected(), disposed(), initializeComponents(), populateBackupGroup(), and
* createProductTypeGroup, and moved existing code to newly created setBackupCboColors() and setBackupSite().
* Nov 25, 2015 DR 17464 Qinglu Lin Updated changeTemplate().
* Dec 10, 2015 DR 17908 Qinglu Lin Updated changeStartEndTimes(), recreateDurations(), changeSelected(), and extSelected().
* </pre>
*
* @author chammack
@ -1750,8 +1751,10 @@ public class WarngenDialog extends CaveSWTDialog implements
}
setDurations(warngenLayer.getConfiguration().getDurations());
durList.setText(defaultDuration.displayString);
endTime = DurationUtil.calcEndTime(startTime, defaultDuration.minutes);
end.setText(df.format(endTime.getTime()));
if (warngenLayer.getConfiguration().isEnableDuration()) {
endTime = DurationUtil.calcEndTime(startTime, defaultDuration.minutes);
end.setText(df.format(endTime.getTime()));
}
warngenLayer.getStormTrackState().newDuration = defaultDuration.minutes;
warngenLayer.getStormTrackState().geomChanged = true;
@ -1956,7 +1959,7 @@ public class WarngenDialog extends CaveSWTDialog implements
private void changeSelected() {
statusHandler.debug("changeSelected");
if ((validPeriodDlg == null) || validPeriodDlg.isDisposed()) {
validPeriodDlg = new ValidPeriodDialog(shell, startTime, endTime);
validPeriodDlg = new ValidPeriodDialog(shell, (Calendar) startTime.clone(), (Calendar) endTime.clone());
validPeriodDlg.setCloseCallback(new ICloseCallback() {
@Override
@ -1966,7 +1969,11 @@ public class WarngenDialog extends CaveSWTDialog implements
+ duration);
if (duration != -1) {
durationList.setEnabled(false);
endTime.add(Calendar.MINUTE, duration);
if (warngenLayer.getConfiguration().isEnableDuration()) {
endTime.add(Calendar.MINUTE, duration);
} else {
endTime = (Calendar) validPeriodDlg.getEndTime().clone();
}
end.setText(df.format(endTime.getTime()));
warngenLayer.getStormTrackState().newDuration = duration;
warngenLayer.getStormTrackState().geomChanged = true;
@ -2128,17 +2135,17 @@ public class WarngenDialog extends CaveSWTDialog implements
FollowupData fd = (FollowupData) updateListCbo
.getData(updateListCbo.getItem(updateListCbo
.getSelectionIndex()));
startTime = TimeUtil.newCalendar();
start.setText(df.format(startTime.getTime()));
if ((fd == null)
|| (WarningAction.valueOf(fd.getAct()) == WarningAction.NEW)) {
startTime = TimeUtil.newCalendar();
endTime = DurationUtil.calcEndTime(this.startTime, duration);
start.setText(df.format(this.startTime.getTime()));
end.setText(df.format(this.endTime.getTime()));
endTime = DurationUtil.calcEndTime(startTime, duration);
} else if (WarningAction.valueOf(fd.getAct()) == WarningAction.EXT) {
startTime = TimeUtil.newCalendar();
endTime = DurationUtil.calcEndTime(extEndTime, duration);
end.setText(df.format(this.endTime.getTime()));
if (warngenLayer.getConfiguration().isEnableDuration()) {
endTime = DurationUtil.calcEndTime(extEndTime, duration);
}
}
end.setText(df.format(endTime.getTime()));
}
}
@ -2359,9 +2366,8 @@ public class WarngenDialog extends CaveSWTDialog implements
warngenLayer.getStormTrackState().duration = duration;
startTime = TimeUtil.newCalendar();
extEndTime = newWarn.getEndTime();
endTime = DurationUtil.calcEndTime(extEndTime, duration);
end.setText(df.format(this.endTime.getTime()));
extEndTime = (Calendar) newWarn.getEndTime().clone();
endTime = extEndTime;
changeStartEndTimes();
try {

View file

@ -81,6 +81,7 @@ import com.vividsolutions.jts.geom.Geometry;
* issuance of an CANCON and restart of CAVE.
* Oct 16, 2013 2439 rferrel Restrict retrieval of warnings to prevent getting future warnings.
* May 7, 2015 ASM #17438 D. Friedman Clean up debug and performance logging.
* Dec 7, 2015 ASM #18017 D. Friedman Allow corrections after partial cancellation.
* </pre>
*
* @author mschenke
@ -304,8 +305,18 @@ public class CurrentWarnings {
|| (action == WarningAction.CON) || (action == WarningAction.EXT))
&& t.contains(current.getTime())) {
rval.add(warning);
} else if ((action == WarningAction.CAN)
|| (action == WarningAction.EXP)) {
} else if (action == WarningAction.CAN) {
for (AbstractWarningRecord otherWarning : records) {
WarningAction otherAction = WarningAction
.valueOf(otherWarning.getAct());
if ((otherAction == WarningAction.NEW || otherAction == WarningAction.CON)
&& warning.getUgcZones().equals(
otherWarning.getUgcZones())) {
rval.clear();
return rval;
}
}
} else if ((action == WarningAction.EXP)) {
rval.clear();
return rval;
}

View file

@ -65,6 +65,7 @@ import com.raytheon.uf.edex.database.dao.DaoConfig;
* Dec 08, 2014 #4953 randerso Updated Jep include path to allow use of
* LocalizationSupport
* Jul 13, 2015 4500 rjpeter Fix SQL Injection concerns.
* Dec 15, 2015 RM17933 mgamazaychikov Add four new corners to PART_OF_STATE.
* </pre>
*
* @author wldougher
@ -121,6 +122,10 @@ public class AreaDictionaryMaker {
PART_OF_STATE.put("wc", "west central");
PART_OF_STATE.put("wu", "western upper");
PART_OF_STATE.put("ww", "western");
PART_OF_STATE.put("ws", "southwest");
PART_OF_STATE.put("es", "southeast");
PART_OF_STATE.put("wn", "northwest");
PART_OF_STATE.put("en", "northeast");
}
protected IPathManager pathMgr = PathManagerFactory.getPathManager();
@ -426,4 +431,4 @@ public class AreaDictionaryMaker {
statusHandler.error(e.getLocalizedMessage(), e);
}
}
}
}

View file

@ -69,9 +69,9 @@
#
# 05/29/2015 #17144 bhunder Added weather Params for URMA25 and OCONUS RTMA
# 09/02/2015 #4819 rferrel Added HWRF.
# 09/09/2015 16287 amoore Additional validation of user input
# 10/07/2015 #4958 dgilling Added support for NationalBlend D2D data.
# 10/13/2015 #4961 randerso Updated NewTerrain/BaseTerrain database definitions
# 09/09/2015 16287 amoore Additional validation of user input
# 10/30/2015 #17940 jendrowski Responded to Code Review. Mostly syntactical changes.
####################################################################################################
@ -1905,7 +1905,7 @@ SITES = {
'HUS' : ([1073,689], (19.0, 8.0), ( 67.0, 43.0), 'EST5EDT', Grid211, "nc"),
#'NHA' : ([1729,1601], (1.0,1.0), (1728.0, 1600.0), 'EST5EDT', GridForNHA, "nc"),
'NHA' : ([1873,1361], (35.5,3.5), (58.5,42.5), 'EST5EDT', Grid211, "nc"), # updated
}
}
# Get list of valid office types, for validation.
VALID_OFFICE_TYPES = []
@ -1916,6 +1916,7 @@ for siteValues in SITES.values():
if officeType not in VALID_OFFICE_TYPES:
# A new office type
VALID_OFFICE_TYPES.append(officeType)
#---------------------------------------------------------------------------
#
# Time Constraint configuration section
@ -3082,13 +3083,7 @@ DATABASES = [
# Intersite coordination database parameter groupings, based on
# OFFICIALDBS, but time constraint is always TC1
ISCPARMS = []
if type(officeType) != str:
raise TypeError, "Office type not a str: " + `officeType`
else:
if officeType not in VALID_OFFICE_TYPES:
raise ValueError, "Office type: " + str(officeType) + " does not match any of the following: [" + (', '.join(VALID_OFFICE_TYPES)) + "]"
#
# new parameters for NewTerrain
#
@ -3269,6 +3264,11 @@ for wes, tc in (OFFICIALDBS + localISCParms):
for wes, officeType in (EXTRA_ISC_PARMS + localISCExtraParms):
if myOfficeType == officeType:
continue
if type(officeType) != str:
raise TypeError, "Office type not a str: " + `officeType`
else:
if officeType not in VALID_OFFICE_TYPES:
raise ValueError, "Office type: " + str(officeType) + " does not match any of the following: [" + (', '.join(VALID_OFFICE_TYPES)) + "]"
for we in wes:
wecopy = list(we)
wecopy[0] = wecopy[0] + officeType #rename the weather element

View file

@ -89,7 +89,10 @@ HDS ^(ZEGZ98) (K.{3}) (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-
# YSQA88 KMSR 011220 /mNWS_185 !grib/nws/NWS_185/#255/201102010600/F000/MSTAV/sfc/
# YEQA88 KMSR 011210 !grib2/nws/NWS_255/#255/201102010600F000/WEASD/0
HDS ^([YZ][ES]QA88) KMSR (..)(..)(..)[^!]*!(grib|grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*)
HDS ^([YZ][ES]QA88) KMSR (..)(..)(..)[^!]*!(grib)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})/(F[0-9]{3})/([^/]*)
FILE -overwrite -log -close -edex /data_store/\5/(\2:yyyy)(\2:mm)\2/\3/\6/GRID\7/\9Z_\(10)_\(11)-\1_KMSR_\2\3\4_(seq).\5.%Y%m%d%H
HDS ^([YZ][ES]QA88) KMSR (..)(..)(..)[^!]*!(grib2)/[^/]*/([^/]*)/#([^/]*)/([0-9]{8})([0-9]{4})(F[0-9]{3})/([^/]*)
FILE -overwrite -log -close -edex /data_store/\5/(\2:yyyy)(\2:mm)\2/\3/\6/GRID\7/\9Z_\(10)_\(11)-\1_KMSR_\2\3\4_(seq).\5.%Y%m%d%H
# AWIPS 1: GRID ^HAXA00.*KWBC /img/SBN/Raw