mirror of https://github.com/rusefi/RomRaider.git
Include author and version in property view; Optimize table loading
This commit is contained in:
parent
796934782f
commit
4e257ad2ee
|
@ -12,4 +12,7 @@ LBLTRANS = Transmission:
|
|||
LBLMDL = Model:
|
||||
LBLSMDL = Submodel:
|
||||
LBLYR = Year:
|
||||
LBLTBLS = Tables:
|
||||
LBLTBLS = Tables (%d):
|
||||
LBLAUT = Def. Author:
|
||||
LBLDEFVER = Def. Version:
|
||||
LBLTBLCNT = Amount Of Tables:
|
|
@ -480,13 +480,11 @@ public class ECUEditor extends AbstractFrame {
|
|||
editor.setLastSelectedRom(null);
|
||||
}
|
||||
|
||||
editor.refreshTableCompareMenus();
|
||||
editor.getStatusPanel().setStatus(ECUEditor.rb.getString("STATUSREADY"));
|
||||
editor.setCursor(null);
|
||||
editor.refreshUI();
|
||||
editor.refreshAfterNewRom();
|
||||
|
||||
rom.clearData();
|
||||
System.gc();
|
||||
rom.clearData();
|
||||
}
|
||||
|
||||
public void closeAllImages() {
|
||||
|
@ -553,23 +551,17 @@ public class ECUEditor extends AbstractFrame {
|
|||
}
|
||||
return images;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChange(PropertyChangeEvent evt) {
|
||||
imageList.updateUI();
|
||||
imageList.repaint();
|
||||
rightPanel.updateUI();
|
||||
rightPanel.repaint();
|
||||
}
|
||||
|
||||
|
||||
public void refreshUI()
|
||||
{
|
||||
getToolBar().updateButtons();
|
||||
getEditorMenuBar().updateMenu();
|
||||
}
|
||||
|
||||
public void refreshAfterNewRom() {
|
||||
refreshTableCompareMenus();
|
||||
imageList.updateUI();
|
||||
imageList.repaint();
|
||||
rightPanel.updateUI();
|
||||
rightPanel.repaint();
|
||||
refreshUI();
|
||||
}
|
||||
|
||||
public void refreshTableCompareMenus() {
|
||||
|
@ -580,8 +572,7 @@ public class ECUEditor extends AbstractFrame {
|
|||
}
|
||||
|
||||
public void openImage(String filePath){
|
||||
File file = new File(filePath);
|
||||
openImage(file);
|
||||
openImage(new File(filePath));
|
||||
}
|
||||
|
||||
public void openImage(File inputFile){
|
||||
|
|
|
@ -325,10 +325,8 @@ public class OpenImageWorker extends SwingWorker<Void, Void> {
|
|||
rom = null;
|
||||
|
||||
editor.getStatusPanel().update(finalStatus, 0);
|
||||
editor.refreshTableCompareMenus();
|
||||
editor.setCursor(null);
|
||||
editor.refreshUI();
|
||||
System.gc();
|
||||
editor.refreshAfterNewRom();
|
||||
}
|
||||
else {
|
||||
editor.getStatusPanel().update(ECUEditor.rb.getString("STATUSREADY"), 0);
|
||||
|
|
|
@ -61,7 +61,6 @@ import com.romraider.logger.ecu.definition.LoggerData;
|
|||
import com.romraider.logger.ecu.ui.DataRegistrationBroker;
|
||||
import com.romraider.logger.ecu.ui.tab.LoggerChartPanel;
|
||||
import com.romraider.maps.DataCell;
|
||||
import com.romraider.maps.DataCellView;
|
||||
import com.romraider.maps.Rom;
|
||||
import com.romraider.maps.Table;
|
||||
import com.romraider.maps.Table2D;
|
||||
|
|
|
@ -56,7 +56,7 @@ public class DataCell implements Serializable {
|
|||
private String liveValue = Settings.BLANK;
|
||||
private String staticText = null;
|
||||
private Rom rom;
|
||||
|
||||
|
||||
//Index within table
|
||||
private int index;
|
||||
|
||||
|
|
|
@ -66,6 +66,7 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
private static final Logger LOGGER = Logger.getLogger(Rom.class);
|
||||
private static final ResourceBundle rb = new ResourceUtil().getBundle(
|
||||
Rom.class.getName());
|
||||
|
||||
private RomID romID;
|
||||
private File definitionPath;
|
||||
private String fileName = "";
|
||||
|
@ -81,11 +82,12 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
|
||||
private final HashMap<String, TableTreeNode> tableNodes = new HashMap<String, TableTreeNode>();
|
||||
private LinkedList<ChecksumManager> checksumManagers = new LinkedList<ChecksumManager>();
|
||||
|
||||
|
||||
public Rom(RomID romID) {
|
||||
this.romID = romID;
|
||||
}
|
||||
|
||||
//This makes sure we automatically sort the tables by name
|
||||
public void sortedAdd(DefaultMutableTreeNode currentParent, DefaultMutableTreeNode newNode) {
|
||||
boolean found = false;
|
||||
for(int k = 0; k < currentParent.getChildCount(); k++){
|
||||
|
@ -153,44 +155,24 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public void addTable(Table table) {
|
||||
boolean found = false;
|
||||
table.setRom(this);
|
||||
|
||||
for (int i = 0; i < tableNodes.size(); i++) {
|
||||
if (tableNodes.values()[i].getTable().equalsWithoutData(table)) {
|
||||
tableNodes.get(i).setUserObject(null);
|
||||
tableNodes.remove(i);
|
||||
tableNodes.put(table.getName(), new TableTreeNode(table));
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
tableNodes.put(table.getName(), new TableTreeNode(table));
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
public void addTableByName(Table table) {
|
||||
table.setRom(this);
|
||||
tableNodes.put(table.getName(), new TableTreeNode(table));
|
||||
tableNodes.put(table.getName().toLowerCase(), new TableTreeNode(table));
|
||||
}
|
||||
|
||||
public void removeTableByName(Table table) {
|
||||
if(tableNodes.containsKey(table.getName())) {
|
||||
tableNodes.remove(table.getName());
|
||||
if(tableNodes.containsKey(table.getName().toLowerCase())) {
|
||||
tableNodes.remove(table.getName().toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
public Table getTableByName(String tableName) {
|
||||
if(!tableNodes.containsKey(tableName)) {
|
||||
if(!tableNodes.containsKey(tableName.toLowerCase())) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
return tableNodes.get(tableName).getTable();
|
||||
return tableNodes.get(tableName.toLowerCase()).getTable();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -232,7 +214,7 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
int currProgress = (int) (i / (double) size * 100);
|
||||
progress.update(rb.getString("POPTABLES"), currProgress);
|
||||
|
||||
Table table = tableNodes.get(name).getTable();
|
||||
Table table = tableNodes.get(name.toLowerCase()).getTable();
|
||||
|
||||
try {
|
||||
if (table.getStorageAddress() >= 0) {
|
||||
|
@ -255,7 +237,7 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
size--;
|
||||
}
|
||||
} else {
|
||||
tableNodes.remove(table.getName());
|
||||
tableNodes.remove(table.getName().toLowerCase());
|
||||
size--;
|
||||
}
|
||||
|
||||
|
@ -267,10 +249,11 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
}
|
||||
|
||||
for(String s: badKeys) {
|
||||
tableNodes.remove(s);
|
||||
tableNodes.remove(s.toLowerCase());
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Move to Subaru checksum
|
||||
private void setEditStamp(byte[] binData, int address) {
|
||||
byte[] stampData = new byte[4];
|
||||
System.arraycopy(binData, address+204, stampData, 0, stampData.length);
|
||||
|
@ -344,8 +327,8 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
return tables;
|
||||
}
|
||||
|
||||
public Collection<TableTreeNode> getTableNodes() {
|
||||
return this.tableNodes.values();
|
||||
public HashMap<String, TableTreeNode> getTableNodes() {
|
||||
return this.tableNodes;
|
||||
}
|
||||
|
||||
public void setFileName(String fileName) {
|
||||
|
@ -379,10 +362,8 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
public byte[] saveFile() {
|
||||
|
||||
final List<TableTreeNode> checksumTables = new ArrayList<TableTreeNode>();
|
||||
for (TableTreeNode tableNode : tableNodes.values()) {
|
||||
if (tableNode.getTable().getName().contains("Checksum Fix")) {
|
||||
checksumTables.add(tableNode);
|
||||
}
|
||||
if(tableNodes.containsKey("checksum fix")) {
|
||||
checksumTables.add(tableNodes.get("checksum fix"));
|
||||
}
|
||||
|
||||
if (checksumTables.size() == 1) {
|
||||
|
@ -494,32 +475,16 @@ public class Rom extends DefaultMutableTreeNode implements Serializable {
|
|||
public void setAbstract(boolean isAbstract) {
|
||||
this.isAbstract = isAbstract;
|
||||
}
|
||||
|
||||
public void refreshTableCompareMenus() {
|
||||
for(TableTreeNode tableNode : getTableNodes()) {
|
||||
TableFrame f = tableNode.getFrame();
|
||||
if(f != null) f.refreshSimilarOpenTables();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DefaultMutableTreeNode getChildAt(int i) {
|
||||
return (DefaultMutableTreeNode) super.getChildAt(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DefaultMutableTreeNode getLastChild() {
|
||||
return (DefaultMutableTreeNode) super.getLastChild();
|
||||
}
|
||||
|
||||
public void addChecksumManager(ChecksumManager checksumManager) {
|
||||
this.checksumManagers.add(checksumManager);
|
||||
}
|
||||
|
||||
public ChecksumManager getChecksumType(int index) {
|
||||
return checksumManagers.get(index);
|
||||
}
|
||||
|
||||
|
||||
public int getNumChecksumsManagers() {
|
||||
return checksumManagers.size();
|
||||
}
|
||||
|
|
|
@ -155,13 +155,11 @@ public class CompareImagesForm extends JFrame implements ActionListener {
|
|||
}
|
||||
|
||||
private TableTreeNode findAndShowTable(Rom rom, String tableName) {
|
||||
for(TableTreeNode node : rom.getTableNodes()) {
|
||||
if(node != null && node.getTable().getName().equals(tableName)){
|
||||
ECUEditorManager.getECUEditor().displayTable(node);
|
||||
return node;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
if(rom.getTableNodes().containsKey(tableName.toLowerCase())) {
|
||||
return rom.getTableNodes().get(tableName.toLowerCase());
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public void populateComboBoxes()
|
||||
|
@ -184,11 +182,12 @@ public class CompareImagesForm extends JFrame implements ActionListener {
|
|||
int different = 0;
|
||||
int missing = 0;
|
||||
|
||||
for(TableTreeNode leftNode : left.getTableNodes())
|
||||
//TODO: Utilize map correctly!
|
||||
for(TableTreeNode leftNode : left.getTableNodes().values())
|
||||
{
|
||||
Boolean found = false;
|
||||
Table leftTable = leftNode.getTable();
|
||||
for(TableTreeNode rightNode : right.getTableNodes())
|
||||
for(TableTreeNode rightNode : right.getTableNodes().values())
|
||||
{
|
||||
Table rightTable = rightNode.getTable();
|
||||
|
||||
|
@ -214,9 +213,9 @@ public class CompareImagesForm extends JFrame implements ActionListener {
|
|||
}
|
||||
|
||||
// Check if rightTables has tables that do not exist in left table.
|
||||
for(TableTreeNode rightFrame : right.getTableNodes()) {
|
||||
for(TableTreeNode rightFrame : right.getTableNodes().values()) {
|
||||
Boolean found = false;
|
||||
for(TableTreeNode leftFrame : left.getTableNodes()) {
|
||||
for(TableTreeNode leftFrame : left.getTableNodes().values()) {
|
||||
if(leftFrame.getTable().getName().equalsIgnoreCase(rightFrame.getTable().getName()))
|
||||
{
|
||||
found = true;
|
||||
|
|
|
@ -587,7 +587,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
|
|||
String separator = System.getProperty("file.separator");
|
||||
|
||||
if(null != selectedDir) {
|
||||
for(TableTreeNode treeNode : ECUEditorManager.getECUEditor().getLastSelectedRom().getTableNodes())
|
||||
for(TableTreeNode treeNode : ECUEditorManager.getECUEditor().getLastSelectedRom().getTableNodes().values())
|
||||
{
|
||||
Table table = treeNode.getTable();
|
||||
String category = table.getCategory();
|
||||
|
|
|
@ -66,7 +66,7 @@ public class JTableChooser extends JOptionPane implements MouseListener {
|
|||
DefaultMutableTreeNode romNode = new DefaultMutableTreeNode(rom.getFileName());
|
||||
rootNode.add(romNode);
|
||||
|
||||
for (TableTreeNode tableTreeNode : rom.getTableNodes()) {
|
||||
for (TableTreeNode tableTreeNode : rom.getTableNodes().values()) {
|
||||
Table table = tableTreeNode.getTable();
|
||||
// use the length of the table name to set the width of the displayTree
|
||||
// so the entire name can be read without being cut off on the right
|
||||
|
|
|
@ -43,7 +43,12 @@ public class RomCellRenderer implements TreeCellRenderer {
|
|||
JLabel fileName;
|
||||
JLabel carInfo;
|
||||
DefaultTreeCellRenderer defaultRenderer = new DefaultTreeCellRenderer();
|
||||
|
||||
|
||||
static ImageIcon icon1D = new ImageIcon(RomCellRenderer.class.getResource("/graphics/1d.gif"));
|
||||
static ImageIcon icon2D = new ImageIcon(RomCellRenderer.class.getResource("/graphics/2d.gif"));
|
||||
static ImageIcon icon3D = new ImageIcon(RomCellRenderer.class.getResource("/graphics/3d.gif"));
|
||||
static ImageIcon iconSwitch = new ImageIcon(RomCellRenderer.class.getResource("/graphics/switch.gif"));
|
||||
|
||||
public RomCellRenderer() {
|
||||
fileName = new JLabel(" ");
|
||||
fileName.setFont(new Font("Tahoma", Font.BOLD, 11));
|
||||
|
@ -52,24 +57,60 @@ public class RomCellRenderer implements TreeCellRenderer {
|
|||
carInfo = new JLabel(" ");
|
||||
carInfo.setFont(new Font("Tahoma", Font.PLAIN, 10));
|
||||
carInfo.setHorizontalAlignment(JLabel.CENTER);
|
||||
|
||||
}
|
||||
|
||||
public static ImageIcon getIconForTable(Table t) {
|
||||
ImageIcon icon = null;
|
||||
|
||||
public static ImageIcon getIconForTable(Table t) {
|
||||
// display icon
|
||||
if (t.getType() == Table.TableType.TABLE_1D) {
|
||||
icon = new ImageIcon(RomCellRenderer.class.getResource("/graphics/1d.gif"));
|
||||
return icon1D;
|
||||
} else if (t.getType() == Table.TableType.TABLE_2D) {
|
||||
icon = new ImageIcon(RomCellRenderer.class.getResource("/graphics/2d.gif"));
|
||||
}else if (t.getType() == Table.TableType.TABLE_3D) {
|
||||
icon = new ImageIcon(RomCellRenderer.class.getResource("/graphics/3d.gif"));
|
||||
return icon2D;
|
||||
} else if (t.getType() == Table.TableType.TABLE_3D) {
|
||||
return icon3D;
|
||||
} else if (t.getType() == Table.TableType.SWITCH) {
|
||||
icon = new ImageIcon(RomCellRenderer.class.getResource("/graphics/switch.gif"));
|
||||
return iconSwitch;
|
||||
}
|
||||
|
||||
return icon;
|
||||
return null;
|
||||
}
|
||||
|
||||
private String buildCarInfoText(Rom rom) {
|
||||
String carInfoText = "<html>";
|
||||
RomID id = rom.getRomID();
|
||||
|
||||
if(id.getVersion() != null)
|
||||
carInfoText+= "<B><font color=blue>" + id.getVersion() + " </font></B>";
|
||||
|
||||
if(rom.getRomIDString() != null)
|
||||
carInfoText+=rom.getRomIDString() + ", ";
|
||||
|
||||
if(id.getCaseId() != null)
|
||||
carInfoText+=id.getCaseId() + "; ";
|
||||
|
||||
if(id.getYear() != null)
|
||||
carInfoText+=id.getYear() + " ";
|
||||
|
||||
if(id.getMake() != null)
|
||||
carInfoText+=id.getMake() + " ";
|
||||
|
||||
if(id.getModel() != null)
|
||||
carInfoText+=id.getModel() + " ";
|
||||
|
||||
if(id.getSubModel() != null)
|
||||
carInfoText+=id.getSubModel();
|
||||
|
||||
if(id.getTransmission() != null)
|
||||
carInfoText+=", " + id.getTransmission();
|
||||
|
||||
if(carInfoText.endsWith(", ") || carInfoText.endsWith("; "))
|
||||
carInfoText = carInfoText.substring(0, carInfoText.length() - 2);
|
||||
|
||||
if(id.getAuthor() != null)
|
||||
carInfoText+=" by " + id.getAuthor();
|
||||
|
||||
carInfoText+= "</html>";
|
||||
|
||||
return carInfoText;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -87,54 +128,9 @@ public class RomCellRenderer implements TreeCellRenderer {
|
|||
} else {
|
||||
fileName.setText("+ " + rom.getFileName());
|
||||
}
|
||||
|
||||
carInfo.setText(buildCarInfoText(rom));
|
||||
|
||||
String carInfoText = "<html>";
|
||||
RomID id = rom.getRomID();
|
||||
|
||||
if(id.getVersion() != null)
|
||||
carInfoText+= "<B><font color=blue>" + id.getVersion() + " </font></B>";
|
||||
|
||||
if(rom.getRomIDString() != null)
|
||||
carInfoText+=rom.getRomIDString() + ", ";
|
||||
|
||||
if(id.getCaseId() != null)
|
||||
carInfoText+=id.getCaseId() + "; ";
|
||||
|
||||
if(id.getYear() != null)
|
||||
carInfoText+=id.getYear() + " ";
|
||||
|
||||
if(id.getMake() != null)
|
||||
carInfoText+=id.getMake() + " ";
|
||||
|
||||
if(id.getModel() != null)
|
||||
carInfoText+=id.getModel() + " ";
|
||||
|
||||
if(id.getSubModel() != null)
|
||||
carInfoText+=id.getSubModel();
|
||||
|
||||
if(id.getTransmission() != null)
|
||||
carInfoText+=", " + id.getTransmission();
|
||||
|
||||
if(carInfoText.endsWith(", ") || carInfoText.endsWith("; "))
|
||||
carInfoText = carInfoText.substring(0, carInfoText.length() - 2);
|
||||
|
||||
if(id.getAuthor() != null)
|
||||
carInfoText+=" by " + id.getAuthor();
|
||||
|
||||
carInfoText+= "</html>";
|
||||
|
||||
/*
|
||||
String carInfoText = rom.getRomIDString() + ", " +
|
||||
rom.getRomID().getCaseId() + "; " +
|
||||
rom.getRomID().getYear() + " " +
|
||||
rom.getRomID().getMake() + " " +
|
||||
rom.getRomID().getModel() + " " +
|
||||
rom.getRomID().getSubModel() + ", " +
|
||||
rom.getRomID().getTransmission();*/
|
||||
|
||||
//TODO: Bit of a hack to not show the string when most fields arent set
|
||||
carInfoText = carInfoText.replace("null, ; Unknown null null null, null", "");
|
||||
carInfo.setText(carInfoText);
|
||||
JPanel renderer = new JPanel(new GridLayout(2, 1));
|
||||
renderer.add(fileName);
|
||||
renderer.add(carInfo);
|
||||
|
|
|
@ -22,13 +22,19 @@ package com.romraider.swing;
|
|||
import java.util.ResourceBundle;
|
||||
|
||||
import com.romraider.maps.Rom;
|
||||
import com.romraider.maps.RomID;
|
||||
import com.romraider.util.ResourceUtil;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JList;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.AbstractListModel;
|
||||
import javax.swing.GroupLayout;
|
||||
import javax.swing.GroupLayout.Alignment;
|
||||
import javax.swing.LayoutStyle.ComponentPlacement;
|
||||
|
||||
public class RomPropertyPanel extends javax.swing.JPanel {
|
||||
public class RomPropertyPanel extends JPanel {
|
||||
|
||||
private static final long serialVersionUID = 5583360728106071942L;
|
||||
private static final ResourceBundle rb = new ResourceUtil().getBundle(
|
||||
|
@ -37,65 +43,72 @@ public class RomPropertyPanel extends javax.swing.JPanel {
|
|||
|
||||
public RomPropertyPanel(Rom rom) {
|
||||
initComponents();
|
||||
|
||||
RomID romID = rom.getRomID();
|
||||
|
||||
// populate fields
|
||||
fileName.setText(rom.getFileName());
|
||||
xmlID.setText(rom.getRomID().getXmlid());
|
||||
ecuVersion.setText(rom.getRomID().getCaseId());
|
||||
xmlID.setText(romID.getXmlid());
|
||||
ecuVersion.setText(romID.getCaseId());
|
||||
if (rom.getRealFileSize() > 1024) {
|
||||
fileSize.setText((rom.getRealFileSize() / 1024) + "kB");
|
||||
}
|
||||
else {
|
||||
fileSize.setText(rom.getRealFileSize() + "B");
|
||||
}
|
||||
internalID.setText(rom.getRomID().getInternalIdString());
|
||||
storageAddress.setText("0x" + Integer.toHexString(rom.getRomID().getInternalIdAddress()));
|
||||
internalID.setText(romID.getInternalIdString());
|
||||
storageAddress.setText("0x" + Integer.toHexString(romID.getInternalIdAddress()));
|
||||
|
||||
make.setText(rom.getRomID().getMake());
|
||||
market.setText(rom.getRomID().getMarket());
|
||||
year.setText(rom.getRomID().getYear());
|
||||
model.setText(rom.getRomID().getModel());
|
||||
submodel.setText(rom.getRomID().getSubModel());
|
||||
transmission.setText(rom.getRomID().getTransmission());
|
||||
editStamp.setText(rom.getRomID().getEditStamp());
|
||||
checksum.setText(rom.getRomID().getChecksum());
|
||||
|
||||
make.setText(romID.getMake());
|
||||
market.setText(romID.getMarket());
|
||||
year.setText(romID.getYear());
|
||||
model.setText(romID.getModel());
|
||||
submodel.setText(romID.getSubModel());
|
||||
transmission.setText(romID.getTransmission());
|
||||
editStamp.setText(romID.getEditStamp());
|
||||
checksum.setText(romID.getChecksum());
|
||||
version.setText(romID.getVersion());
|
||||
author.setText(romID.getAuthor());
|
||||
lblTables.setText(String.format(rb.getString("LBLTBLS"), rom.getTables().size()));
|
||||
tableList.setListData(rom.getTables());
|
||||
}
|
||||
|
||||
// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
lblFilename = new javax.swing.JLabel();
|
||||
fileName = new javax.swing.JLabel();
|
||||
lblECURevision = new javax.swing.JLabel();
|
||||
xmlID = new javax.swing.JLabel();
|
||||
lblFilesize = new javax.swing.JLabel();
|
||||
fileSize = new javax.swing.JLabel();
|
||||
lblEcuVersion = new javax.swing.JLabel();
|
||||
ecuVersion = new javax.swing.JLabel();
|
||||
lblInternalId = new javax.swing.JLabel();
|
||||
internalID = new javax.swing.JLabel();
|
||||
lblStorageAddress = new javax.swing.JLabel();
|
||||
storageAddress = new javax.swing.JLabel();
|
||||
lblMake = new javax.swing.JLabel();
|
||||
lblMarket = new javax.swing.JLabel();
|
||||
lblTransmission = new javax.swing.JLabel();
|
||||
lblModel = new javax.swing.JLabel();
|
||||
lblSubmodel = new javax.swing.JLabel();
|
||||
lblYear = new javax.swing.JLabel();
|
||||
make = new javax.swing.JLabel();
|
||||
market = new javax.swing.JLabel();
|
||||
year = new javax.swing.JLabel();
|
||||
model = new javax.swing.JLabel();
|
||||
submodel = new javax.swing.JLabel();
|
||||
transmission = new javax.swing.JLabel();
|
||||
jScrollPane1 = new javax.swing.JScrollPane();
|
||||
tableList = new javax.swing.JList();
|
||||
lblTables = new javax.swing.JLabel();
|
||||
lblEditStamp = new javax.swing.JLabel();
|
||||
editStamp = new javax.swing.JLabel();
|
||||
lblChecksum = new javax.swing.JLabel();
|
||||
checksum = new javax.swing.JLabel();
|
||||
lblFilename = new JLabel();
|
||||
fileName = new JLabel();
|
||||
lblECURevision = new JLabel();
|
||||
xmlID = new JLabel();
|
||||
lblFilesize = new JLabel();
|
||||
fileSize = new JLabel();
|
||||
lblEcuVersion = new JLabel();
|
||||
ecuVersion = new JLabel();
|
||||
lblInternalId = new JLabel();
|
||||
internalID = new JLabel();
|
||||
lblStorageAddress = new JLabel();
|
||||
storageAddress = new JLabel();
|
||||
lblMake = new JLabel();
|
||||
lblMarket = new JLabel();
|
||||
lblTransmission = new JLabel();
|
||||
lblModel = new JLabel();
|
||||
lblSubmodel = new JLabel();
|
||||
lblYear = new JLabel();
|
||||
lblVersion = new JLabel();
|
||||
lblAuthor = new JLabel();
|
||||
version = new JLabel();
|
||||
author = new JLabel();
|
||||
make = new JLabel();
|
||||
market = new JLabel();
|
||||
year = new JLabel();
|
||||
model = new JLabel();
|
||||
submodel = new JLabel();
|
||||
transmission = new JLabel();
|
||||
jScrollPane1 = new JScrollPane();
|
||||
tableList = new JList();
|
||||
lblTables = new JLabel();
|
||||
lblEditStamp = new JLabel();
|
||||
editStamp = new JLabel();
|
||||
lblChecksum = new JLabel();
|
||||
checksum = new JLabel();
|
||||
|
||||
lblChecksum.setText(rb.getString("LBLCHKSUM"));
|
||||
lblEditStamp.setText(rb.getString("LBLEDIT"));
|
||||
|
@ -111,26 +124,10 @@ public class RomPropertyPanel extends javax.swing.JPanel {
|
|||
lblModel.setText(rb.getString("LBLMDL"));
|
||||
lblSubmodel.setText(rb.getString("LBLSMDL"));
|
||||
lblYear.setText(rb.getString("LBLYR"));
|
||||
|
||||
tableList.setModel(new javax.swing.AbstractListModel() {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -8498656966410761726L;
|
||||
String[] strings = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5"};
|
||||
|
||||
public int getSize() {
|
||||
return strings.length;
|
||||
}
|
||||
|
||||
public Object getElementAt(int i) {
|
||||
return strings[i];
|
||||
}
|
||||
});
|
||||
lblAuthor.setText(rb.getString("LBLAUT"));
|
||||
lblVersion.setText(rb.getString("LBLDEFVER"));
|
||||
jScrollPane1.setViewportView(tableList);
|
||||
|
||||
lblTables.setText(rb.getString("LBLTBLS"));
|
||||
|
||||
|
||||
GroupLayout layout = new GroupLayout(this);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(Alignment.LEADING)
|
||||
|
@ -141,6 +138,14 @@ public class RomPropertyPanel extends javax.swing.JPanel {
|
|||
.addComponent(lblFilename)
|
||||
.addPreferredGap(ComponentPlacement.RELATED)
|
||||
.addComponent(fileName, GroupLayout.PREFERRED_SIZE, 302, GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(lblAuthor)
|
||||
.addPreferredGap(ComponentPlacement.RELATED)
|
||||
.addComponent(author, GroupLayout.PREFERRED_SIZE, 302, GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(lblVersion)
|
||||
.addPreferredGap(ComponentPlacement.RELATED)
|
||||
.addComponent(version, GroupLayout.PREFERRED_SIZE, 302, GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGroup(layout.createParallelGroup(Alignment.LEADING)
|
||||
.addComponent(lblECURevision)
|
||||
|
@ -188,6 +193,14 @@ public class RomPropertyPanel extends javax.swing.JPanel {
|
|||
.addGroup(layout.createParallelGroup(Alignment.LEADING)
|
||||
.addComponent(lblFilename)
|
||||
.addComponent(fileName))
|
||||
.addPreferredGap(ComponentPlacement.RELATED)
|
||||
.addGroup(layout.createParallelGroup(Alignment.LEADING)
|
||||
.addComponent(lblAuthor)
|
||||
.addComponent(author))
|
||||
.addPreferredGap(ComponentPlacement.RELATED)
|
||||
.addGroup(layout.createParallelGroup(Alignment.LEADING)
|
||||
.addComponent(lblVersion)
|
||||
.addComponent(version))
|
||||
.addGap(26)
|
||||
.addGroup(layout.createParallelGroup(Alignment.LEADING)
|
||||
.addComponent(lblECURevision)
|
||||
|
@ -244,37 +257,41 @@ public class RomPropertyPanel extends javax.swing.JPanel {
|
|||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JLabel ecuVersion;
|
||||
private javax.swing.JLabel fileName;
|
||||
private javax.swing.JLabel fileSize;
|
||||
private javax.swing.JLabel internalID;
|
||||
private javax.swing.JScrollPane jScrollPane1;
|
||||
private javax.swing.JLabel lblECURevision;
|
||||
private javax.swing.JLabel lblEcuVersion;
|
||||
private javax.swing.JLabel lblFilename;
|
||||
private javax.swing.JLabel lblFilesize;
|
||||
private javax.swing.JLabel lblInternalId;
|
||||
private javax.swing.JLabel lblMake;
|
||||
private javax.swing.JLabel lblMarket;
|
||||
private javax.swing.JLabel lblModel;
|
||||
private javax.swing.JLabel lblStorageAddress;
|
||||
private javax.swing.JLabel lblSubmodel;
|
||||
private javax.swing.JLabel lblTables;
|
||||
private javax.swing.JLabel lblTransmission;
|
||||
private javax.swing.JLabel lblYear;
|
||||
private javax.swing.JLabel make;
|
||||
private javax.swing.JLabel market;
|
||||
private javax.swing.JLabel model;
|
||||
private javax.swing.JLabel storageAddress;
|
||||
private javax.swing.JLabel submodel;
|
||||
private javax.swing.JList tableList;
|
||||
private javax.swing.JLabel transmission;
|
||||
private javax.swing.JLabel xmlID;
|
||||
private javax.swing.JLabel year;
|
||||
private javax.swing.JLabel lblEditStamp;
|
||||
private javax.swing.JLabel editStamp;
|
||||
private javax.swing.JLabel lblChecksum;
|
||||
private javax.swing.JLabel checksum;
|
||||
private JLabel ecuVersion;
|
||||
private JLabel fileName;
|
||||
private JLabel fileSize;
|
||||
private JLabel internalID;
|
||||
private JScrollPane jScrollPane1;
|
||||
private JLabel lblECURevision;
|
||||
private JLabel lblEcuVersion;
|
||||
private JLabel lblFilename;
|
||||
private JLabel lblFilesize;
|
||||
private JLabel lblInternalId;
|
||||
private JLabel lblMake;
|
||||
private JLabel lblMarket;
|
||||
private JLabel lblModel;
|
||||
private JLabel lblStorageAddress;
|
||||
private JLabel lblSubmodel;
|
||||
private JLabel lblTables;
|
||||
private JLabel lblTransmission;
|
||||
private JLabel lblYear;
|
||||
private JLabel make;
|
||||
private JLabel market;
|
||||
private JLabel model;
|
||||
private JLabel storageAddress;
|
||||
private JLabel submodel;
|
||||
private JList tableList;
|
||||
private JLabel transmission;
|
||||
private JLabel xmlID;
|
||||
private JLabel year;
|
||||
private JLabel lblEditStamp;
|
||||
private JLabel editStamp;
|
||||
private JLabel lblChecksum;
|
||||
private JLabel checksum;
|
||||
private JLabel lblVersion;
|
||||
private JLabel version;
|
||||
private JLabel author;
|
||||
private JLabel lblAuthor;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
}
|
|
@ -241,19 +241,17 @@ public class TableFrame extends JInternalFrame implements InternalFrameListener,
|
|||
|
||||
if(images.size() > 1) {
|
||||
for(Rom rom : images) {
|
||||
for(TableTreeNode tableNode : rom.getTableNodes()) {
|
||||
if(tableNode.getTable().getRom() == getTable().getRom()) break;
|
||||
|
||||
if(tableNode.getTable().getName().equalsIgnoreCase(getTable().getName())) {
|
||||
JRadioButtonMenuItem similarTable = new TableMenuItem(tableNode.getTable());
|
||||
similarTable.setToolTipText(tableNode.getTable().getName());
|
||||
similarTable.addActionListener(this);
|
||||
similarTables.add(similarTable);
|
||||
addedTable = true;
|
||||
break;
|
||||
if (rom == getTable().getRom()) continue;
|
||||
if(rom.getTableNodes().containsKey(getTable().getName().toLowerCase())) {
|
||||
TableTreeNode tableNode = rom.getTableNodes().get(getTable().getName().toLowerCase());
|
||||
JRadioButtonMenuItem similarTable = new TableMenuItem(tableNode.getTable());
|
||||
similarTable.setToolTipText(tableNode.getTable().getName());
|
||||
similarTable.addActionListener(this);
|
||||
similarTables.add(similarTable);
|
||||
addedTable = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(addedTable)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* RomRaider Open-Source Tuning, Logging and Reflashing
|
||||
* Copyright (C) 2006-2021 RomRaider.com
|
||||
* Copyright (C) 2006-2022 RomRaider.com
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -23,9 +23,7 @@ import static com.romraider.xml.DOMHelper.unmarshallAttribute;
|
|||
import static com.romraider.xml.DOMHelper.unmarshallText;
|
||||
import static org.w3c.dom.Node.ELEMENT_NODE;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.management.modelmbean.XMLParseException;
|
||||
|
@ -53,7 +51,7 @@ import com.romraider.util.SettingsManager;
|
|||
public class TableScaleUnmarshaller {
|
||||
private static final Logger LOGGER = Logger.getLogger(TableScaleUnmarshaller.class);
|
||||
private final Map<String, Integer> tableNames = new HashMap<String, Integer>();
|
||||
private final List<Scale> scales = new ArrayList<Scale>();
|
||||
private final Map<String, Scale> scales = new HashMap<String, Scale>();
|
||||
private String memModelEndian = null;
|
||||
|
||||
public void setMemModelEndian(String endian) {
|
||||
|
@ -354,20 +352,13 @@ public class TableScaleUnmarshaller {
|
|||
if (!base.equalsIgnoreCase("none")) {
|
||||
// check whether base value matches the name of a an existing
|
||||
// scalingbase, if so, inherit from scalingbase
|
||||
for (Scale scaleItem : scales) {
|
||||
if (scaleItem.getName().equalsIgnoreCase(base)) {
|
||||
try {
|
||||
scale = (Scale) ObjectCloner.deepCopy(scaleItem);
|
||||
|
||||
} catch (Exception ex) {
|
||||
JOptionPane.showMessageDialog(
|
||||
ECUEditorManager.getECUEditor(),
|
||||
new DebugPanel(ex, SettingsManager.getSettings()
|
||||
.getSupportURL()), "Exception",
|
||||
JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(scales.containsKey(base.toLowerCase())) {
|
||||
try {
|
||||
scale = (Scale) ObjectCloner.deepCopy(scales.get(base.toLowerCase()));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Set Category to Default if missing or not inherited from scalingbase
|
||||
|
@ -380,7 +371,7 @@ public class TableScaleUnmarshaller {
|
|||
// name, otherwise use none
|
||||
if (!scale.getCategory().equalsIgnoreCase("Raw Value") &&
|
||||
scale.getName().equalsIgnoreCase("Raw Value")) {
|
||||
scale.setName(unmarshallAttribute(scaleNode, "name",
|
||||
scale.setName(unmarshallAttribute(scaleNode, "name",
|
||||
unmarshallAttribute(scaleNode, "units", "none")));
|
||||
}
|
||||
|
||||
|
@ -392,7 +383,7 @@ public class TableScaleUnmarshaller {
|
|||
String name = attr.getNodeName();
|
||||
String value = attr.getNodeValue();
|
||||
|
||||
if(name.equalsIgnoreCase("units"))scale.setUnit(value);
|
||||
if(name.equalsIgnoreCase("units")) scale.setUnit(value);
|
||||
else if(name.equalsIgnoreCase("expression")) scale.setExpression(value);
|
||||
else if(name.equalsIgnoreCase("format")) scale.setFormat(value);
|
||||
else if(name.equalsIgnoreCase("max")) scale.setMax(Double.parseDouble(value));
|
||||
|
@ -402,18 +393,13 @@ public class TableScaleUnmarshaller {
|
|||
else if(name.equalsIgnoreCase("fineincrement")) scale.setFineIncrement(Double.parseDouble(value));
|
||||
}
|
||||
|
||||
for (Scale s : scales) {
|
||||
if (s.equals(scale)) {
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
scales.add(scale);
|
||||
//Keep track of the scales if the base attribute it used later
|
||||
scales.put(scale.getName().toLowerCase(), scale);
|
||||
return scale;
|
||||
}
|
||||
|
||||
// for unit testing
|
||||
public List<Scale> getScales() {
|
||||
public Map<String, Scale> getScales() {
|
||||
return scales;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ import static org.junit.Assert.assertEquals;
|
|||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.w3c.dom.Document;
|
||||
|
@ -43,13 +44,13 @@ public class TableScaleUnmarshallerTest {
|
|||
public void testScalingBase() {
|
||||
final List<Scale> expectedScales = buildExpectedScales();
|
||||
tableScaleHandler.unmarshallBaseScales(document.getDocumentElement());
|
||||
final List<Scale> scales = tableScaleHandler.getScales();
|
||||
for (final Scale scale : scales) {
|
||||
final Map<String, Scale> scales = tableScaleHandler.getScales();
|
||||
for (final Scale scale : scales.values()) {
|
||||
System.out.println(scale);
|
||||
}
|
||||
assertEquals(expectedScales.size(), scales.size());
|
||||
for (Scale expectedScale : expectedScales) {
|
||||
assertEquals(true, scales.contains(expectedScale));
|
||||
assertEquals(true, scales.values().contains(expectedScale));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue