Omaha #4501 - Changed database connections. Got rid of Vector.

Former-commit-id: 61a635e29d3d823c750cf8b69f683766c47898c4
This commit is contained in:
Slav Korolev 2015-05-22 16:29:29 -04:00
parent ae058a5bc7
commit 3ca1c006aa
7 changed files with 261 additions and 391 deletions

View file

@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Xdat Plug-in
Bundle-SymbolicName: com.raytheon.viz.xdat;singleton:=true
Bundle-Version: 1.14.0.qualifier
Bundle-Version: 1.15.0.qualifier
Bundle-Vendor: Raytheon
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
@ -14,5 +14,6 @@ Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: com.raytheon.uf.common.ohd,
com.raytheon.uf.common.time,
com.raytheon.uf.common.time.util,
com.raytheon.uf.common.util
Bundle-ClassPath: com.raytheon.viz.xdat.jar

View file

@ -21,7 +21,6 @@ package com.raytheon.viz.xdat;
import java.io.File;
import java.util.ArrayList;
import java.util.Vector;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@ -48,6 +47,8 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* ------------ ---------- ----------- --------------------------
* 10 Nov 2008 lvenable Initial creation.
* 10 Feb 2009 wkwock Added functions.
* 31 May 2015 4501 skorolev Got rid of Vector.
*
* </pre>
*
* @author lvenable
@ -176,8 +177,9 @@ public class GroupDataDlg extends CaveSWTDialog {
*/
private void retrieveAndDisplayGroupData() {
String selectedGroup = groupList.getItem(groupList.getSelectionIndex());
String groupsDir = AppsDefaults.getInstance().getToken("xdat_groups_dir");
String groupsDir = AppsDefaults.getInstance().getToken(
"xdat_groups_dir");
File file = new File(groupsDir + File.separator + selectedGroup);
@ -186,10 +188,9 @@ public class GroupDataDlg extends CaveSWTDialog {
StringBuilder strBld = new StringBuilder();
for (int i = 0; i < idList.size(); i++) {
Vector<String[]> results = databaseMgr.getGroupData(idList.get(i),
displayCB.getStartDate(), displayCB.getEndDate());
java.util.List<String[]> results = databaseMgr.getGroupData(
idList.get(i), displayCB.getStartDate(),
displayCB.getEndDate());
if (results == null) {
return;
}
@ -204,11 +205,11 @@ public class GroupDataDlg extends CaveSWTDialog {
/**
* Format the group data.
*
* @param dataArray
* @param results
* Array of data to be formatted for the display.
* @return StringBuilder class containing the formatted data.
*/
private StringBuilder formatGroupData(Vector<String[]> dataArray) {
private StringBuilder formatGroupData(java.util.List<String[]> results) {
StringBuilder strBld = new StringBuilder();
@ -221,7 +222,7 @@ public class GroupDataDlg extends CaveSWTDialog {
String hdr = " ID PE DUR TS E OBSTIME PRODUCT VALUE CHANGE";
String dashLine = "-------------------------------------------------------------------------------";
for (String[] rowData : dataArray) {
for (String[] rowData : results) {
if (rowData.length == 2) {

View file

@ -47,6 +47,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* ------------ ---------- ----------- --------------------------
* 10 Nov 2008 lvenable Initial creation.
* 10 Feb 2009 wkwock Added functions.
* 22 May 2015 skorolev Corrected shefParamCode. Got rid of Vector.
*
* </pre>
*
@ -203,7 +204,6 @@ public class InsertDataDlg extends CaveSWTDialog {
Label idLbl = new Label(topCtrlComp, SWT.RIGHT);
idLbl.setText("ID: ");
idLbl.setLayoutData(gd);
;
gd = new GridData(100, SWT.DEFAULT);
idTF = new Text(topCtrlComp, SWT.BORDER);
@ -246,10 +246,11 @@ public class InsertDataDlg extends CaveSWTDialog {
return;
}
String[] shefParamCode = databaseMgr.getShefParamCode(ID, PE);
java.util.List<String> shefParamCode = databaseMgr
.getShefParamCode(ID, PE);
if (shefParamCode != null) {
for (int i = 0; i < shefParamCode.length; i++) {
shefParamList.add(shefParamCode[i]);
for (int i = 0; i < shefParamCode.size(); i++) {
shefParamList.add(shefParamCode.get(i));
}
}
}
@ -368,12 +369,11 @@ public class InsertDataDlg extends CaveSWTDialog {
hourSpnr.setEnabled(flag);
minuteSpnr.setEnabled(flag);
}
private void postToDB() {
String id = idTF.getText().trim();
if (id.compareTo("") == 0) {
MessageBox mb = new MessageBox(getParent(),
SWT.ICON_ERROR | SWT.OK);
MessageBox mb = new MessageBox(getParent(), SWT.ICON_ERROR | SWT.OK);
mb.setText("Error");
mb.setMessage("ERROR: cannot post because ID is blank.");
mb.open();
@ -382,8 +382,7 @@ public class InsertDataDlg extends CaveSWTDialog {
String shefParamCode[] = shefParamList.getSelection();
if (shefParamCode.length != 1) {
MessageBox mb = new MessageBox(getParent(),
SWT.ICON_ERROR | SWT.OK);
MessageBox mb = new MessageBox(getParent(), SWT.ICON_ERROR | SWT.OK);
mb.setText("Error");
mb.setMessage("ERROR: cannot post because PE Type is blank.");
mb.open();
@ -396,19 +395,19 @@ public class InsertDataDlg extends CaveSWTDialog {
try {
value = Double.parseDouble(enterDataTF.getText().trim());
} catch (NumberFormatException nfe) {
MessageBox mb = new MessageBox(getParent(),
SWT.ICON_ERROR | SWT.OK);
MessageBox mb = new MessageBox(getParent(), SWT.ICON_ERROR | SWT.OK);
mb.setText("Error");
mb.setMessage("ERROR: cannot post because data value is blank or invalid.");
mb.open();
return;
}
int hour = hourSpnr.getSelection();
int minute = minuteSpnr.getSelection();
XdatShefUtil shefUtil = new XdatShefUtil();
shefUtil.createInsertFile(id, pe, value, hour, minute, displayCB.getStartDate());
shefUtil.createInsertFile(id, pe, value, hour, minute,
displayCB.getStartDate());
shefUtil.sendFile();
shell.dispose();

View file

@ -25,14 +25,12 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import java.util.Vector;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
@ -47,6 +45,10 @@ import org.eclipse.swt.widgets.Layout;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Spinner;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.common.time.util.TimeUtil;
import com.raytheon.viz.hydrocommon.HydroConstants;
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
@ -59,6 +61,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* ------------ ---------- ----------- --------------------------
* 27 Oct 2008 lvenable Initial creation.
* 10 Feb 2009 wkwock Added functions.
* 31 May 2015 4501 skorolev Got rid of Vector.
*
* </pre>
*
@ -68,6 +71,9 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
*/
public class PrecipDataDlg extends CaveSWTDialog {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(PrecipDataDlg.class);
/**
* Hour spinner.
*/
@ -227,7 +233,7 @@ public class PrecipDataDlg extends CaveSWTDialog {
}
});
}
private void displayCoopPrecip() {
String startDate = displayCB.getEndDate();
String header1 = "\t\t\t 24 Hour Precipitation Ending at "
@ -235,7 +241,7 @@ public class PrecipDataDlg extends CaveSWTDialog {
String header2 = " ID PE DUR TS E OBSTIME PRODUCT VALUE";
String dashLine = "-------------------------------------------------------------------";
String dataFmt = "%-8s %2s %4s %2s %1s %19s %13s %6.2f";
Vector<String[]> coopPrecipData = databaseMgr
List<String[]> coopPrecipData = databaseMgr
.getCoopPrecipData(startDate);
if (coopPrecipData == null) {
@ -258,10 +264,12 @@ public class PrecipDataDlg extends CaveSWTDialog {
value = Double.parseDouble(dataText[6]);
} catch (NumberFormatException nfe) {
value = HydroConstants.MISSING_VALUE;
statusHandler.handle(Priority.ERROR, "Fail to parse "
+ dataText[6] + ".");
}
displayText[i] = String.format(dataFmt, dataText[0],
"PP", dataText[1], dataText[2], dataText[3],
dataText[4], productID, value);
displayText[i] = String.format(dataFmt, dataText[0], "PP",
dataText[1], dataText[2], dataText[3], dataText[4],
productID, value);
i++;
}
displayCB.setDisplayText(displayText);
@ -277,11 +285,11 @@ public class PrecipDataDlg extends CaveSWTDialog {
Calendar date = null;
try {
Date sDate = obsDate.parse(displayCB.getEndDate());
date = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
date.setTime(sDate);
date.set(GregorianCalendar.HOUR_OF_DAY, hour);
date = TimeUtil.newGmtCalendar(sDate);
} catch (ParseException e) {
date = Calendar.getInstance(TimeZone.getTimeZone("GMT"));;
date = TimeUtil.newGmtCalendar();
statusHandler.handle(Priority.ERROR,
"Fail to parse " + displayCB.getEndDate() + ".");
}
obsDate = new SimpleDateFormat("yyyy-MM-dd HH:00:00", Locale.US);
@ -292,16 +300,21 @@ public class PrecipDataDlg extends CaveSWTDialog {
HashMap<String, Double> precipLidAndValue = databaseMgr
.getPrecipLidAndValue(obsTimeStr);
if (precipLidAndValue == null) {
precipLidAndValue = new HashMap<String, Double>();
}
date.add(Calendar.HOUR_OF_DAY, 0 - duration);
obsTimeStr = obsDate.format(date.getTime());
Map<String, Double> precipLidAndValue2 = databaseMgr
.getPrecipLidAndValue(obsTimeStr);
if (precipLidAndValue2 == null) {
precipLidAndValue2 = new HashMap<String, Double>();
}
ArrayList<String> precipLidAndDiffBuf = new ArrayList<String>(precipLidAndValue.size());
List<String> precipLidAndDiffBuf = new ArrayList<String>(
precipLidAndValue.size());
if (precipLidAndValue.size() == 0) {
precipLidAndDiffBuf.add("No " + duration
+ " Hour Precipitation data found.");
@ -316,7 +329,7 @@ public class PrecipDataDlg extends CaveSWTDialog {
List<XdatPcData> dataList = new ArrayList<XdatPcData>();
while (iter.hasNext()) {
lid = iter.next();
double value = precipLidAndValue.get(lid);
double value2 = -999;
if (precipLidAndValue2.containsKey(lid)) {
@ -332,20 +345,20 @@ public class PrecipDataDlg extends CaveSWTDialog {
}
XdatPcData data = new XdatPcData(lid, valDiff);
dataList.add(data);
dataList.add(data);
}
Collections.sort(dataList);
for (int i = 0; i < dataList.size(); i++) {
XdatPcData data = dataList.get(i);
precipLidAndDiffBuf.add(String.format("%-8s %4.2f", data.getLid(),
data.getValue()));
precipLidAndDiffBuf.add(String.format("%-8s %4.2f",
data.getLid(), data.getValue()));
}
}
displayCB.setDisplayText(precipLidAndDiffBuf.toArray(new String[precipLidAndDiffBuf.size()]));
displayCB.setDisplayText(precipLidAndDiffBuf
.toArray(new String[precipLidAndDiffBuf.size()]));
}
}

View file

@ -19,8 +19,6 @@
**/
package com.raytheon.viz.xdat;
import java.util.Vector;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@ -51,6 +49,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* 17 Jan 2008 lvenable Updated code to format data display on
* the screen.
* 10 Feb 2009 wkwock Added functions.
* 31 May 2015 4501 skorolev Got rid of Vector.
*
* </pre>
*
@ -68,7 +67,7 @@ public class SiteListDlg extends CaveSWTDialog {
/**
* Data list control.
*/
private List dataList;
private List dataListLst;
/**
* Label for the data list control.
@ -88,7 +87,7 @@ public class SiteListDlg extends CaveSWTDialog {
/**
* Data array.
*/
private Vector<String[]> dataArray;
private java.util.List<String[]> dataArray;
/**
* This is for TESTING PURPOSES ONLY. There can be a subset of states in the
@ -218,12 +217,12 @@ public class SiteListDlg extends CaveSWTDialog {
gd.widthHint = 350;
gd.heightHint = 400;
gd.horizontalSpan = 2;
dataList = new List(controlComp, SWT.BORDER | SWT.SINGLE | SWT.V_SCROLL
| SWT.H_SCROLL);
dataList.setLayoutData(gd);
dataList.setFont(controlFont);
dataListLst = new List(controlComp, SWT.BORDER | SWT.SINGLE
| SWT.V_SCROLL | SWT.H_SCROLL);
dataListLst.setLayoutData(gd);
dataListLst.setFont(controlFont);
dataList.addSelectionListener(new SelectionAdapter() {
dataListLst.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
displayListSelection();
@ -288,7 +287,7 @@ public class SiteListDlg extends CaveSWTDialog {
searchStr = searchTF.getText().toUpperCase();
dataArray = databaseMgr.search_string_list(searchStr, peType);
dataList.removeAll();
dataListLst.removeAll();
if (dataArray == null) {
String msg = String.format(searchFmt, 0, peType, searchStr);
@ -303,7 +302,7 @@ public class SiteListDlg extends CaveSWTDialog {
des = rowData[1];
}
dataList.add(String.format(listFmt, rowData[0], des));
dataListLst.add(String.format(listFmt, rowData[0], des));
}
String str = String.format(searchFmt, dataArray.size(), peType,
@ -334,7 +333,7 @@ public class SiteListDlg extends CaveSWTDialog {
}
dataArray = databaseMgr.searchIds(stateName, pe);
dataList.removeAll();
dataListLst.removeAll();
if (dataArray == null) {
String msg = String.format(searchFmt, 0, pe, stateName);
@ -349,7 +348,7 @@ public class SiteListDlg extends CaveSWTDialog {
des = rowData[1];
}
dataList.add(String.format(listFmt, rowData[0], des));
dataListLst.add(String.format(listFmt, rowData[0], des));
}
String str = String.format(searchFmt, dataArray.size(), pe, stateName);
@ -365,16 +364,16 @@ public class SiteListDlg extends CaveSWTDialog {
String peType = displayCB.getSelectedPE();
// Get the ID from the data array.
int selectionIndex = dataList.getSelectionIndex();
int selectionIndex = dataListLst.getSelectionIndex();
String selectedId = null;
if (selectionIndex > -1) {
selectedId = dataArray.get(selectionIndex)[0];
}
Vector<String[]> dataVec = databaseMgr.getListData(selectedId, peType,
displayCB.getStartDate(), displayCB.getEndDate());
java.util.List<String[]> dataList = databaseMgr.getListData(selectedId,
peType, displayCB.getStartDate(), displayCB.getEndDate());
if (dataVec == null) {
if (dataList == null) {
String[] msg = new String[] { "No data available." };
displayCB.setDisplayText(msg);
return;
@ -389,7 +388,7 @@ public class SiteListDlg extends CaveSWTDialog {
locationDes = "";
}
String[] displayData = new String[dataVec.size() + 3]; // 1st three
String[] displayData = new String[dataList.size() + 3]; // 1st three
// lines for
// header
String dataFmt = "%-8S %2s %-4S %2S %1S %19S %13S % 6.2f % 6.2f";
@ -399,16 +398,17 @@ public class SiteListDlg extends CaveSWTDialog {
displayData[1] = displayHeader;
displayData[2] = dashLine;
for (int i = 0; i < dataVec.size(); i++) {
String[] rowData = dataVec.get(i);
for (int i = 0; i < dataList.size(); i++) {
String[] rowData = dataList.get(i);
double dblVal = Double.valueOf(rowData[5]);
double rndVal = (Math.round(dblVal * 100.0)) / 100.0;
double change = 0;
if (i < (dataVec.size() - 1)) { // if this is not the last one, then
if (i < (dataList.size() - 1)) { // if this is not the last one,
// then
// calculate the changes
String[] nextRowData = dataVec.get(i + 1);
String[] nextRowData = dataList.get(i + 1);
if ((Double.valueOf(rowData[5]) != HydroConstants.MISSING_VALUE)
&& (Double.valueOf(nextRowData[5]) != HydroConstants.MISSING_VALUE)) {
change = Double.valueOf(rowData[5])

View file

@ -24,32 +24,27 @@ import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
import org.postgresql.util.PSQLException;
import com.raytheon.uf.common.ohd.AppsDefaults;
import com.raytheon.uf.common.status.IUFStatusHandler;
import com.raytheon.uf.common.status.UFStatus;
import com.raytheon.uf.common.status.UFStatus.Priority;
import com.raytheon.uf.viz.core.catalog.DirectDbQuery;
import com.raytheon.uf.viz.core.catalog.DirectDbQuery.QueryLanguage;
import com.raytheon.uf.viz.core.exception.VizException;
import com.raytheon.viz.hydrocommon.HydroConstants;
/**
* This class acquire all xdat tokens.
* XdatDB manager. This class acquire all xdat tokens.
*
* <pre>
* SOFTWARE HISTORY
@ -60,6 +55,8 @@ import com.raytheon.viz.hydrocommon.HydroConstants;
* Duff
* 10 Feb 2009 wkwock Added functions and clean up.
* 12 Aug 2014 3049 bkowal Close the BufferedReader when finished.
* 21 May 2015 4501 skorolev Changed a way of database connection. Got rid of Vector.
*
* </pre>
*
* @author wkwock
@ -70,54 +67,15 @@ public class XdatDB {
private static final transient IUFStatusHandler statusHandler = UFStatus
.getHandler(XdatDB.class);
/**
* Database connection.
*/
private Connection conn;
/**
* Query statement.
*/
private Statement queryStmt;
public static final String IHFS = "ihfs";
private Map<String, String> peMap = null;
/**
* Constructor
*
* @param shell
* , URL
*/
public XdatDB(String URL) {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
public XdatDB() {
try {
conn = DriverManager.getConnection(URL);
// Print all warnings
for (SQLWarning warn = conn.getWarnings(); warn != null; warn = warn
.getNextWarning()) {
conn = null;
}
if (conn != null) {
queryStmt = conn.createStatement();
}
} catch (PSQLException pe) {
conn = null;
pe.printStackTrace();
} catch (SQLException se) {
conn = null;
se.printStackTrace();
}
// peMap = new ReadPeMap();
}
/**
@ -125,40 +83,26 @@ public class XdatDB {
*
* @param query
* SQL statement.
* @return Vector Rows of data.
* @return List Rows of data.
*/
public Vector<String> runQuery(String query) {
Vector<String> result = new Vector<String>();
if (conn == null) {
return null;
}
public List<String> runQuery(String query) {
List<String> result = new ArrayList<String>();
try {
ResultSet rs = queryStmt.executeQuery(query);
if (rs == null) {
return null;
}
while (rs.next()) {
StringBuilder strBld = new StringBuilder();
int numberOfCols = rs.getMetaData().getColumnCount();
for (int i = 1; i <= numberOfCols; i++) {
strBld.append(rs.getString(i)).append(" ");
List<Object[]> rs = DirectDbQuery.executeQuery(query, IHFS,
QueryLanguage.SQL);
if (!rs.isEmpty()) {
for (Object[] obj : rs) {
if (obj[0] != null) {
result.add(((String) obj[0]).trim());
}
}
result.add(strBld.toString().trim());
} else {
result = null;
}
} catch (SQLException se) {
se.printStackTrace();
return null;
} catch (VizException e) {
statusHandler
.handle(Priority.PROBLEM, "Error querying database", e);
}
return result;
}
@ -168,42 +112,37 @@ public class XdatDB {
*
* @param query
* SQL query.
* @return Vector (rows) of String arrays (columns of data).
* @return List (rows) of String arrays (columns of data).
*/
public Vector<String[]> runDetailedQuery(String query) {
Vector<String[]> result = null;
// If the database connection is null then return null.
if (conn == null) {
return null;
}
public List<String[]> runDetailedQuery(String query) {
List<String[]> result = null;
try {
ResultSet rs = queryStmt.executeQuery(query);
if (rs == null) {
return null;
}
while (rs.next()) {
List<Object[]> rs = DirectDbQuery.executeQuery(query, IHFS,
QueryLanguage.SQL);
if (!rs.isEmpty()) {
if (result == null) {
result = new Vector<String[]>();
result = new ArrayList<String[]>();
}
Iterator<Object[]> rsiterator = rs.iterator();
while (rsiterator.hasNext()) {
Object[] row = rsiterator.next();
int numberOfCols = row.length;
String[] data = new String[numberOfCols];
for (int i = 0; i < numberOfCols; i++) {
if (row[i] != null) {
data[i] = row[i].toString();
}
// Get the number of columns in the row of data.
int numberOfCols = rs.getMetaData().getColumnCount();
String[] data = new String[numberOfCols];
for (int i = 0; i < numberOfCols; i++) {
data[i] = rs.getString(i + 1);
}
result.add(data);
}
result.add(data);
}
} catch (SQLException se) {
se.printStackTrace();
} catch (VizException e) {
statusHandler
.handle(Priority.PROBLEM, "Error querying database", e);
return null;
}
return result;
}
@ -223,23 +162,23 @@ public class XdatDB {
if (table.compareTo("_no_table_") != 0) {
String queryStr = "SELECT num_hours_host from purgedyndata where table_name = '"
+ table + "'";
ResultSet rs;
List<Integer> hours;
try {
rs = queryStmt.executeQuery(queryStr);
if (rs == null) {
numHours = 0;
} else {
if (rs.next()) {
numHours = rs.getInt(1);
}
List<Object[]> rs = DirectDbQuery.executeQuery(queryStr,
IHFS, QueryLanguage.SQL);
hours = new ArrayList<Integer>(rs.size());
for (Object[] obj : rs) {
hours.add((Integer) obj[0]);
}
} catch (SQLException e) {
e.printStackTrace();
}
if (numHours > maxNumHours) {
maxNumHours = numHours;
if (hours != null && hours.size() > 1) {
numHours = hours.get(0);
}
if (numHours > maxNumHours) {
maxNumHours = numHours;
}
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
"Error to get number of observation days", e);
}
}
}
@ -259,11 +198,9 @@ public class XdatDB {
*/
public String[] getStateList() {
String states[];
// select DISTINCT state from location where post = 1 and state !='XX'
// order by state
Vector<String> stateVector = runQuery("select DISTINCT state from location where post = 1 and state !='XX' order by state");
states = stateVector.toArray(new String[stateVector.size()]);
List<String> stateList = runQuery("select DISTINCT state from location where post = 1 and state !='XX' order by state");
states = stateList.toArray(new String[stateList.size()]);
return states;
}
@ -274,10 +211,9 @@ public class XdatDB {
* @param stateName
* 2 Letter state abbreviation.
* @param pe
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public Vector<String[]> searchIds(String stateName, String pe) {
public List<String[]> searchIds(String stateName, String pe) {
String queryStr = "select distinct location.lid, des from location, latestobsvalue "
+ "where location.lid = latestobsvalue.lid and location.state = '"
@ -286,7 +222,7 @@ public class XdatDB {
+ pe
+ "' order by location.lid";
Vector<String[]> idVector = runDetailedQuery(queryStr);
List<String[]> idVector = runDetailedQuery(queryStr);
return idVector;
}
@ -298,7 +234,7 @@ public class XdatDB {
* @param peType
* @return ID and Destination from location table
*/
public Vector<String[]> search_string_list(String searchStr, String peType) {
public List<String[]> search_string_list(String searchStr, String peType) {
String queryStr = "select distinct location.lid, location.des from location, latestobsvalue "
+ "where location.lid = latestobsvalue.lid and (location.lid like '%"
+ searchStr
@ -308,7 +244,7 @@ public class XdatDB {
+ peType
+ "' order by location.lid";
Vector<String[]> idVector = runDetailedQuery(queryStr);
List<String[]> idVector = runDetailedQuery(queryStr);
return idVector;
}
@ -318,10 +254,9 @@ public class XdatDB {
*
* @param dateStr
* Date in a String format.
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public Vector<String[]> getAboveFsSearch(String dateStr) {
public List<String[]> getAboveFsSearch(String dateStr) {
String query = "select height.lid, height.pe, height.dur, height.ts, height.extremum, "
+ "height.obstime, height.value, height.product_id, riverstat.fs "
@ -332,7 +267,7 @@ public class XdatDB {
+ "' and height.value >= riverstat.fs order by height.lid, "
+ "height.obstime desc";
Vector<String[]> aboveFsVector = runDetailedQuery(query);
List<String[]> aboveFsVector = runDetailedQuery(query);
return aboveFsVector;
}
@ -342,15 +277,14 @@ public class XdatDB {
*
* @param unknownTable
* Unknown table name.
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public Vector<String[]> getUnknownSites(String unknownTable) {
public List<String[]> getUnknownSites(String unknownTable) {
String query = "select lid, product_id, producttime from "
+ unknownTable + " order by lid, producttime desc";
System.out.println("Query = [" + query + "]");
Vector<String[]> unknownSitesVector = runDetailedQuery(query);
List<String[]> unknownSitesVector = runDetailedQuery(query);
return unknownSitesVector;
}
@ -364,10 +298,9 @@ public class XdatDB {
* Starting date string.
* @param endDateStr
* Ending date string.
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public Vector<String[]> getRejectedData(String peStr, String startDateStr,
public List<String[]> getRejectedData(String peStr, String startDateStr,
String endDateStr) {
String query = "select lid, pe, dur, ts, extremum, validtime, postingtime, value "
@ -379,7 +312,7 @@ public class XdatDB {
+ endDateStr
+ " 23:59:59' order by lid, validtime desc";
Vector<String[]> rejectedDataVector = runDetailedQuery(query);
List<String[]> rejectedDataVector = runDetailedQuery(query);
return rejectedDataVector;
}
@ -387,14 +320,13 @@ public class XdatDB {
/**
* Get the sites turned off.
*
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public Vector<String[]> getSitesTurnedOffData() {
public List<String[]> getSitesTurnedOffData() {
String query = "select lid, county, state, des from location where post = 0 order by state, lid";
Vector<String[]> sitesTurnedOffVector = runDetailedQuery(query);
List<String[]> sitesTurnedOffVector = runDetailedQuery(query);
return sitesTurnedOffVector;
@ -411,8 +343,7 @@ public class XdatDB {
* Starting date.
* @param endDateStr
* Ending date.
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public String[] getSearchData(String lidStr, String peStr,
String startDateStr, String endDateStr) {
@ -426,7 +357,7 @@ public class XdatDB {
+ endDateStr
+ " 23:59:59' order by obstime desc";
Vector<String> searchDataVector = runQuery(query);
List<String> searchDataVector = runQuery(query);
if (searchDataVector != null) {
searchDataBuf = new String[searchDataVector.size()];
@ -450,7 +381,7 @@ public class XdatDB {
String locationDes = "";
String query = "select des from location where lid = '" + ID + "'";
Vector<String> searchDataVector = runQuery(query);
List<String> searchDataVector = runQuery(query);
if (searchDataVector != null) {
@ -471,13 +402,12 @@ public class XdatDB {
* Starting Date
* @param endDate
* Ending Date
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public Vector<String[]> getGroupData(String[] input, String startDate,
public List<String[]> getGroupData(String[] input, String startDate,
String endDate) {
Vector<String[]> returnVec = new Vector<String[]>();
ArrayList<String[]> returnVec = new ArrayList<String[]>();
String lid = null;
String pe = null;
StringBuffer sql = new StringBuffer();
@ -489,7 +419,7 @@ public class XdatDB {
sql.append("select des from location where lid = '" + lid + "'");
Vector<String[]> rs = runDetailedQuery(sql.toString());
List<String[]> rs = runDetailedQuery(sql.toString());
sql.setLength(0);
data = new String[2];
@ -502,7 +432,7 @@ public class XdatDB {
} else {
data[1] = "";
}
/* Add row to return Vector */
/* Add row to return List */
returnVec.add(data);
// Determine the table to query
@ -529,10 +459,10 @@ public class XdatDB {
double nextValue = 0.0;
double value = 0.0;
/* Need to calculate the chage */
/* Need to calculate the change */
if ((rs != null) && (rs.size() > 0)) {
for (int j = 0; j < rs.size(); j++) { // Vector
ArrayList<String> list = new ArrayList<String>();
List<String> list = new ArrayList<String>();
list.add(lid);
list.add(pe);
nextValue = HydroConstants.MISSING_VALUE;
@ -574,7 +504,6 @@ public class XdatDB {
} else {
list.add(row[k]);
}
// returnVec.add(list.toArray(new String[list.size()]));
}
returnVec.add(list.toArray(new String[list.size()]));
}
@ -594,10 +523,9 @@ public class XdatDB {
* Start date.
* @param endDate
* End date.
* @return Vector<String[]> Vector (rows) of String arrays (columns) of
* data.
* @return List<String[]> List (rows) of String arrays (columns) of data.
*/
public Vector<String[]> getListData(String id, String peStr,
public List<String[]> getListData(String id, String peStr,
String startDate, String endDate) {
String dbTable = getPeMap().get(peStr);
@ -622,7 +550,7 @@ public class XdatDB {
+ " 00:00:00' and '"
+ endDate + " 23:59:59' order by obstime desc";
Vector<String[]> listDataVector = runDetailedQuery(query);
List<String[]> listDataVector = runDetailedQuery(query);
return listDataVector;
}
@ -634,9 +562,9 @@ public class XdatDB {
* The ID.
* @param pe
* Physical Element.
* @return The SHEF parameter code.
* @return List<String> List The SHEF parameter code.
*/
public String[] getShefParamCode(String id, String pe) {
public List<String> getShefParamCode(String id, String pe) {
String query = "select ingestfilter.ts, ingestfilter.extremum, shefdur.durcode, shefdur.name "
+ "from ingestfilter, shefdur where ingestfilter.lid = '"
@ -645,38 +573,28 @@ public class XdatDB {
+ pe
+ "' and ingestfilter.ts like 'R%' and ingestfilter.dur = shefdur.dur";
Vector<String> result = new Vector<String>();
if (conn == null) {
return null;
}
List<String> result = new ArrayList<String>();
try {
ResultSet rs = queryStmt.executeQuery(query);
if (rs == null) {
List<Object[]> rs = DirectDbQuery.executeQuery(query, IHFS,
QueryLanguage.SQL);
if (!rs.isEmpty()) {
Iterator<Object[]> shefIterator = rs.iterator();
while (shefIterator.hasNext()) {
Object[] row = shefIterator.next();
String strBuf = pe + row[2].toString() + row[0].toString()
+ row[1].toString() + " (" + row[3].toString()
+ ")";
result.add(strBuf);
}
} else {
return null;
}
while (rs.next()) {
String strBuf = pe + rs.getString(3) + rs.getString(1)
+ rs.getString(2) + " (" + rs.getString(4) + ")";
result.add(strBuf);
}
} catch (SQLException se) {
se.printStackTrace();
return null;
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
"Error to get the SHEF parameter code.", e);
}
String paramCode[] = null;
if (result.size() > 0) {
paramCode = new String[result.size()];
for (int i = 0; i < result.size(); i++) {
paramCode[i] = result.get(i);
}
}
return paramCode;
return result;
}
/**
@ -684,7 +602,7 @@ public class XdatDB {
*
* @return Vector<String> Array of coop precip data.
*/
public Vector<String[]> getCoopPrecipData(String startDate) {
public List<String[]> getCoopPrecipData(String startDate) {
String query = "select lid, dur, ts, extremum, obstime, product_id, value "
+ "from rawpp where (pe = 'PP' and obstime between '"
@ -695,7 +613,7 @@ public class XdatDB {
+ " 14:00:00' and value >= 0.00 and (dur = 2001 or dur = 5004)) "
+ "order by value desc,lid";
Vector<String[]> precipDataVector = runDetailedQuery(query);
List<String[]> precipDataVector = runDetailedQuery(query);
return precipDataVector;
}
@ -738,37 +656,26 @@ public class XdatDB {
* Get precipitation ID and value
*
* @param obsDate
* @return Vector<String[]> Array of ID and value from rawpc table.
* @return HashMap<String, Double> of ID and value from rawpc table.
*/
public HashMap<String, Double> getPrecipLidAndValue(String obsDate) {
String query = "select lid, value from rawpc where (pe = 'PC' and obstime = '"
+ obsDate + "' and value >= 0.00)";
// If the database connection is null then return null.
if (conn == null) {
return null;
}
HashMap<String, Double> results = new HashMap<String, Double>();
try {
ResultSet rs = queryStmt.executeQuery(query);
if (rs == null) {
List<Object[]> rs = DirectDbQuery.executeQuery(query, IHFS,
QueryLanguage.SQL);
if (!rs.isEmpty()) {
// Get the number of columns in the row of data.
int numberOfCols = rs.get(0).length;
results = new HashMap<String, Double>(numberOfCols);
} else {
return null;
}
// Get the number of columns in the row of data.
int numberOfCols = rs.getMetaData().getColumnCount();
results = new HashMap<String, Double>(numberOfCols);
while (rs.next()) {
results.put(rs.getString(1), rs.getDouble(2));
}
} catch (SQLException se) {
se.printStackTrace();
return null;
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
"Error to get precipitation ID and value.", e);
}
return results;
}
@ -776,21 +683,21 @@ public class XdatDB {
* Get precipitation value
*
* @param obsDate
* @return Vector<String[]> Array value from rawpc table.
* @return List<String[]> Array of values from rawpc table.
*/
public Vector<String[]> getPrecipValues(String obstime, String lid,
public List<String[]> getPrecipValues(String obstime, String lid,
double value) {
String query = "select value from rawpc where (lid = '" + lid
+ "' and pe = 'PC' and obstime = '" + obstime
+ "' and value <= " + value + ")";
Vector<String[]> precipValueVector = runDetailedQuery(query);
List<String[]> precipValueVector = runDetailedQuery(query);
return precipValueVector;
}
/**
* update the rejectteddata table.
* Update the rejected data table.
*
* @param lid
* @param pe
@ -819,9 +726,8 @@ public class XdatDB {
final int QC_MANUAL_FAILED = 123;
Long quality_code = new Long(0);
set_qccode(QC_MANUAL_FAILED, quality_code);// set_qccode should be
// defined in some other
// package
set_qccode(QC_MANUAL_FAILED, quality_code);
// set_qccode should be defined in some other package
GregorianCalendar postTime = new GregorianCalendar();
SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
@ -836,27 +742,23 @@ public class XdatDB {
+ "', " + quality_code + ", '" + rejected_type + "', '"
+ userid + "')";
if (conn == null) {
return;
}
try {
queryStmt.executeUpdate(query);
} catch (SQLException se) {
se.printStackTrace();
return;
DirectDbQuery.executeQuery(query, IHFS, QueryLanguage.SQL);
} catch (VizException e) {
statusHandler.handle(Priority.PROBLEM,
"Error to update the rejected data table.", e);
}
}
/**
* get durcode from shefdur table
* Get durcode from shefdur table
*
* @param dur
* @return durcode from shefdur table
*/
public String getDurcode(int dur) {
String query = "select durcode from shefdur where dur=" + dur;
Vector<String[]> durcodeVector = runDetailedQuery(query);
List<String[]> durcodeVector = runDetailedQuery(query);
if (durcodeVector != null) {
return durcodeVector.get(0)[0];
}
@ -963,17 +865,4 @@ public class XdatDB {
return (status);
}
/**
* return whether the database has connected.
*
* @return true/ false
*/
public boolean isDBConnected() {
if (conn == null) {
return false;
}
return true;
}
}

View file

@ -31,7 +31,6 @@ import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
import java.util.Vector;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
@ -61,6 +60,7 @@ import org.eclipse.swt.widgets.Text;
import com.raytheon.uf.common.ohd.AppsDefaults;
import com.raytheon.uf.common.time.SimulatedTime;
import com.raytheon.uf.common.time.util.TimeUtil;
import com.raytheon.viz.hydrocommon.HydroConstants;
import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
@ -79,6 +79,7 @@ import com.raytheon.viz.ui.dialogs.CaveSWTDialog;
* 23 Nov 2010 6244 lbousaidi cleared idTF box after search
* 16 Mar 2011 6251 lbousaidi activate [Enter] for idTF box
* 02 Jun 2011 9150 mduff xdat_flood_hours needs to be negative on the calendar.add
* 22 May 2015 4501 skorolev Removed old DB connection commands. Got rid of Vector.
*
* </pre>
*
@ -93,11 +94,6 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
*/
private Font controlFont;
/**
* Database name.
*/
private String dbName;
/**
* Version.
*/
@ -178,11 +174,6 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
*/
private XdatDB databaseMgr;
/**
* URL for JDBC.
*/
private String jdbcUrl;
/**
* Array of Physical Element radio buttons.
*/
@ -192,7 +183,7 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
* Printer class.
*/
private Printer printer;
private GroupDataDlg groupDlg = null;
/**
@ -202,30 +193,17 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
* Parent shell.
*/
public XdatDlg(Shell parentShell) {
super(parentShell, SWT.DIALOG_TRIM | SWT.RESIZE);
super(parentShell, SWT.DIALOG_TRIM | SWT.RESIZE | CAVE.DO_NOT_BLOCK);
databaseMgr = new XdatDB();
appsDefaults = AppsDefaults.getInstance();
StringBuilder buffer = new StringBuilder("jdbc:postgresql://");
buffer.append(appsDefaults.getToken("pghost") + ":");
buffer.append(appsDefaults.getToken("pgport") + "/");
dbName = appsDefaults.getToken("db_name");
buffer.append(dbName + "?user=");
buffer.append(appsDefaults.getToken("pguser"));
jdbcUrl = buffer.toString();
System.out.println(jdbcUrl);
StringBuilder title = new StringBuilder("xdat (Version: ");
title.append(version).append(") (db_name = ");
if (dbName == null) {
title.append("UNKNOWN");
} else {
title.append(dbName);
}
title.append(XdatDB.IHFS);
title.append(")");
setText(title.toString());
}
@Override
@ -242,19 +220,6 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
protected void initializeComponents(Shell shell) {
setReturnValue(false);
databaseMgr = new XdatDB(jdbcUrl);
if (!databaseMgr.isDBConnected()) {
MessageBox mb = new MessageBox(getParent(), SWT.ICON_WARNING
| SWT.OK);
mb.setText("Error");
mb.setMessage("Unable to connect to \n" + jdbcUrl
+ "\n\nPlease make sure\n"
+ "the tokens pghost and pgport are set\n"
+ "correctly in Apps_defaults\n"
+ "and the database server is running.");
mb.open();
}
controlFont = new Font(shell.getDisplay(), "Monospace", 10, SWT.NORMAL);
createTopButtons();
@ -847,8 +812,8 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
String peStr = getSelectedPE();
Vector<String[]> rejectedDataBuf = databaseMgr.getRejectedData(peStr,
startDateStr, endDateStr);
java.util.List<String[]> rejectedDataBuf = databaseMgr.getRejectedData(
peStr, startDateStr, endDateStr);
if (rejectedDataBuf == null) {
textArea.setText("No rejected " + peStr
@ -863,13 +828,13 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/**
* Format the rejected data for displaying.
*
* @param rejectedData
* @param rejectedDataBuf
* Array of rejected data.
* @param peStr
* Physical Element.
* @return The formatted data.
*/
private String formatRejectedData(Vector<String[]> rejectedData,
private String formatRejectedData(java.util.List<String[]> rejectedDataBuf,
String peStr) {
StringBuilder strBld = new StringBuilder();
@ -901,7 +866,7 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/*
* Add the data
*/
for (String[] strArray : rejectedData) {
for (String[] strArray : rejectedDataBuf) {
double dblVal = Double.valueOf(strArray[7]);
double rndVal = (Math.round(dblVal * 10.0)) / 10.0;
@ -922,13 +887,13 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
SimpleDateFormat dbFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat startDate = new SimpleDateFormat("mm/dd/yyy",
Locale.US);
Date sDate = SimulatedTime.getSystemTime().getTime();
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
String setToday = appsDefaults.getToken("xdat_settoday");
String floodHours = appsDefaults.getToken("xdat_flood_hours", "6");
try {
if ((setToday != null) && !setToday.equals("")
&& !setToday.equals(" ")) {
@ -947,7 +912,8 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
sDate = cal.getTime();
String dateStr = dbFormat.format(sDate);
Vector<String[]> aboveFsBuf = databaseMgr.getAboveFsSearch(dateStr);
java.util.List<String[]> aboveFsBuf = databaseMgr
.getAboveFsSearch(dateStr);
if (aboveFsBuf == null) {
textArea.setText("No sites above flood stage");
@ -960,12 +926,12 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/**
* Format the site above flood stage data for displaying.
*
* @param abvFldStgText
* @param aboveFsBuf
* Array of flood stage data.
* @return The formatted data.
*/
private String formatSiteAboveFldStageData(Vector<String[]> abvFldStgText,
Date sDate) {
private String formatSiteAboveFldStageData(
java.util.List<String[]> aboveFsBuf, Date sDate) {
SimpleDateFormat displayDate = new SimpleDateFormat(
"yyyy-MM-dd HH:00:00", Locale.US);
StringBuilder strBld = new StringBuilder();
@ -977,8 +943,7 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/*
* Add the Title text
*/
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.setTime(sDate);
Calendar cal = TimeUtil.newGmtCalendar(sDate);
String floodHours = appsDefaults.getToken("xdat_flood_hours");
if ((floodHours != null) && (floodHours.length() > 0)) {
cal.add(Calendar.HOUR_OF_DAY, -1 * (Integer.parseInt(floodHours)));
@ -1005,7 +970,7 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/*
* Add the data
*/
for (String[] dataArray : abvFldStgText) {
for (String[] dataArray : aboveFsBuf) {
double dblVal = Double.valueOf(dataArray[6]);
double rndVal = (Math.round(dblVal * 100.0)) / 100.0;
@ -1032,7 +997,7 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
*/
private void displaySitesTurnedOffData() {
Vector<String[]> sitesTurnedOffBuf = databaseMgr
java.util.List<String[]> sitesTurnedOffBuf = databaseMgr
.getSitesTurnedOffData();
if (sitesTurnedOffBuf == null) {
@ -1046,11 +1011,12 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/**
* Format the sites turned off data for displaying.
*
* @param sitesTurnedOffArray
* @param sitesTurnedOffBuf
* Array of data.
* @return The formatted data.
*/
private String formatSitesTurnedOffData(Vector<String[]> sitesTurnedOffArray) {
private String formatSitesTurnedOffData(
java.util.List<String[]> sitesTurnedOffBuf) {
StringBuilder strBld = new StringBuilder();
String titleFmt = "%50s";
@ -1081,7 +1047,7 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/*
* Add the data
*/
for (String[] dataArray : sitesTurnedOffArray) {
for (String[] dataArray : sitesTurnedOffBuf) {
strBld.append(
String.format(dataFmt, dataArray[0], dataArray[1],
@ -1096,18 +1062,18 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
*/
private void displayUnknownSitesData() {
String postFlag = appsDefaults.getToken("xdat_post_unk");
if (postFlag.equalsIgnoreCase("NONE")) {
textArea.setText("Shefdecoder not posting unknown data.");
return;
}
}
String unknownTable = "unkstnvalue";
if (postFlag.compareTo("IDS_ONLY") == 0) {
unknownTable = "unkstn";
}
Vector<String[]> unknownSiteBuf = databaseMgr
java.util.List<String[]> unknownSiteBuf = databaseMgr
.getUnknownSites(unknownTable);
if (unknownSiteBuf == null) {
@ -1122,11 +1088,12 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/**
* Format the unknown sites data for displaying.
*
* @param unknownSiteArray
* @param unknownSiteBuf
* Array of data.
* @return The formatted data.
*/
private String formatUnknownSitesData(Vector<String[]> unknownSiteArray) {
private String formatUnknownSitesData(
java.util.List<String[]> unknownSiteBuf) {
StringBuilder strBld = new StringBuilder();
String titleFmt = "%40s";
@ -1157,7 +1124,7 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/*
* Add the data
*/
for (String[] dataArray : unknownSiteArray) {
for (String[] dataArray : unknownSiteBuf) {
String productID = dataArray[1];
if (productID == null) {
productID = "";
@ -1179,11 +1146,10 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
/**
* Display the search data on the display.
*/
private void displaySearchData() /*
* code very similiar to
* SiteListDlg.displayListSelection(). need
* refactor
*/
private void displaySearchData()
/*
* code very similar to SiteListDlg.displayListSelection(). need refactor
*/
{
String selectedId = idTF.getText().trim().toUpperCase();
@ -1198,8 +1164,8 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
String peType = getSelectedPE();
Vector<String[]> dataVec = databaseMgr.getListData(selectedId, peType,
getStartDate(), getEndDate());
java.util.List<String[]> dataVec = databaseMgr.getListData(selectedId,
peType, getStartDate(), getEndDate());
if (dataVec == null) {
String[] msg = new String[] { "No data available." };
@ -1213,9 +1179,8 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
locationDes = "";
}
String[] displayData = new String[dataVec.size() + 3]; // 1st three
// lines for
// header
String[] displayData = new String[dataVec.size() + 3];
// 1st three lines for header
String dataFmt = "%-8S %2s %-4S %2S %1S %19S %13S % 6.2f % 6.2f";
String displayHeader = " ID PE DUR TS E OBSTIME PRODUCT VALUE CHANGE";
String dashLine = "---------------------------------------------------------------------------";
@ -1405,7 +1370,9 @@ public class XdatDlg extends CaveSWTDialog implements ITextDisplay {
}
}
/* (non-Javadoc)
/*
* (non-Javadoc)
*
* @see com.raytheon.viz.xdat.ITextDisplay#getSelectedSite()
*/
@Override