git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@438 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
kascade 2007-01-18 09:09:51 +00:00
parent 1798788550
commit af35b7c210
1 changed files with 61 additions and 52 deletions

View File

@ -21,31 +21,6 @@
package enginuity.logger; package enginuity.logger;
import java.awt.*;
import static java.awt.BorderLayout.*;
import static java.awt.Color.BLACK;
import static java.awt.Color.RED;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import static java.util.Collections.sort;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.swing.*;
import static javax.swing.JLabel.RIGHT;
import static javax.swing.JScrollPane.*;
import static javax.swing.JSplitPane.HORIZONTAL_SPLIT;
import static javax.swing.JSplitPane.VERTICAL_SPLIT;
import static javax.swing.JTabbedPane.BOTTOM;
import javax.swing.border.BevelBorder;
import static javax.swing.border.BevelBorder.LOWERED;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
import enginuity.Settings; import enginuity.Settings;
import enginuity.io.port.SerialPortRefresher; import enginuity.io.port.SerialPortRefresher;
import enginuity.logger.comms.controller.LoggerController; import enginuity.logger.comms.controller.LoggerController;
@ -53,9 +28,24 @@ import enginuity.logger.comms.controller.LoggerControllerImpl;
import enginuity.logger.comms.query.EcuInit; import enginuity.logger.comms.query.EcuInit;
import enginuity.logger.comms.query.EcuInitCallback; import enginuity.logger.comms.query.EcuInitCallback;
import enginuity.logger.comms.query.LoggerCallback; import enginuity.logger.comms.query.LoggerCallback;
import enginuity.logger.definition.*; import enginuity.logger.definition.EcuData;
import enginuity.logger.profile.*; import enginuity.logger.definition.EcuDataLoader;
import enginuity.logger.ui.*; import enginuity.logger.definition.EcuDataLoaderImpl;
import enginuity.logger.definition.EcuParameter;
import enginuity.logger.definition.EcuSwitch;
import enginuity.logger.profile.UserProfile;
import enginuity.logger.profile.UserProfileImpl;
import enginuity.logger.profile.UserProfileItem;
import enginuity.logger.profile.UserProfileItemImpl;
import enginuity.logger.profile.UserProfileLoader;
import enginuity.logger.profile.UserProfileLoaderImpl;
import enginuity.logger.ui.DataRegistrationBroker;
import enginuity.logger.ui.DataRegistrationBrokerImpl;
import enginuity.logger.ui.EcuDataComparator;
import enginuity.logger.ui.EcuLoggerMenuBar;
import enginuity.logger.ui.MessageListener;
import enginuity.logger.ui.SerialPortComboBox;
import enginuity.logger.ui.StatusIndicator;
import enginuity.logger.ui.handler.DataUpdateHandler; import enginuity.logger.ui.handler.DataUpdateHandler;
import enginuity.logger.ui.handler.DataUpdateHandlerManager; import enginuity.logger.ui.handler.DataUpdateHandlerManager;
import enginuity.logger.ui.handler.DataUpdateHandlerManagerImpl; import enginuity.logger.ui.handler.DataUpdateHandlerManagerImpl;
@ -74,6 +64,38 @@ import static enginuity.util.ParamChecker.checkNotNull;
import static enginuity.util.ParamChecker.isNullOrEmpty; import static enginuity.util.ParamChecker.isNullOrEmpty;
import static enginuity.util.ThreadUtil.sleep; import static enginuity.util.ThreadUtil.sleep;
import javax.swing.*;
import static javax.swing.JLabel.RIGHT;
import static javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED;
import static javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER;
import static javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED;
import static javax.swing.JSplitPane.HORIZONTAL_SPLIT;
import static javax.swing.JSplitPane.VERTICAL_SPLIT;
import static javax.swing.JTabbedPane.BOTTOM;
import javax.swing.border.BevelBorder;
import static javax.swing.border.BevelBorder.LOWERED;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
import java.awt.*;
import static java.awt.BorderLayout.CENTER;
import static java.awt.BorderLayout.EAST;
import static java.awt.BorderLayout.NORTH;
import static java.awt.BorderLayout.SOUTH;
import static java.awt.BorderLayout.WEST;
import static java.awt.Color.BLACK;
import static java.awt.Color.RED;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import static java.util.Collections.sort;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/* /*
TODO: add better debug logging, preferably to a file and switchable (on/off) TODO: add better debug logging, preferably to a file and switchable (on/off)
TODO: Clean up this class! TODO: Clean up this class!
@ -204,8 +226,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
public void loadLoggerConfig() { public void loadLoggerConfig() {
try { try {
EcuDataLoader dataLoader = new EcuDataLoaderImpl(); EcuDataLoader dataLoader = new EcuDataLoaderImpl();
dataLoader.loadFromXml(settings.getLoggerConfigFilePath(), settings.getLoggerProtocol(), dataLoader.loadFromXml(settings.getLoggerConfigFilePath(), settings.getLoggerProtocol(), settings.getFileLoggingControllerSwitchId(), ecuInit);
settings.getFileLoggingControllerSwitchId(), ecuInit);
List<EcuParameter> ecuParams = dataLoader.getEcuParameters(); List<EcuParameter> ecuParams = dataLoader.getEcuParameters();
addConvertorUpdateListeners(ecuParams); addConvertorUpdateListeners(ecuParams);
loadEcuParams(ecuParams, null); loadEcuParams(ecuParams, null);
@ -258,8 +279,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
} }
} }
private void applyUserProfileToLiveDataTabParameters(ParameterListTableModel paramListTableModel, private void applyUserProfileToLiveDataTabParameters(ParameterListTableModel paramListTableModel, UserProfile profile) {
UserProfile profile) {
List<ParameterRow> rows = paramListTableModel.getParameterRows(); List<ParameterRow> rows = paramListTableModel.getParameterRows();
for (ParameterRow row : rows) { for (ParameterRow row : rows) {
EcuData ecuData = row.getEcuData(); EcuData ecuData = row.getEcuData();
@ -267,8 +287,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
} }
} }
private void applyUserProfileToGraphTabParameters(ParameterListTableModel paramListTableModel, private void applyUserProfileToGraphTabParameters(ParameterListTableModel paramListTableModel, UserProfile profile) {
UserProfile profile) {
List<ParameterRow> rows = paramListTableModel.getParameterRows(); List<ParameterRow> rows = paramListTableModel.getParameterRows();
for (ParameterRow row : rows) { for (ParameterRow row : rows) {
EcuData ecuData = row.getEcuData(); EcuData ecuData = row.getEcuData();
@ -362,15 +381,12 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
public UserProfile getCurrentProfile() { public UserProfile getCurrentProfile() {
Map<String, UserProfileItem> paramProfileItems = getProfileItems(dataTabParamListTableModel.getParameterRows(), Map<String, UserProfileItem> paramProfileItems = getProfileItems(dataTabParamListTableModel.getParameterRows(),
graphTabParamListTableModel.getParameterRows(), dashboardTabParamListTableModel.getParameterRows()); graphTabParamListTableModel.getParameterRows(), dashboardTabParamListTableModel.getParameterRows());
Map<String, UserProfileItem> switchProfileItems = getProfileItems( Map<String, UserProfileItem> switchProfileItems = getProfileItems(dataTabSwitchListTableModel.getParameterRows(),
dataTabSwitchListTableModel.getParameterRows(),
graphTabSwitchListTableModel.getParameterRows(), dashboardTabSwitchListTableModel.getParameterRows()); graphTabSwitchListTableModel.getParameterRows(), dashboardTabSwitchListTableModel.getParameterRows());
return new UserProfileImpl((String) portsComboBox.getSelectedItem(), paramProfileItems, switchProfileItems); return new UserProfileImpl((String) portsComboBox.getSelectedItem(), paramProfileItems, switchProfileItems);
} }
private Map<String, UserProfileItem> getProfileItems(List<ParameterRow> dataTabRows, private Map<String, UserProfileItem> getProfileItems(List<ParameterRow> dataTabRows, List<ParameterRow> graphTabRows, List<ParameterRow> dashTabRows) {
List<ParameterRow> graphTabRows,
List<ParameterRow> dashTabRows) {
Map<String, UserProfileItem> profileItems = new HashMap<String, UserProfileItem>(); Map<String, UserProfileItem> profileItems = new HashMap<String, UserProfileItem>();
for (ParameterRow dataTabRow : dataTabRows) { for (ParameterRow dataTabRow : dataTabRows) {
String id = dataTabRow.getEcuData().getId(); String id = dataTabRow.getEcuData().getId();
@ -412,21 +428,15 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
} }
private JComponent buildTabbedPane() { private JComponent buildTabbedPane() {
tabbedPane.add("Data", buildSplitPane( tabbedPane.add("Data", buildSplitPane(buildParamListPane(dataTabParamListTableModel, dataTabSwitchListTableModel), buildDataTab()));
buildParamListPane(dataTabParamListTableModel, dataTabSwitchListTableModel), buildDataTab())); tabbedPane.add("Graph", buildSplitPane(buildParamListPane(graphTabParamListTableModel, graphTabSwitchListTableModel), buildGraphTab()));
tabbedPane.add("Graph", buildSplitPane( tabbedPane.add("Dashboard", buildSplitPane(buildParamListPane(dashboardTabParamListTableModel, dashboardTabSwitchListTableModel), buildDashboardTab()));
buildParamListPane(graphTabParamListTableModel, graphTabSwitchListTableModel), buildGraphTab()));
tabbedPane.add("Dashboard", buildSplitPane(
buildParamListPane(dashboardTabParamListTableModel, dashboardTabSwitchListTableModel),
buildDashboardTab()));
return tabbedPane; return tabbedPane;
} }
private JComponent buildParamListPane(TableModel paramListTableModel, TableModel switchListTableModel) { private JComponent buildParamListPane(TableModel paramListTableModel, TableModel switchListTableModel) {
JScrollPane paramList = new JScrollPane(buildParamListTable(paramListTableModel), VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane paramList = new JScrollPane(buildParamListTable(paramListTableModel), VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED);
HORIZONTAL_SCROLLBAR_AS_NEEDED); JScrollPane switchList = new JScrollPane(buildParamListTable(switchListTableModel), VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED);
JScrollPane switchList = new JScrollPane(buildParamListTable(switchListTableModel),
VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED);
JSplitPane splitPane = new JSplitPane(VERTICAL_SPLIT, paramList, switchList); JSplitPane splitPane = new JSplitPane(VERTICAL_SPLIT, paramList, switchList);
splitPane.setDividerSize(2); splitPane.setDividerSize(2);
splitPane.setDividerLocation(400); splitPane.setDividerLocation(400);
@ -440,8 +450,7 @@ public final class EcuLogger extends JFrame implements WindowListener, PropertyC
return paramListTable; return paramListTable;
} }
private void changeColumnWidth(JTable paramListTable, int colIndex, int minWidth, int maxWidth, private void changeColumnWidth(JTable paramListTable, int colIndex, int minWidth, int maxWidth, int preferredWidth) {
int preferredWidth) {
TableColumn column = paramListTable.getColumnModel().getColumn(colIndex); TableColumn column = paramListTable.getColumnModel().getColumn(colIndex);
column.setMinWidth(minWidth); column.setMinWidth(minWidth);
column.setMaxWidth(maxWidth); column.setMaxWidth(maxWidth);