diff --git a/release notes.txt b/release notes.txt index efed3f8c..cc0c7d28 100644 --- a/release notes.txt +++ b/release notes.txt @@ -4,6 +4,12 @@ Enginuity is currently in BETA TEST status, meaning it is not thoroughly tested Until Enginuity reaches a mature point, releases will be quite frequent and will usually contain significant changes. However, some times I may release a revision to add a single feature I'd like users to have, or maybe just to add a certain ECU version. Until more features are complete, version support will be quite limited. If you'd like your ECU version to be added, please visit openecu.org and post a message in the Technical Tuning Software forum, with your image attached. + +0.2.7.1b Release Notes (4/12/2006) +-------------------------------- +There were a few small bugs with settings not saving properly. Fixed. + + 0.2.7b Release Notes (4/12/2006) -------------------------------- The main goal of this release was fixing known issues and adding a settings panel. The settings panel now allows you to choose the way tables are displayed, which warnings will be displayed and specify system files. Settings are now stored in settings.xml -- the old method caused settings to be lost whenever a new feature was introduced with a release. A message will appear the first time you run the new version telling you Enginuity is creating a new settings file. @@ -13,6 +19,14 @@ Bug fixes are listed in the changes below. A memory usage issue still exists in Changes: -------- +0.2.7.1b (4/12/2006) +-------------------- +- Fixed ECU definitions not saving +- Fixed last image directory not saving +- Fixed colors not saving +- Fixed increased/decreased cell borders not updating + + 0.2.7b (4/12/2006) ------------------ - Replace serialized settings object with XML diff --git a/src/enginuity/Settings.java b/src/enginuity/Settings.java index d1fb80a9..21fc8713 100644 --- a/src/enginuity/Settings.java +++ b/src/enginuity/Settings.java @@ -21,7 +21,7 @@ public class Settings implements Serializable { private Vector ecuDefinitionFiles = new Vector(); private File lastImageDir = new File("images"); private boolean obsoleteWarning = true; - private boolean calcConflictWarning = true; ////// + private boolean calcConflictWarning = true; private boolean debug = false; private Font tableFont = new Font("Arial", Font.BOLD, 12); diff --git a/src/enginuity/maps/DataCell.java b/src/enginuity/maps/DataCell.java index 8572cf3f..5c4b9963 100644 --- a/src/enginuity/maps/DataCell.java +++ b/src/enginuity/maps/DataCell.java @@ -50,8 +50,6 @@ public class DataCell extends JLabel implements MouseListener, Serializable { public double calcDisplayValue(int input, String expression) { JEP parser = new JEP(); parser.initSymTab(); // clear the contents of the symbol table - /*parser.addStandardConstants(); - parser.addComplex(); // among other things adds i to the symbol table*/ parser.addVariable("x", input); parser.parseExpression(expression); return parser.getValue(); @@ -76,13 +74,13 @@ public class DataCell extends JLabel implements MouseListener, Serializable { this.setBinValue((int)(Math.pow(256, table.getStorageType()) - 1)); } this.updateDisplayValue(); - if (binValue > getOriginalValue()) { + /*if (binValue > getOriginalValue()) { this.setBorder(new LineBorder(increaseBorder, 2)); } else if (binValue < getOriginalValue()) { this.setBorder(new LineBorder(decreaseBorder, 2)); } else { this.setBorder(new LineBorder(Color.BLACK, 1)); - } + }*/ } public int getBinValue() { diff --git a/src/enginuity/maps/Table.java b/src/enginuity/maps/Table.java index 4e3de692..4983a5a9 100644 --- a/src/enginuity/maps/Table.java +++ b/src/enginuity/maps/Table.java @@ -23,6 +23,7 @@ import javax.swing.InputMap; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.KeyStroke; +import javax.swing.border.LineBorder; import org.nfunk.jep.JEP; public abstract class Table extends JPanel implements Serializable { @@ -418,6 +419,15 @@ public abstract class Table extends JPanel implements Serializable { int b = (int)((maxColor.getBlue() - minColor.getBlue()) * scale) + minColor.getBlue(); data[i].setColor(new Color(r, g, b)); + + // set border + if (data[i].getBinValue() > data[i].getOriginalValue()) { + data[i].setBorder(new LineBorder(getRom().getContainer().getSettings().getIncreaseBorder())); + } else if (data[i].getBinValue() < data[i].getOriginalValue()) { + data[i].setBorder(new LineBorder(getRom().getContainer().getSettings().getDecreaseBorder())); + } else { + data[i].setBorder(new LineBorder(Color.BLACK, 1)); + } } } } @@ -563,7 +573,6 @@ public abstract class Table extends JPanel implements Serializable { public void addKeyListener(KeyListener listener) { super.addKeyListener(listener); for (int i = 0; i < data.length; i++) { - // need to deal with storage type (num bytes) byte[] output = RomAttributeParser.parseIntegerValue(data[i].getBinValue(), endian, storageType); for (int z = 0; z < storageType; z++) { data[i].addKeyListener(listener); diff --git a/src/enginuity/maps/Table3D.java b/src/enginuity/maps/Table3D.java index 5ffa01fc..56c2d35e 100644 --- a/src/enginuity/maps/Table3D.java +++ b/src/enginuity/maps/Table3D.java @@ -1,8 +1,5 @@ package enginuity.maps; -import enginuity.maps.DataCell; -import enginuity.maps.Table; -import enginuity.maps.Table1D; import enginuity.Settings; import enginuity.xml.RomAttributeParser; import enginuity.swing.TableFrame; @@ -22,6 +19,7 @@ import java.io.Serializable; import java.util.StringTokenizer; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.border.LineBorder; public class Table3D extends Table implements Serializable { @@ -175,7 +173,16 @@ public class Table3D extends Table implements Serializable { int g = (int)((maxColor.getGreen() - minColor.getGreen()) * scale) + minColor.getGreen(); int b = (int)((maxColor.getBlue() - minColor.getBlue()) * scale) + minColor.getBlue(); data[x][y].setColor(new Color(r, g, b)); - } + + // set border + if (data[x][y].getBinValue() > data[x][y].getOriginalValue()) { + data[x][y].setBorder(new LineBorder(getRom().getContainer().getSettings().getIncreaseBorder())); + } else if (data[x][y].getBinValue() < data[x][y].getOriginalValue()) { + data[x][y].setBorder(new LineBorder(getRom().getContainer().getSettings().getDecreaseBorder())); + } else { + data[x][y].setBorder(new LineBorder(Color.BLACK, 1)); + } + } } } } diff --git a/src/enginuity/swing/ECUEditorMenuBar.java b/src/enginuity/swing/ECUEditorMenuBar.java index c441593b..24c41b2a 100644 --- a/src/enginuity/swing/ECUEditorMenuBar.java +++ b/src/enginuity/swing/ECUEditorMenuBar.java @@ -199,8 +199,8 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener { if (fc.showOpenDialog(parent) == fc.APPROVE_OPTION) { openImage(fc.getSelectedFile()); + parent.getSettings().setLastImageDir(fc.getCurrentDirectory()); } - parent.getSettings().setLastImageDir(fc.getCurrentDirectory()); } public void openImage(File inputFile) throws XMLParseException, Exception { @@ -218,10 +218,6 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener { Rom rom = domUms.unmarshallXMLDefinition(doc.getDocumentElement(), input); rom.populateTables(input); rom.setFileName(inputFile.getName()); - - if (rom.getRomID().isObsolete()) { - // insert JOptionPane with link to ECU revision wiki here - } parent.addRom(rom); rom.setFullFileName(inputFile); diff --git a/src/enginuity/xml/DOMSettingsBuilder.java b/src/enginuity/xml/DOMSettingsBuilder.java index cf119297..db0ed998 100644 --- a/src/enginuity/xml/DOMSettingsBuilder.java +++ b/src/enginuity/xml/DOMSettingsBuilder.java @@ -158,7 +158,7 @@ public class DOMSettingsBuilder { decreaseBorder.setAttribute("b", settings.getDecreaseBorder().getBlue()+""); colors.appendChild(decreaseBorder); // axis cells - IIOMetadataNode axis = new IIOMetadataNode("decreaseborder"); + IIOMetadataNode axis = new IIOMetadataNode("axis"); axis.setAttribute("r", settings.getAxisColor().getRed()+""); axis.setAttribute("g", settings.getAxisColor().getGreen()+""); axis.setAttribute("b", settings.getAxisColor().getBlue()+""); diff --git a/src/enginuity/xml/DOMSettingsUnmarshaller.java b/src/enginuity/xml/DOMSettingsUnmarshaller.java index cae8fe0e..251e3387 100644 --- a/src/enginuity/xml/DOMSettingsUnmarshaller.java +++ b/src/enginuity/xml/DOMSettingsUnmarshaller.java @@ -29,6 +29,8 @@ public class DOMSettingsUnmarshaller { settings = unmarshallURLs(n, settings); } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("options")) { settings = unmarshallOptions(n, settings); + } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("files")) { + settings = unmarshallFiles(n, settings); } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("tabledisplay")) { settings = unmarshallTableDisplay(n, settings); } @@ -89,9 +91,9 @@ public class DOMSettingsUnmarshaller { n = nodes.item(i); if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("ecudefinitionfile")) { - settings.addEcuDefinitionFile(new File(unmarshallText(n))); + settings.addEcuDefinitionFile(new File(unmarshallAttribute(n, "name", "ecu_defs.xml"))); } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("image_dir")) { - settings.setLastImageDir(new File(unmarshallText(n))); + settings.setLastImageDir(new File(unmarshallAttribute(n, "path", "ecu_defs.xml"))); } } return settings; @@ -133,7 +135,7 @@ public class DOMSettingsUnmarshaller { settings.setCellSize(new Dimension(unmarshallAttribute(n, "x", 42), unmarshallAttribute(n, "y", 18))); - } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("color")) { + } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("colors")) { settings = unmarshallColors(n, settings); } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("singletableview")) { @@ -158,10 +160,11 @@ public class DOMSettingsUnmarshaller { } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("highlight")) { settings.setHighlightColor(unmarshallColor(n)); } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("increaseborder")) { - settings.setIncreaseBorder(unmarshallColor(n)); + settings.setIncreaseBorder(unmarshallColor(n)); + System.out.println(unmarshallColor(n)); } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("decreaseborder")) { settings.setDecreaseBorder(unmarshallColor(n)); - } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("axiscolor")) { + } else if (n.getNodeType() == Node.ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("axis")) { settings.setAxisColor(unmarshallColor(n)); } }