From 0dea4811cdb3e0c42d8a3f5b0ec4a5c994b5e40e Mon Sep 17 00:00:00 2001 From: Jingtao Deng Date: Fri, 15 May 2015 16:04:48 -0400 Subject: [PATCH] VLab Issue #8200 - DR17493 Saving a Selected Preset in Hydro PDC does not function; fixes #8200 Change-Id: I3fb9a7e43057f374a3d055a3ab294eca094a16cb Former-commit-id: f4cfa77511b9d887006582da8dc7dd4f044b4d3e --- .../pointdatacontrol/db/PDCDataManager.java | 4 ++-- .../datamanager/HydroDataManager.java | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/pointdatacontrol/db/PDCDataManager.java b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/pointdatacontrol/db/PDCDataManager.java index 5bee91c2dc..f6f77e3a41 100644 --- a/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/pointdatacontrol/db/PDCDataManager.java +++ b/cave/com.raytheon.viz.hydro/src/com/raytheon/viz/hydro/pointdatacontrol/db/PDCDataManager.java @@ -176,8 +176,8 @@ public class PDCDataManager extends HydroDataManager { SqlBuilder sql = new SqlBuilder("pointdatapresets"); sql.setSqlType(SqlBuilder.UPDATE); sql.addString("descr", node.getDescription()); - sql.addInt("preset_rank", node.getPresetRank()); - sql.addString("preset_string", node.getPresetString()); + sql.addInt(" preset_rank", node.getPresetRank()); + sql.addString(" preset_string", node.getPresetString()); sql.setWhereClause(" where preset_id = '" + node.getPresetId() + "'"); runStatement(sql.toString()); diff --git a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/datamanager/HydroDataManager.java b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/datamanager/HydroDataManager.java index 20b84070a9..f54876b4a3 100644 --- a/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/datamanager/HydroDataManager.java +++ b/cave/com.raytheon.viz.hydrocommon/src/com/raytheon/viz/hydrocommon/datamanager/HydroDataManager.java @@ -149,6 +149,19 @@ public abstract class HydroDataManager { /* Check if text fields include single apostrophe, if it does, replace to two single apostrophe since it is treated as special char in Postgres */ String newDataQuery = ""; + String PDCDataStr = ""; + int PDC_presetStr_begindex = 0; + + /* special handling for PDC*/ + if (dataQuery.toLowerCase().contains("preset_string")) + { + PDC_presetStr_begindex = dataQuery.toLowerCase().indexOf("'at="); + if (PDC_presetStr_begindex > 0) + { + PDCDataStr = dataQuery.substring(PDC_presetStr_begindex); + dataQuery = dataQuery.substring(0, PDC_presetStr_begindex); + } + } String[] dataElement = dataQuery.split(", "); for (int j = 0; j < dataElement.length; j++) @@ -217,6 +230,15 @@ public abstract class HydroDataManager { else newDataQuery = newDataQuery + newSubData + ", "; } + + if (PDC_presetStr_begindex > 0) + { + if (newDataQuery.toLowerCase().startsWith("insert")) + newDataQuery = newDataQuery + ", " + PDCDataStr; + else if (newDataQuery.toLowerCase().startsWith("update")) + newDataQuery = newDataQuery + PDCDataStr; + + } return newDataQuery; }