Editor Bug Fixes:

- Removed static Settings Functions
 - Switched increase/decrease border colors.
 - Static cells now size to fit text.
 - Opening a new table now looks if the last selected table is visible.  This resolves the open/close window cascade issue.
 - Switching scales now updates the table tool bar.
 - Removed references to Settings from ECUEditor and Removed ECUEditor reference from Editor Menu bar.
Note: Smaller memory footprint.
This commit is contained in:
Scotthew 2013-09-22 23:38:31 -07:00
parent bad937e9bf
commit e3380bbcfc
21 changed files with 218 additions and 223 deletions

View File

@ -133,7 +133,7 @@ public class ECUExec {
private static void openEditor(String[] args) {
ECUEditor editor = getECUEditor();
editor.initializeToolbar();
editor.initializeEditorUI();
editor.checkDefinitions();
if (args.length > 0) {

View File

@ -169,8 +169,9 @@ public class Settings implements Serializable {
private Color selectColor = new Color(204, 204, 204);
private Color highlightColor = new Color(27, 161, 226);
private Color decreaseBorder = new Color(255, 0, 0);
private Color increaseBorder = new Color(0, 0, 255);
private Color decreaseBorder = new Color(0, 0, 255);
private Color increaseBorder = new Color(255, 0, 0);
private Color axisColor = new Color(255, 255, 255);
private Color warningColor = new Color(255, 0, 0);
private int tableClickCount = 1; // number of clicks to open table
@ -221,7 +222,7 @@ public class Settings implements Serializable {
private String defaultScale = "Metric";
private static Map<String, IntfKitSensor> phidgetSensors;
private Map<String, IntfKitSensor> phidgetSensors;
public Settings() {
//center window by default
@ -820,13 +821,13 @@ public class Settings implements Serializable {
this.defaultScale = defaultScale;
}
public static final Map<String, IntfKitSensor> getPhidgetSensors() {
return Settings.phidgetSensors;
public Map<String, IntfKitSensor> getPhidgetSensors() {
return this.phidgetSensors;
}
public static final void setPhidgetSensors(
public void setPhidgetSensors(
Map<String, IntfKitSensor> phidgetSensors) {
Settings.phidgetSensors = phidgetSensors;
this.phidgetSensors = phidgetSensors;
}
}

View File

@ -83,7 +83,6 @@ import com.romraider.swing.RomTree;
import com.romraider.swing.RomTreeRootNode;
import com.romraider.swing.TableFrame;
import com.romraider.swing.TableToolBar;
import com.romraider.swing.TableTreeNode;
import com.romraider.util.SettingsManager;
import com.romraider.xml.DOMRomUnmarshaller;
import com.romraider.xml.RomNotFoundException;
@ -101,8 +100,7 @@ public class ECUEditor extends AbstractFrame {
private JSplitPane splitPane = new JSplitPane();
private Rom lastSelectedRom = null;
private ECUEditorToolBar toolBar;
private final ECUEditorMenuBar menuBar;
private Settings settings;
private ECUEditorMenuBar menuBar;
private TableToolBar tableToolBar;
private final JPanel toolBarPanel = new JPanel();
private OpenImageWorker openImageWorker;
@ -112,16 +110,14 @@ public class ECUEditor extends AbstractFrame {
private final ImageIcon editorIcon = new ImageIcon(getClass().getResource("/graphics/romraider-ico.gif"), "RomRaider ECU Editor");
public ECUEditor() {
// get settings from xml
settings = SettingsManager.getSettings();
Settings settings = SettingsManager.getSettings();
if (!settings.getRecentVersion().equalsIgnoreCase(VERSION)) {
showReleaseNotes();
}
setSize(getSettings().getWindowSize());
setLocation(getSettings().getWindowLocation());
if (getSettings().isWindowMaximized()) {
setSize(settings.getWindowSize());
setLocation(settings.getWindowLocation());
if (settings.isWindowMaximized()) {
setExtendedState(MAXIMIZED_BOTH);
}
@ -132,7 +128,7 @@ public class ECUEditor extends AbstractFrame {
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftScrollPane, rightScrollPane);
splitPane.setDividerSize(3);
splitPane.setDividerLocation(getSettings().getSplitPaneLocation());
splitPane.setDividerLocation(settings.getSplitPaneLocation());
splitPane.addPropertyChangeListener(this);
splitPane.setContinuousLayout(true);
getContentPane().add(splitPane);
@ -140,9 +136,6 @@ public class ECUEditor extends AbstractFrame {
rightPanel.setBackground(Color.BLACK);
imageList.setScrollsOnExpand(true);
//create menubar
menuBar = new ECUEditorMenuBar(this);
this.setJMenuBar(menuBar);
this.add(statusPanel, BorderLayout.SOUTH);
//set remaining window properties
@ -155,10 +148,12 @@ public class ECUEditor extends AbstractFrame {
toFront();
}
public void initializeToolbar()
{
// create toolbars
public void initializeEditorUI() {
//create menubar
menuBar = new ECUEditorMenuBar();
this.setJMenuBar(menuBar);
// create toolbars
toolBar = new ECUEditorToolBar("Editor Tools");
tableToolBar = new TableToolBar();
@ -176,7 +171,7 @@ public class ECUEditor extends AbstractFrame {
}
public void checkDefinitions() {
if (getSettings().getEcuDefinitionFiles().size() <= 0) {
if (SettingsManager.getSettings().getEcuDefinitionFiles().size() <= 0) {
// no ECU definitions configured - let user choose to get latest or configure later
Object[] options = {"Yes", "No"};
int answer = showOptionDialog(null,
@ -200,7 +195,7 @@ public class ECUEditor extends AbstractFrame {
private void showReleaseNotes() {
try {
BufferedReader br = new BufferedReader(new FileReader(getSettings().getReleaseNotes()));
BufferedReader br = new BufferedReader(new FileReader(SettingsManager.getSettings().getReleaseNotes()));
try {
// new version being used, display release notes
JTextArea releaseNotes = new JTextArea();
@ -230,13 +225,14 @@ public class ECUEditor extends AbstractFrame {
}
public void handleExit() {
getSettings().setSplitPaneLocation(splitPane.getDividerLocation());
getSettings().setWindowMaximized(getExtendedState() == MAXIMIZED_BOTH);
getSettings().setWindowSize(getSize());
getSettings().setWindowLocation(getLocation());
Settings settings = SettingsManager.getSettings();
settings.setSplitPaneLocation(splitPane.getDividerLocation());
settings.setWindowMaximized(getExtendedState() == MAXIMIZED_BOTH);
settings.setWindowSize(getSize());
settings.setWindowLocation(getLocation());
// Save when exit to save file settings.
SettingsManager.save(getSettings(), statusPanel);
SettingsManager.save(settings, statusPanel);
statusPanel.update("Ready...", 0);
repaint();
}
@ -274,11 +270,8 @@ public class ECUEditor extends AbstractFrame {
return VERSION;
}
public Settings getSettings() {
return settings;
}
public void addRom(Rom input) {
Settings settings = SettingsManager.getSettings();
input.refreshDisplayedTables();
// add to ecu image list pane
@ -289,7 +282,7 @@ public class ECUEditor extends AbstractFrame {
getImageList().expandPath(new TreePath(input.getPath()));
if(!getSettings().isOpenExpanded()) {
if(!settings.isOpenExpanded()) {
imageList.collapsePath(new TreePath(input.getPath()));
}
@ -301,12 +294,12 @@ public class ECUEditor extends AbstractFrame {
setLastSelectedRom(input);
}
if (input.getRomID().isObsolete() && getSettings().isObsoleteWarning()) {
if (input.getRomID().isObsolete() && settings.isObsoleteWarning()) {
JPanel infoPanel = new JPanel();
infoPanel.setLayout(new GridLayout(3, 1));
infoPanel.add(new JLabel("A newer version of this ECU revision exists. " +
"Please visit the following link to download the latest revision:"));
infoPanel.add(new URL(getSettings().getRomRevisionURL()));
infoPanel.add(new URL(settings.getRomRevisionURL()));
JCheckBox check = new JCheckBox("Always display this message", true);
check.setHorizontalAlignment(JCheckBox.RIGHT);
@ -314,7 +307,7 @@ public class ECUEditor extends AbstractFrame {
check.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
getSettings().setObsoleteWarning(((JCheckBox) e.getSource()).isSelected());
SettingsManager.getSettings().setObsoleteWarning(((JCheckBox) e.getSource()).isSelected());
}
});
@ -329,7 +322,7 @@ public class ECUEditor extends AbstractFrame {
for(JInternalFrame curFrame : getRightPanel().getAllFrames()) {
if(curFrame.equals(frame)) {
// table is already open.
if(1 == getSettings().getTableClickBehavior()) { // open/focus frame
if(1 == SettingsManager.getSettings().getTableClickBehavior()) { // open/focus frame
// table is already open, so set focus on the frame.
boolean selected = true;
frame.toFront();
@ -424,19 +417,13 @@ public class ECUEditor extends AbstractFrame {
return tableToolBar;
}
public void setSettings(Settings settings) {
this.settings = settings;
for (int i = 0; i < imageRoot.getChildCount(); i++) {
Rom rom = (Rom) imageRoot.getChildAt(i);
for(TableTreeNode tableNode : rom.getTableNodes()) {
tableNode.getFrame().getTable().drawTable();
}
}
public void redrawVisableTables(Settings settings) {
}
public void setUserLevel(int userLevel) {
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
getSettings().setUserLevel(userLevel);
SettingsManager.getSettings().setUserLevel(userLevel);
setUserLevelWorker = new SetUserLevelWorker();
setUserLevelWorker.addPropertyChangeListener(getStatusPanel());
setUserLevelWorker.execute();
@ -542,13 +529,12 @@ public class ECUEditor extends AbstractFrame {
}
class LaunchLoggerWorker extends SwingWorker<Void, Void> {
private final ECUEditor editor = ECUEditorManager.getECUEditor();
public LaunchLoggerWorker() {
}
@Override
protected Void doInBackground() throws Exception {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Launching Logger...");
setProgress(10);
EcuLogger.startLogger(javax.swing.WindowConstants.DISPOSE_ON_CLOSE, editor);
@ -561,12 +547,13 @@ class LaunchLoggerWorker extends SwingWorker<Void, Void> {
if (null != source && "state".equals( evnt.getPropertyName() )
&& (source.isDone() || source.isCancelled() ) )
{
source.removePropertyChangeListener(editor.getStatusPanel());
source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel());
}
}
@Override
public void done() {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
editor.setCursor(null);
@ -575,14 +562,12 @@ class LaunchLoggerWorker extends SwingWorker<Void, Void> {
}
class SetUserLevelWorker extends SwingWorker<Void, Void> {
private final ECUEditor editor = ECUEditorManager.getECUEditor();
public SetUserLevelWorker() {
}
@Override
protected Void doInBackground() throws Exception {
for(Rom rom : editor.getImages()) {
for(Rom rom : ECUEditorManager.getECUEditor().getImages()) {
rom.refreshDisplayedTables();
}
return null;
@ -594,12 +579,13 @@ class SetUserLevelWorker extends SwingWorker<Void, Void> {
if (null != source && "state".equals( evnt.getPropertyName() )
&& (source.isDone() || source.isCancelled() ) )
{
source.removePropertyChangeListener(editor.getStatusPanel());
source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel());
}
}
@Override
public void done() {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
editor.setCursor(null);
@ -608,8 +594,6 @@ class SetUserLevelWorker extends SwingWorker<Void, Void> {
}
class CloseImageWorker extends SwingWorker<Void, Void> {
private final ECUEditor editor = ECUEditorManager.getECUEditor();
Rom rom;
public CloseImageWorker(Rom romToRemove) {
@ -618,6 +602,7 @@ class CloseImageWorker extends SwingWorker<Void, Void> {
@Override
protected Void doInBackground() throws Exception {
ECUEditor editor = ECUEditorManager.getECUEditor();
RomTreeRootNode imageRoot = editor.getImageRoot();
rom.clearData();
@ -638,6 +623,7 @@ class CloseImageWorker extends SwingWorker<Void, Void> {
@Override
public void done() {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
editor.setCursor(null);
@ -647,8 +633,6 @@ class CloseImageWorker extends SwingWorker<Void, Void> {
}
class OpenImageWorker extends SwingWorker<Void, Void> {
private final ECUEditor editor = ECUEditorManager.getECUEditor();
private final File inputFile;
public OpenImageWorker(File inputFile) {
@ -657,13 +641,14 @@ class OpenImageWorker extends SwingWorker<Void, Void> {
@Override
protected Void doInBackground() throws Exception {
ECUEditor editor = ECUEditorManager.getECUEditor();
Settings settings = SettingsManager.getSettings();
DOMParser parser = new DOMParser();
Document doc;
FileInputStream fileStream;
try {
Settings settings = editor.getSettings();
editor.getStatusPanel().setStatus("Parsing ECU definitions...");
setProgress(0);
@ -742,12 +727,13 @@ class OpenImageWorker extends SwingWorker<Void, Void> {
if (null != source && "state".equals( evnt.getPropertyName() )
&& (source.isDone() || source.isCancelled() ) )
{
source.removePropertyChangeListener(editor.getStatusPanel());
source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel());
}
}
@Override
public void done() {
ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready...");
setProgress(0);
editor.setCursor(null);

View File

@ -20,20 +20,20 @@
package com.romraider.io.serial.connection;
import static com.romraider.io.protocol.ssm.iso9141.SSMChecksumCalculator.calculateChecksum;
import com.romraider.io.connection.ConnectionManager;
import com.romraider.io.connection.ConnectionProperties;
import com.romraider.logger.ecu.comms.manager.PollingState;
import static com.romraider.util.HexUtil.asHex;
import static com.romraider.util.ParamChecker.checkNotNull;
import static com.romraider.util.ParamChecker.checkNotNullOrEmpty;
import static com.romraider.util.ThreadUtil.sleep;
import static java.lang.System.arraycopy;
import static java.lang.System.currentTimeMillis;
import org.apache.log4j.Logger;
import static org.apache.log4j.Logger.getLogger;
import org.apache.log4j.Logger;
import com.romraider.io.connection.ConnectionManager;
import com.romraider.io.connection.ConnectionProperties;
import com.romraider.logger.ecu.comms.manager.PollingState;
public final class SerialConnectionManager implements ConnectionManager {
private static final Logger LOGGER = getLogger(SerialConnectionManager.class);
private final SerialConnection connection;
@ -46,14 +46,15 @@ public final class SerialConnectionManager implements ConnectionManager {
checkNotNullOrEmpty(portName, "portName");
checkNotNull(connectionProperties, "connectionProperties");
this.connectionProperties = connectionProperties;
timeout = (long) connectionProperties.getConnectTimeout();
timeout = connectionProperties.getConnectTimeout();
readTimeout = timeout;
// Use TestSerialConnection for testing!!
connection = new SerialConnectionImpl(portName, connectionProperties);
// connection = new TestSerialConnection2(portName, connectionProperties);
//connection = new SerialConnectionImpl(portName, connectionProperties);
connection = new TestSerialConnection2(portName, connectionProperties);
}
// Send request and wait for response with known length
@Override
public void send(byte[] request, byte[] response, PollingState pollState) {
checkNotNull(request, "request");
checkNotNull(response, "response");
@ -64,7 +65,7 @@ public final class SerialConnectionManager implements ConnectionManager {
}
if (pollState.getCurrentState() == 0) {
connection.readStaleData();
connection.readStaleData();
connection.write(request);
}
while (connection.available() < response.length) {
@ -81,11 +82,11 @@ public final class SerialConnectionManager implements ConnectionManager {
if (pollState.getCurrentState() == 1){
if ( response[0] == (byte) 0x80
&& response[1] == (byte) 0xF0
&& (response[2] == (byte) 0x10 || response[2] == (byte) 0x18)
&& response[3] == (response.length - 5)
&& response[response.length - 1] == calculateChecksum(response)) {
&& response[1] == (byte) 0xF0
&& (response[2] == (byte) 0x10 || response[2] == (byte) 0x18)
&& response[3] == (response.length - 5)
&& response[response.length - 1] == calculateChecksum(response)) {
lastResponse = new byte[response.length];
arraycopy(response, 0, lastResponse, 0, response.length);
}
@ -98,6 +99,7 @@ public final class SerialConnectionManager implements ConnectionManager {
}
// Send request and wait specified time for response with unknown length
@Override
public byte[] send(byte[] bytes) {
checkNotNull(bytes, "bytes");
connection.readStaleData();
@ -116,21 +118,23 @@ public final class SerialConnectionManager implements ConnectionManager {
return connection.readAvailable();
}
@Override
public void clearLine() {
LOGGER.debug("SSM sending line break");
connection.sendBreak( 1 /
connection.sendBreak( 1 /
(connectionProperties.getBaudRate() *
(connectionProperties.getDataBits() +
connectionProperties.getStopBits() +
connectionProperties.getParity() + 1)));
(connectionProperties.getDataBits() +
connectionProperties.getStopBits() +
connectionProperties.getParity() + 1)));
do {
sleep(2);
byte[] badBytes = connection.readAvailable();
LOGGER.debug("SSM clearing line (stale data): " + asHex(badBytes));
sleep(10);
} while (connection.available() > 0 );
} while (connection.available() > 0 );
}
@Override
public void close() {
connection.close();
}

View File

@ -36,7 +36,7 @@ import com.phidgets.InterfaceKitPhidget;
import com.phidgets.Manager;
import com.phidgets.Phidget;
import com.phidgets.PhidgetException;
import com.romraider.Settings;
import com.romraider.util.SettingsManager;
/**
* IntfKitManager is used to discover all the attached PhidgetInterfaceKits
@ -86,14 +86,14 @@ public final class IntfKitManager {
try {
ik = new InterfaceKitPhidget();
LOGGER.info("Plugin found: " + Phidget.getLibraryVersion());
}
catch (PhidgetException e) {
LOGGER.error("InterfaceKit error: " + e);
}
}
catch (PhidgetException e) {
LOGGER.error("InterfaceKit error: " + e);
}
}
/**
* For the serial number provided report the name of the
* For the serial number provided report the name of the
* associated PhidgetInterfaceKit.
* @param serial - the serial number previously discovered to be opened
* @return a format string of the name and serial number
@ -107,9 +107,9 @@ public final class IntfKitManager {
waitForAttached();
try {
if (ik.getDeviceClass() == PHIDCLASS_INTERFACEKIT) {
result = String.format(
"%s serial: %d",
ik.getDeviceName(),
result = String.format(
"%s serial: %d",
ik.getDeviceName(),
serial);
}
}
@ -145,13 +145,13 @@ public final class IntfKitManager {
try {
if (ik.isAttached()) {
if (ik.getDeviceClass() == PHIDCLASS_INTERFACEKIT) {
final String result = String.format(
"Plugin found: %s Serial: %d",
ik.getDeviceName(),
serial);
final String result = String.format(
"Plugin found: %s Serial: %d",
ik.getDeviceName(),
serial);
LOGGER.info(result);
Map<String, IntfKitSensor> phidgets =
Settings.getPhidgetSensors();
SettingsManager.getSettings().getPhidgetSensors();
if (phidgets == null) {
phidgets = new HashMap<String, IntfKitSensor>();
}
@ -163,7 +163,7 @@ public final class IntfKitManager {
final String stored = String.format(
"Plugin applying user settings for: %s",
phidgets.get(key).toString());
LOGGER.info(stored);
LOGGER.info(stored);
}
else {
final IntfKitSensor sensor = new IntfKitSensor();
@ -183,7 +183,7 @@ public final class IntfKitManager {
phidgets.put(key, sensor);
}
}
Settings.setPhidgetSensors(phidgets);
SettingsManager.getSettings().setPhidgetSensors(phidgets);
}
else {
LOGGER.info("No InterfaceKits attached");

View File

@ -29,7 +29,6 @@ import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.TableModel;
import com.romraider.Settings;
import com.romraider.logger.ecu.EcuLogger;
import com.romraider.logger.ecu.definition.EcuDataConvertor;
import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
@ -38,9 +37,10 @@ import com.romraider.logger.external.core.ExternalDataItem;
import com.romraider.logger.external.core.ExternalDataSource;
import com.romraider.logger.external.phidget.interfacekit.io.IntfKitSensor;
import com.romraider.swing.menubar.action.AbstractAction;
import com.romraider.util.SettingsManager;
/**
* IntfKitPluginMenuAction is used to populate the Phidgets Plugins menu
* IntfKitPluginMenuAction is used to populate the Phidgets Plugins menu
* of the Logger. It will report the device type and serial number of each
* PhidgetInterfaceKit found and allow the user to custom define each sensor's
* field values.
@ -57,6 +57,7 @@ public final class IntfKitPluginMenuAction extends AbstractAction {
super(logger);
}
@Override
public void actionPerformed(ActionEvent actionEvent) {
final IntfKitConvertorPanel intfKitPanel =
new IntfKitConvertorPanel(logger, getDataItems());
@ -79,21 +80,21 @@ public final class IntfKitPluginMenuAction extends AbstractAction {
}
for (ExternalDataItem item : dataItems) {
ikDataItems.add(Arrays.asList(
item.getName(),
item.getConvertors()[0].getExpression(),
item.getConvertors()[0].getFormat(),
item.getConvertors()[0].getUnits(),
String.valueOf(item.getConvertors()[0].getGaugeMinMax().min),
String.valueOf(item.getConvertors()[0].getGaugeMinMax().max),
String.valueOf(item.getConvertors()[0].getGaugeMinMax().step)
));
item.getName(),
item.getConvertors()[0].getExpression(),
item.getConvertors()[0].getFormat(),
item.getConvertors()[0].getUnits(),
String.valueOf(item.getConvertors()[0].getGaugeMinMax().min),
String.valueOf(item.getConvertors()[0].getGaugeMinMax().max),
String.valueOf(item.getConvertors()[0].getGaugeMinMax().step)
));
}
return ikDataItems;
}
private final void saveChanges(JTable table) {
final TableModel tm = table.getModel();
final Map<String, IntfKitSensor> phidgets = Settings.getPhidgetSensors();
final Map<String, IntfKitSensor> phidgets = SettingsManager.getSettings().getPhidgetSensors();
for (int i = 0; i < tm.getRowCount(); i++) {
String column0 = (String) tm.getValueAt(i, 0);
@ -102,26 +103,26 @@ public final class IntfKitPluginMenuAction extends AbstractAction {
for (int j = 1; j < tm.getColumnCount(); j++) {
String value = (String) tm.getValueAt(i, j);
switch (j) {
case 1:
phidgets.get(key).setExpression(value);
break;
case 2:
phidgets.get(key).setFormat(value);
break;
case 3:
phidgets.get(key).setUnits(value);
break;
case 4:
phidgets.get(key).setMinValue(Float.parseFloat(value));
break;
case 5:
phidgets.get(key).setMaxValue(Float.parseFloat(value));
break;
case 6:
phidgets.get(key).setStepValue(Float.parseFloat(value));
break;
default:
break;
case 1:
phidgets.get(key).setExpression(value);
break;
case 2:
phidgets.get(key).setFormat(value);
break;
case 3:
phidgets.get(key).setUnits(value);
break;
case 4:
phidgets.get(key).setMinValue(Float.parseFloat(value));
break;
case 5:
phidgets.get(key).setMaxValue(Float.parseFloat(value));
break;
case 6:
phidgets.get(key).setStepValue(Float.parseFloat(value));
break;
default:
break;
}
}
}
@ -141,14 +142,14 @@ public final class IntfKitPluginMenuAction extends AbstractAction {
ikDataItem.setConvertors(convertors);
}
Settings.setPhidgetSensors(phidgets);
SettingsManager.getSettings().setPhidgetSensors(phidgets);
JOptionPane.showMessageDialog(
logger,
"Un-select each updated External Phidget data item on each Data,\n" +
"Graph and Dashboard Logger tabs to complete the update.\n\n" +
"Logging profiles using the old Phidget settings must be loaded\n" +
"and re-saved with the new settings.",
"Phidget InterfaceKit Settings Applied",
JOptionPane.INFORMATION_MESSAGE);
logger,
"Un-select each updated External Phidget data item on each Data,\n" +
"Graph and Dashboard Logger tabs to complete the update.\n\n" +
"Logging profiles using the old Phidget settings must be loaded\n" +
"and re-saved with the new settings.",
"Phidget InterfaceKit Settings Applied",
JOptionPane.INFORMATION_MESSAGE);
}
}

View File

@ -38,6 +38,7 @@ import org.apache.log4j.Logger;
import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.util.JEPUtil;
import com.romraider.util.SettingsManager;
public class DataCell extends JLabel implements MouseListener, Serializable {
private static final long serialVersionUID = -2904293227148940937L;
@ -80,7 +81,6 @@ public class DataCell extends JLabel implements MouseListener, Serializable {
this.setOpaque(true);
this.setVisible(true);
this.addMouseListener(this);
this.setPreferredSize(getSettings().getCellSize());
}
public DataCell(Table table, String staticText) {
@ -95,6 +95,7 @@ public class DataCell extends JLabel implements MouseListener, Serializable {
this.binValue = originalValue;
this.x = x;
this.y = y;
this.setPreferredSize(getSettings().getCellSize());
}
public double getBinValue() {
@ -471,7 +472,7 @@ public class DataCell extends JLabel implements MouseListener, Serializable {
}
private Settings getSettings() {
return ECUEditorManager.getECUEditor().getSettings();
return SettingsManager.getSettings();
}
@Override

View File

@ -42,12 +42,12 @@ import javax.swing.tree.DefaultMutableTreeNode;
import org.apache.log4j.Logger;
import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.logger.ecu.ui.handler.table.TableUpdateHandler;
import com.romraider.swing.CategoryTreeNode;
import com.romraider.swing.JProgressPane;
import com.romraider.swing.TableFrame;
import com.romraider.swing.TableTreeNode;
import com.romraider.util.SettingsManager;
import com.romraider.xml.TableNotFoundException;
public class Rom extends DefaultMutableTreeNode implements Serializable {
@ -67,7 +67,7 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
// Remove all nodes from the ROM tree node.
super.removeAllChildren();
Settings settings = ECUEditorManager.getECUEditor().getSettings();
Settings settings = SettingsManager.getSettings();
// Add nodes to ROM tree.
for (TableTreeNode tableTreeNode : tableNodes) {

View File

@ -54,6 +54,7 @@ import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.swing.TableToolBar;
import com.romraider.util.JEPUtil;
import com.romraider.util.SettingsManager;
import com.romraider.xml.RomAttributeParser;
public abstract class Table extends JPanel implements Serializable {
@ -523,7 +524,7 @@ public abstract class Table extends JPanel implements Serializable {
this.curScale = scale;
}
if(ECUEditorManager.getECUEditor().getSettings().getDefaultScale().equalsIgnoreCase(scale.getName())) {
if(SettingsManager.getSettings().getDefaultScale().equalsIgnoreCase(scale.getName())) {
this.curScale = scale;
}
@ -1170,14 +1171,9 @@ public abstract class Table extends JPanel implements Serializable {
this.curScale = curScale;
}
public void setSettings(Settings settings)
{
ECUEditorManager.getECUEditor().setSettings(settings);
}
public Settings getSettings()
{
return ECUEditorManager.getECUEditor().getSettings();
return SettingsManager.getSettings();
}
public TableToolBar getToolbar()

View File

@ -29,6 +29,7 @@ import javax.swing.JFileChooser;
import javax.swing.ListSelectionModel;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.util.SettingsManager;
public class DefinitionManager extends javax.swing.JFrame implements ActionListener {
@ -59,7 +60,7 @@ public class DefinitionManager extends javax.swing.JFrame implements ActionListe
private void initSettings() {
// add definitions to list
Vector<File> definitionFiles = ECUEditorManager.getECUEditor().getSettings().getEcuDefinitionFiles();
Vector<File> definitionFiles = SettingsManager.getSettings().getEcuDefinitionFiles();
fileNames = new Vector<String>();
for (int i = 0; i < definitionFiles.size(); i++) {
@ -203,7 +204,7 @@ public class DefinitionManager extends javax.swing.JFrame implements ActionListe
}
// save
ECUEditorManager.getECUEditor().getSettings().setEcuDefinitionFiles(output);
SettingsManager.getSettings().setEcuDefinitionFiles(output);
}
public void addFile() {

View File

@ -54,6 +54,7 @@ import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.maps.Rom;
import com.romraider.maps.Table;
import com.romraider.ramtune.test.RamTuneTestApp;
import com.romraider.util.SettingsManager;
public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
@ -96,10 +97,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
private final JMenu helpMenu = new JMenu("Help");
private final JMenuItem about = new JMenuItem("About " + PRODUCT_NAME);
private final ECUEditor editor;
public ECUEditorMenuBar(ECUEditor editor) {
this.editor = editor;
public ECUEditorMenuBar() {
// file menu items
add(fileMenu);
fileMenu.setMnemonic('F');
@ -353,7 +351,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
}
public void refreshImage() throws Exception {
ECUEditor parent = getEditor();
ECUEditor parent = ECUEditorManager.getECUEditor();
if (parent.getLastSelectedRom() != null) {
File file = parent.getLastSelectedRom().getFullFileName();
parent.closeImage();
@ -362,32 +360,34 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
}
public void openImageDialog() throws Exception {
JFileChooser fc = new JFileChooser(getEditor().getSettings().getLastImageDir());
ECUEditor parent = ECUEditorManager.getECUEditor();
JFileChooser fc = new JFileChooser(SettingsManager.getSettings().getLastImageDir());
fc.setFileFilter(new ECUImageFilter());
fc.setDialogTitle("Open Image");
if (fc.showOpenDialog(getEditor()) == JFileChooser.APPROVE_OPTION) {
getEditor().openImage(fc.getSelectedFile());
getEditor().getSettings().setLastImageDir(fc.getCurrentDirectory());
if (fc.showOpenDialog(parent) == JFileChooser.APPROVE_OPTION) {
parent.openImage(fc.getSelectedFile());
SettingsManager.getSettings().setLastImageDir(fc.getCurrentDirectory());
}
}
public void openImagesDialog() throws Exception {
ECUEditor parent = ECUEditorManager.getECUEditor();
JFileChooser fc = new JFileChooser(getSettings().getLastImageDir());
fc.setFileFilter(new ECUImageFilter());
fc.setMultiSelectionEnabled(true);
fc.setDialogTitle("Open Image(s)");
if(fc.showOpenDialog(getEditor()) == JFileChooser.APPROVE_OPTION) {
getEditor().openImages(fc.getSelectedFiles());
getEditor().getSettings().setLastImageDir(fc.getCurrentDirectory());
if(fc.showOpenDialog(parent) == JFileChooser.APPROVE_OPTION) {
parent.openImages(fc.getSelectedFiles());
SettingsManager.getSettings().setLastImageDir(fc.getCurrentDirectory());
}
}
public void saveImage(Rom input) throws Exception {
ECUEditor parent = getEditor();
ECUEditor parent = ECUEditorManager.getECUEditor();
if (parent.getLastSelectedRom() != null) {
JFileChooser fc = new JFileChooser(parent.getSettings().getLastImageDir());
JFileChooser fc = new JFileChooser(SettingsManager.getSettings().getLastImageDir());
fc.setFileFilter(new ECUImageFilter());
if (fc.showSaveDialog(parent) == JFileChooser.APPROVE_OPTION) {
boolean save = true;
@ -410,7 +410,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
}
parent.getLastSelectedRom().setFullFileName(selectedFile.getAbsoluteFile());
parent.setLastSelectedRom(parent.getLastSelectedRom());
parent.getSettings().setLastImageDir(selectedFile.getParentFile());
SettingsManager.getSettings().setLastImageDir(selectedFile.getParentFile());
}
}
}
@ -426,11 +426,11 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
fc.setAcceptAllFileFilterUsed(false);
String separator = System.getProperty("file.separator");
if (fc.showSaveDialog(getEditor()) == JFileChooser.APPROVE_OPTION) {
if (fc.showSaveDialog(ECUEditorManager.getECUEditor()) == JFileChooser.APPROVE_OPTION) {
boolean save = true;
File selectedDir = fc.getSelectedFile();
if (selectedDir.exists()) {
int option = showConfirmDialog(getEditor(), selectedDir.getName() + " already exists! Overwrite?");
int option = showConfirmDialog(ECUEditorManager.getECUEditor(), selectedDir.getName() + " already exists! Overwrite?");
// option: 0 = Cancel, 1 = No
if (option == CANCEL_OPTION || option == 1) {
@ -473,15 +473,11 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
}
private String getLastSelectedRomFileName() {
Rom lastSelectedRom = getEditor().getLastSelectedRom();
Rom lastSelectedRom = ECUEditorManager.getECUEditor().getLastSelectedRom();
return lastSelectedRom == null ? "" : lastSelectedRom.getFileName() + " ";
}
private Settings getSettings() {
return getEditor().getSettings();
}
private ECUEditor getEditor() {
return editor;
return SettingsManager.getSettings();
}
}

View File

@ -36,6 +36,7 @@ import javax.swing.JToolBar;
import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditor;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.util.SettingsManager;
public class ECUEditorToolBar extends JToolBar implements ActionListener {
@ -147,7 +148,7 @@ public class ECUEditorToolBar extends JToolBar implements ActionListener {
}
private Settings getSettings() {
return getEditor().getSettings();
return SettingsManager.getSettings();
}
private ECUEditor getEditor() {

View File

@ -35,6 +35,7 @@ import javax.swing.JViewport;
import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditor;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.util.SettingsManager;
/**
* An extension of WDesktopPane that supports often used MDI functionality. This
@ -64,12 +65,12 @@ public class MDIDesktopPane extends JDesktopPane {
int h;
// get frame location.
if(getEditor().getSettings().isAlwaysOpenTableAtZero()) {
if(SettingsManager.getSettings().isAlwaysOpenTableAtZero()) {
p = new Point(0, 0);
} else {
if (getAllFrames().length > 0) {
JInternalFrame selectedFrame = getSelectedFrame();
if(null == selectedFrame) {
if(null == selectedFrame || !selectedFrame.isVisible()) {
// if none selected get the location at index 0.
p = getAllFrames()[0].getLocation();
} else {

View File

@ -34,6 +34,7 @@ import javax.swing.tree.DefaultMutableTreeNode;
import com.romraider.editor.ecu.ECUEditor;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.maps.Rom;
import com.romraider.util.SettingsManager;
public class RomTree extends JTree implements MouseListener {
@ -78,11 +79,11 @@ public class RomTree extends JTree implements MouseListener {
Object selectedRow = getPathForLocation(e.getX(), e.getY()).getLastPathComponent();
if(selectedRow instanceof TableTreeNode) {
if (e.getClickCount() >= getEditor().getSettings().getTableClickCount()) {
if (e.getClickCount() >= SettingsManager.getSettings().getTableClickCount()) {
showTable(selectedRow);
}
} else if(selectedRow instanceof Rom || selectedRow instanceof CategoryTreeNode) {
if (e.getClickCount() >= getEditor().getSettings().getTableClickCount()) {
if (e.getClickCount() >= SettingsManager.getSettings().getTableClickCount()) {
if(isCollapsed(getRowForLocation(e.getX(),e.getY()))) {
expandRow(getRowForLocation(e.getX(),e.getY()));
}

View File

@ -36,6 +36,7 @@ import javax.swing.GroupLayout.Alignment;
import javax.swing.JCheckBox;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
@ -50,8 +51,6 @@ import ZoeloeSoft.projects.JFontChooser.JFontChooser;
import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditor;
import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.maps.Rom;
import com.romraider.maps.Table;
import com.romraider.util.FileAssociator;
import com.romraider.util.SettingsManager;
@ -891,7 +890,7 @@ public class SettingsForm extends JFrame implements MouseListener {
newSettings.setLoggerProfileFilePath(curSettings.getLoggerProfileFilePath());
newSettings.setLoggerOutputDirPath(curSettings.getLoggerOutputDirPath());
getEditor().setSettings(newSettings);
SettingsManager.save(newSettings);
initSettings();
} else if (e.getSource() == btnAddAssocs) {
@ -1020,7 +1019,7 @@ public class SettingsForm extends JFrame implements MouseListener {
private Settings getSettings()
{
return getEditor().getSettings();
return SettingsManager.getSettings();
}
private ECUEditor getEditor()
@ -1030,17 +1029,22 @@ public class SettingsForm extends JFrame implements MouseListener {
public void saveSettings()
{
SettingsManager.save(getSettings());
saveSettings(getSettings());
}
// TODO: check if table setting changed before refreshing all tables.
// Refresh all tables.
for(Rom rom : getEditor().getImages()) {
for(Table table : rom.getTables()) {
table.drawTable();
public void saveSettings(Settings newSettings) {
SettingsManager.save(newSettings);
drawVisibleTables();
getEditor().refreshUI();
}
private void drawVisibleTables() {
for(JInternalFrame frame : getEditor().getRightPanel().getAllFrames()) {
if(frame instanceof TableFrame && frame.isVisible()) {
TableFrame tableFrame = (TableFrame) frame;
tableFrame.getTable().drawTable();
}
}
getEditor().refreshUI();
}
@Override

View File

@ -24,7 +24,6 @@ import static javax.swing.BorderFactory.createLineBorder;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@ -71,6 +70,7 @@ import com.romraider.maps.Scale;
import com.romraider.maps.Table;
import com.romraider.maps.Table1D;
import com.romraider.maps.Table3D;
import com.romraider.util.SettingsManager;
public class TableToolBar extends JToolBar implements MouseListener, ItemListener, ActionListener, GraphDataListener {
@ -168,7 +168,6 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene
refreshCompare.setBorder(createLineBorder(new Color(150, 150, 150), 1));
scaleSelection.setPreferredSize(new Dimension(80, 23));
scaleSelection.setFont(new Font("Tahoma", Font.PLAIN, 12));
clearOverlay.setPreferredSize(new Dimension(75, 23));
clearOverlay.setBorder(createLineBorder(new Color(150, 150, 150), 1));
@ -262,7 +261,7 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene
}
public void updateIcons() {
Settings settings = ECUEditorManager.getECUEditor().getSettings();
Settings settings = SettingsManager.getSettings();
incrementFine.setIcon(rescaleImageIcon(new ImageIcon(incrementFineImage), settings.getTableIconScale()));
decrementFine.setIcon(rescaleImageIcon(new ImageIcon(decrementFineImage), settings.getTableIconScale()));
incrementCoarse.setIcon(rescaleImageIcon(new ImageIcon(incrementCoarseImage), settings.getTableIconScale()));
@ -296,7 +295,7 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene
@Override
public void setBorder(Border border) {
if(ECUEditorManager.getECUEditor().getSettings().isShowTableToolbarBorder()) {
if(SettingsManager.getSettings().isShowTableToolbarBorder()) {
super.setBorder(toolbarBorder);
} else {
super.setBorder(BorderFactory.createEmptyBorder());
@ -308,14 +307,7 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene
}
public void updateTableToolBar(Table selectedTable) {
if(null != this.selectedTable && this.selectedTable.equals(selectedTable)) {
// Already up to date. Return.
return;
}
this.selectedTable = selectedTable;
double fineIncrement = 0;
double coarseIncrement = 0;
setBorder(toolbarBorder);
@ -326,16 +318,7 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene
return;
}
try {
// enable the toolbar.
fineIncrement = Math.abs(selectedTable.getCurrentScale().getFineIncrement());
coarseIncrement = Math.abs(selectedTable.getCurrentScale().getCoarseIncrement());
} catch (Exception ex) {
// scaling units haven't been added yet -- no problem
}
incrementByFine.setValue(fineIncrement);
incrementByCoarse.setValue(coarseIncrement);
updateToolbarIncrementDecrementValues();
this.overlayLog.setSelected(selectedTable.getOverlayLog());
this.enable3d.setEnabled(selectedTable.getType() == Settings.TABLE_3D);
@ -352,6 +335,26 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene
toggleTableToolBar(selectedTable);
}
private void updateToolbarIncrementDecrementValues() {
if(null == selectedTable) {
return;
}
double fineIncrement = 0;
double coarseIncrement = 0;
try {
// enable the toolbar.
fineIncrement = Math.abs(selectedTable.getCurrentScale().getFineIncrement());
coarseIncrement = Math.abs(selectedTable.getCurrentScale().getCoarseIncrement());
} catch (Exception ex) {
// scaling units haven't been added yet -- no problem
}
incrementByFine.setValue(fineIncrement);
incrementByCoarse.setValue(coarseIncrement);
}
private void toggleTableToolBar(Table currentTable) {
String newTitle = "";
boolean enabled;
@ -707,6 +710,7 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene
try {
curTable.setScaleByName((String)scaleSelection.getSelectedItem());
updateToolbarIncrementDecrementValues();
} catch (NameNotFoundException e1) {
e1.printStackTrace();
}

View File

@ -22,7 +22,6 @@ package com.romraider.util;
import java.awt.Color;
import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditorManager;
public final class ColorScaler {
@ -31,7 +30,7 @@ public final class ColorScaler {
public static Color getScaledColor(double scale) {
Settings settings = ECUEditorManager.getECUEditor().getSettings();
Settings settings = SettingsManager.getSettings();
if(0.0 == scale) {
return settings.getMinColor();
}

View File

@ -92,7 +92,7 @@ public class SettingsManager {
final File newDir = new File(settingsDir);
newDir.mkdir(); // Creates directory if it does not exist
final File sf = new File(settingsDir + SETTINGS_FILE);
builder.buildSettings(settings, sf, progress, VERSION);
builder.buildSettings(newSettings, sf, progress, VERSION);
settings = newSettings;
} catch (Exception e) {
// Load the settings from disk.

View File

@ -50,6 +50,7 @@ import com.romraider.swing.DebugPanel;
import com.romraider.swing.JProgressPane;
import com.romraider.util.LogManager;
import com.romraider.util.ObjectCloner;
import com.romraider.util.SettingsManager;
public final class DOMRomUnmarshaller {
private static final Logger LOGGER = Logger
@ -362,9 +363,8 @@ public final class DOMRomUnmarshaller {
} catch (NullPointerException ex) {
JOptionPane.showMessageDialog(ECUEditorManager.getECUEditor(),
new DebugPanel(ex, ECUEditorManager.getECUEditor()
.getSettings().getSupportURL()), "Exception",
JOptionPane.ERROR_MESSAGE);
new DebugPanel(ex, SettingsManager.getSettings().getSupportURL()), "Exception",
JOptionPane.ERROR_MESSAGE);
}
}
@ -575,8 +575,7 @@ public final class DOMRomUnmarshaller {
} catch (Exception ex) {
JOptionPane.showMessageDialog(
ECUEditorManager.getECUEditor(),
new DebugPanel(ex, ECUEditorManager
.getECUEditor().getSettings()
new DebugPanel(ex, SettingsManager.getSettings()
.getSupportURL()), "Exception",
JOptionPane.ERROR_MESSAGE);
}

View File

@ -354,7 +354,7 @@ public final class DOMSettingsBuilder {
plugin.setAttribute("port", entry.getValue());
plugins.appendChild(plugin);
}
final Map<String, IntfKitSensor> phidgets = Settings.getPhidgetSensors();
final Map<String, IntfKitSensor> phidgets = settings.getPhidgetSensors();
if (phidgets != null && !phidgets.isEmpty()) {
final Collection<IntfKitSensor> sensors = phidgets.values();
IIOMetadataNode phidgetsNode = new IIOMetadataNode("phidgets");

View File

@ -330,7 +330,7 @@ public final class DOMSettingsUnmarshaller {
}
}
}
Settings.setPhidgetSensors(phidgets);
settings.setPhidgetSensors(phidgets);
}
}
settings.setLoggerPluginPorts(pluginPorts);