ASM #18092 - MPE: Fix GageTable column select saving and applying settings.

Change-Id: Ic2497d99a27a1efe58afcb4929f9513d6071c097

Former-commit-id: 2a00e1f6e14946d4a15613f2fa42da6c6a4b157e
This commit is contained in:
steve.naples 2016-01-13 18:39:47 +00:00
parent d13c574a57
commit ec95cc5f9c
3 changed files with 28 additions and 115 deletions

View file

@ -66,6 +66,7 @@ import com.vividsolutions.jts.geom.Coordinate;
* Sep 04, 2014 16699 cgobs Fixed 14.3.1 issue with reading MPE field data.
* Oct 19, 2015 18090 lbousaidi fixed best estimate qpe display.
* Nov 18, 2015 18093 snaples Added selectedGridIndex to maintain selected grid after table refresh.
* Jan 13, 2016 18092 snaples Removed redundant call, that resulted in a circle.
*
* </pre>
*
@ -1217,7 +1218,6 @@ public class GageTableDataManager {
*/
public void reloadData() {
getTableData();
getTableRowData();
}
/**

View file

@ -20,11 +20,11 @@
package com.raytheon.viz.mpe.ui.dialogs.gagetable;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@ -109,6 +109,7 @@ import com.raytheon.viz.mpe.ui.dialogs.gagetable.xml.GageTableSortType;
* Nov 18, 2015 18093 snaples Fixed GridComboListener to trigger table update when changing compare column.
* Dec 02, 2015 18094 lbousaidi added the sorting method for multi column sorting.
* Dec 07, 2015 18137 lbousaidi fixed sorting after editing gages.
* Jan 13, 2016 18092 snaples Updated to have column adjustment by drag and drop.
*
* </pre>
*
@ -209,6 +210,8 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
private MPEDisplayManager displayManager;
private GageTableDataManager dataManager;
/**
* Constructor.
*/
@ -230,6 +233,8 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
for (String colName : GageTableConstants.BASE_COLUMNS) {
baseColumns.add(colName);
}
dataManager = GageTableDataManager.getInstance();
}
@ -237,8 +242,6 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
* Open the dialog.
*/
public void open() {
// Instantiate the product and data manager classes
GageTableDataManager dataManager = GageTableDataManager.getInstance();
readSettingsFile();
@ -280,8 +283,6 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
setLocation(xCoord - (bounds.width / 2), yCoord - (bounds.height / 2));
setVisible(true);
// tableModel.refreshTable();
displayManager.registerEditTimeChangedListener(this);
}
@ -392,10 +393,6 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic('F');
JMenuItem columnSelectionMenuItem = new JMenuItem("Column Selection");
columnSelectionMenuItem.setMnemonic('C');
fileMenu.add(columnSelectionMenuItem);
JMenuItem refreshMenuItem = new JMenuItem("Refresh");
refreshMenuItem.setMnemonic('R');
fileMenu.add(refreshMenuItem);
@ -404,9 +401,6 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
saveSettingsMenuItem.setMnemonic('S');
fileMenu.add(saveSettingsMenuItem);
columnSelectionMenuItem
.addActionListener(new ChangeColumnsDisplayedMenuListener());
RefreshMenuListener RefreshMenuListener = new RefreshMenuListener();
refreshMenuItem.addActionListener(RefreshMenuListener);
@ -569,8 +563,7 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
* Create the JTable.
*/
private void createJTable(Container container) {
gageTablePanel = new JPanel();
gageTablePanel.setLayout(new GridLayout(1, 1));
gageTablePanel = new JPanel(new CardLayout());
table = null;
table = new JTable();
tableModel = new GageTableModel();
@ -624,6 +617,7 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
constraints.gridwidth = 2;
constraints.gridheight = 1;
container.add(gageTablePanel, constraints);
}
@ -670,85 +664,6 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
viewport.setViewPosition(rect.getLocation());
}
/**
* Launch the item selection dialog.
*/
private void launchItemSelectionDlg() {
GageTableProductManager manager = GageTableProductManager.getInstance();
GageTableDataManager dataManager = GageTableDataManager.getInstance();
List<GageTableColumn> availableProductColumnList = new ArrayList<GageTableColumn>();
Map<String, GageTableColumn> prodMap = manager
.getGageTableProductColumnMap();
Set<String> keySet = prodMap.keySet();
Iterator<String> iter = keySet.iterator();
while (iter.hasNext()) {
availableProductColumnList.add(prodMap.get(iter.next()));
}
List<String> availableListItems = new ArrayList<String>();
// Add the non-data columns
String[] baseColumns = GageTableConstants.BASE_COLUMNS;
for (String s : baseColumns) {
availableListItems.add(s);
}
for (GageTableColumn c : availableProductColumnList) {
GageTableProductDescriptor desc = c.getProductDescriptor();
availableListItems.add(desc.getProductName());
}
List<GageTableColumn> selectedProductColumnList = manager
.getSelectedColumns();
String[] selectedListItems = new String[selectedProductColumnList
.size()];
for (int i = 0; i < selectedProductColumnList.size(); i++) {
selectedListItems[i] = selectedProductColumnList.get(i).getName();
}
// Launch the dialog
ItemsSelectionDialog dlg = new ItemsSelectionDialog(
this,
"Gage Table Column Selector",
availableListItems.toArray(new String[availableListItems.size()]),
selectedListItems);
// Get the selected columns for display
String[] selectedColumns = dlg.getSelectedItems();
Map<String, GageTableColumn> colMap = manager
.getGageTableProductColumnMap();
List<GageTableColumn> colList = new ArrayList<GageTableColumn>();
for (int i = 0; i < selectedColumns.length; i++) {
String value = selectedColumns[i];
if (colMap.get(manager.lookupProductPrefix(value)) == null) {
GageTableColumn c = new GageTableColumn(null);
c.setDataColumn(false);
c.setName(value);
colList.add(c);
} else {
GageTableColumn col = colMap.get(manager
.lookupProductPrefix(value));
col.setName(value);
col.setPrefix(manager.lookupProductPrefix(value));
colList.add(col);
}
}
manager.setSelectedColumns(colList);
dataManager.setColumnDataList(colList);
// Fire event to notify listeners of changes
GageTableUpdateEvent event = new GageTableUpdateEvent(this, true);
manager.fireUpdateEvent(event);
}
/**
* Read the settings XML file. There is a single file for the site.
*/
@ -986,16 +901,6 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
}
}
/**
* Action listener for the Change Columns Menu item.
*/
private class ChangeColumnsDisplayedMenuListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
launchItemSelectionDlg();
}
}
/**
* Action listener for the Grid Combo Box.
*/
@ -1401,6 +1306,7 @@ public class GageTableDlg extends JFrame implements IEditTimeChangedListener {
// Fire event to notify listeners of changes
GageTableUpdateEvent event = new GageTableUpdateEvent(this, true);
GageTableProductManager.getInstance().fireUpdateEvent(event);
sortAllRowsBy(tableModel, sortColumnIndex, ascending);
}
/**

View file

@ -23,7 +23,7 @@ import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
/**
* GageTable Dialog table model.
@ -34,6 +34,7 @@ import javax.swing.table.AbstractTableModel;
* Date Ticket# Engineer Description
* ------------ ---------- ----------- --------------------------
* May 29, 2009 2476 mpduff Initial creation
* Jan 13, 2016 18092 snaples Updated to use DefaultTableModel instead of Abstract
*
* </pre>
*
@ -41,7 +42,7 @@ import javax.swing.table.AbstractTableModel;
* @version 1.0
*/
public class GageTableModel extends AbstractTableModel implements
public class GageTableModel extends DefaultTableModel implements
GageTableListener {
private static final long serialVersionUID = -814822107762024666L;
@ -53,16 +54,22 @@ public class GageTableModel extends AbstractTableModel implements
/**
* Row data.
*/
private Vector<Vector<String>> rows = null;
private static Vector<Vector<String>> rows = null;
/**
* Column data.
*/
private Vector<String> columns = null;
private static Vector<String> columns = null;
static {
sdf = new SimpleDateFormat("yyyyMMddHH");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
GageTableDataManager dataManager = GageTableDataManager.getInstance();
// Get the data
rows = dataManager.getRows();
columns = dataManager.getColumns();
}
/**
@ -72,11 +79,11 @@ public class GageTableModel extends AbstractTableModel implements
GageTableProductManager productManager = GageTableProductManager
.getInstance();
GageTableDataManager dataManager = GageTableDataManager.getInstance();
productManager.addGageTableListener(this);
// Get the data
rows = dataManager.getRows();
columns = dataManager.getColumns();
productManager.addGageTableListener(this);
}
/**
@ -98,8 +105,8 @@ public class GageTableModel extends AbstractTableModel implements
* The new column data
*/
public void updateData(Vector<Vector<String>> rows, Vector<String> columns) {
this.rows = rows;
this.columns = columns;
GageTableModel.rows = rows;
GageTableModel.columns = columns;
}
/**
@ -181,7 +188,7 @@ public class GageTableModel extends AbstractTableModel implements
* The Vector of data
*/
public void setDataVector(Vector<Vector<String>> rows) {
this.rows = rows;
GageTableModel.rows = rows;
}
/**
@ -195,7 +202,7 @@ public class GageTableModel extends AbstractTableModel implements
* @param columns the columns to set
*/
public void setColumns(Vector<String> columns) {
this.columns = columns;
GageTableModel.columns = columns;
}
@Override