auto-sync

This commit is contained in:
rusEfi 2015-03-10 20:07:21 -05:00
parent a1fc730e2d
commit 9b5b6198fd
13 changed files with 214 additions and 185 deletions

View File

@ -20,6 +20,7 @@
package com.romraider.editor.ecu; package com.romraider.editor.ecu;
//import static com.romraider.Version.ECU_DEFS_URL; //import static com.romraider.Version.ECU_DEFS_URL;
import static com.romraider.Version.PRODUCT_NAME; import static com.romraider.Version.PRODUCT_NAME;
import static com.romraider.Version.VERSION; import static com.romraider.Version.VERSION;
import static javax.swing.JOptionPane.DEFAULT_OPTION; import static javax.swing.JOptionPane.DEFAULT_OPTION;
@ -40,9 +41,7 @@ import java.awt.Dimension;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.Font; import java.awt.Font;
import java.awt.GridLayout; import java.awt.GridLayout;
import java.awt.event.ActionEvent; import java.awt.event.*;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyVetoException; import java.beans.PropertyVetoException;
import java.io.BufferedReader; import java.io.BufferedReader;
@ -64,6 +63,7 @@ import javax.swing.JTextArea;
import javax.swing.SwingWorker; import javax.swing.SwingWorker;
import javax.swing.tree.TreePath; import javax.swing.tree.TreePath;
import com.rusefi.Launcher;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.xml.sax.InputSource; import org.xml.sax.InputSource;
import org.xml.sax.SAXParseException; import org.xml.sax.SAXParseException;
@ -86,8 +86,6 @@ import com.romraider.xml.RomNotFoundException;
import com.sun.org.apache.xerces.internal.parsers.DOMParser; import com.sun.org.apache.xerces.internal.parsers.DOMParser;
public class ECUEditor { public class ECUEditor {
private static final long serialVersionUID = -7826850987392016292L;
private final String titleText = PRODUCT_NAME + " v" + VERSION + " | ECU Editor"; private final String titleText = PRODUCT_NAME + " v" + VERSION + " | ECU Editor";
private final RomTreeRootNode imageRoot = new RomTreeRootNode("Open Images"); private final RomTreeRootNode imageRoot = new RomTreeRootNode("Open Images");
@ -106,36 +104,18 @@ public class ECUEditor {
private LaunchLoggerWorker launchLoggerWorker; private LaunchLoggerWorker launchLoggerWorker;
private final ImageIcon editorIcon = new ImageIcon(getClass().getResource("/graphics/romraider-ico.gif"), "RomRaider ECU Editor"); private final ImageIcon editorIcon = new ImageIcon(getClass().getResource("/graphics/romraider-ico.gif"), "RomRaider ECU Editor");
AbstractFrame frame = new AbstractFrame() { WindowListener wListenr = new WindowAdapter() {
@Override @Override
public void windowClosing(WindowEvent e) { public void windowClosing(WindowEvent e) {
handleExit(); handleExit();
} }
};
@Override
public void windowOpened(WindowEvent e) {
}
@Override JPanel content = new JPanel(new BorderLayout());
public void windowClosed(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
/*
AbstractFrame frame = new AbstractFrame() {
@Override @Override
public void propertyChange(PropertyChangeEvent evt) { public void propertyChange(PropertyChangeEvent evt) {
imageList.updateUI(); imageList.updateUI();
@ -144,7 +124,7 @@ public class ECUEditor {
rightPanel.repaint(); rightPanel.repaint();
} }
}; };
*/
public ECUEditor() { public ECUEditor() {
Settings settings = SettingsManager.getSettings(); Settings settings = SettingsManager.getSettings();
@ -152,11 +132,11 @@ public class ECUEditor {
showReleaseNotes(); showReleaseNotes();
} }
frame.setSize(settings.getWindowSize()); // frame.setSize(settings.getWindowSize());
frame.setLocation(settings.getWindowLocation()); // frame.setLocation(settings.getWindowLocation());
if (settings.isWindowMaximized()) { // if (settings.isWindowMaximized()) {
frame.setExtendedState(AbstractFrame.MAXIMIZED_BOTH); // frame.setExtendedState(AbstractFrame.MAXIMIZED_BOTH);
} // }
JScrollPane rightScrollPane = new JScrollPane(rightPanel, JScrollPane rightScrollPane = new JScrollPane(rightPanel,
VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED); VERTICAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_AS_NEEDED);
@ -166,23 +146,29 @@ public class ECUEditor {
splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftScrollPane, rightScrollPane); splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, leftScrollPane, rightScrollPane);
splitPane.setDividerSize(3); splitPane.setDividerSize(3);
splitPane.setDividerLocation(settings.getSplitPaneLocation()); splitPane.setDividerLocation(settings.getSplitPaneLocation());
splitPane.addPropertyChangeListener(frame); // splitPane.addPropertyChangeListener(frame);
splitPane.setContinuousLayout(true); splitPane.setContinuousLayout(true);
frame.getContentPane().add(splitPane);
content.add(splitPane, BorderLayout.CENTER);
rightPanel.setBackground(Color.BLACK); rightPanel.setBackground(Color.BLACK);
imageList.setScrollsOnExpand(true); imageList.setScrollsOnExpand(true);
frame.add(statusPanel, BorderLayout.SOUTH); //frame.add(statusPanel, BorderLayout.SOUTH);
//set remaining window properties //set remaining window properties
frame.setIconImage(editorIcon.getImage()); // frame.setIconImage(editorIcon.getImage());
frame.setDefaultCloseOperation(AbstractFrame.EXIT_ON_CLOSE); // frame.setDefaultCloseOperation(AbstractFrame.EXIT_ON_CLOSE);
frame.addWindowListener(frame); Launcher.getFrame().addWindowListener(wListenr);
frame.setTitle(titleText); // frame.setTitle(titleText);
frame.setVisible(true); // frame.setVisible(true);
frame.toFront(); // frame.toFront();
}
public JPanel getContent() {
return content;
} }
public static void openImage(byte[] input, File definitionFile, String fileName) throws Exception { public static void openImage(byte[] input, File definitionFile, String fileName) throws Exception {
@ -203,7 +189,6 @@ public class ECUEditor {
// Release mem after unmarshall. // Release mem after unmarshall.
parser.reset(); parser.reset();
doc.removeChild(doc.getDocumentElement()); doc.removeChild(doc.getDocumentElement());
doc = null;
fileStream.close(); fileStream.close();
System.gc(); System.gc();
} }
@ -224,7 +209,7 @@ public class ECUEditor {
public void initializeEditorUI() { public void initializeEditorUI() {
//create menubar //create menubar
menuBar = new ECUEditorMenuBar(); menuBar = new ECUEditorMenuBar();
frame.setJMenuBar(menuBar); // frame.setJMenuBar(menuBar);
// create toolbars // create toolbars
toolBar = new ECUEditorToolBar("Editor Tools"); toolBar = new ECUEditorToolBar("Editor Tools");
@ -239,8 +224,8 @@ public class ECUEditor {
toolBarPanel.add(tableToolBar); toolBarPanel.add(tableToolBar);
toolBarPanel.setVisible(true); toolBarPanel.setVisible(true);
frame.add(toolBarPanel, BorderLayout.NORTH); content.add(toolBarPanel, BorderLayout.NORTH);
frame.validate(); content.validate();
} }
public void checkDefinitions() { public void checkDefinitions() {
@ -258,7 +243,7 @@ public class ECUEditor {
if (answer == 0) { if (answer == 0) {
// BrowserControl.displayURL(ECU_DEFS_URL); // BrowserControl.displayURL(ECU_DEFS_URL);
} else { } else {
showMessageDialog(frame, showMessageDialog(Launcher.getFrame(),
"ECU definition files need to be configured before ROM images can be opened.\nMenu: ECU Definitions > ECU Definition Manager...", "ECU definition files need to be configured before ROM images can be opened.\nMenu: ECU Definitions > ECU Definition Manager...",
"Editor Configuration", "Editor Configuration",
INFORMATION_MESSAGE); INFORMATION_MESSAGE);
@ -287,7 +272,7 @@ public class ECUEditor {
JScrollPane scroller = new JScrollPane(releaseNotes, VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_NEVER); JScrollPane scroller = new JScrollPane(releaseNotes, VERTICAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_NEVER);
scroller.setPreferredSize(new Dimension(600, 500)); scroller.setPreferredSize(new Dimension(600, 500));
showMessageDialog(frame, scroller, showMessageDialog(Launcher.getFrame(), scroller,
PRODUCT_NAME + VERSION + " Release Notes", INFORMATION_MESSAGE); PRODUCT_NAME + VERSION + " Release Notes", INFORMATION_MESSAGE);
} finally { } finally {
br.close(); br.close();
@ -300,14 +285,14 @@ public class ECUEditor {
public void handleExit() { public void handleExit() {
Settings settings = SettingsManager.getSettings(); Settings settings = SettingsManager.getSettings();
settings.setSplitPaneLocation(splitPane.getDividerLocation()); settings.setSplitPaneLocation(splitPane.getDividerLocation());
settings.setWindowMaximized(frame.getExtendedState() == frame.MAXIMIZED_BOTH); // settings.setWindowMaximized(frame.getExtendedState() == frame.MAXIMIZED_BOTH);
settings.setWindowSize(frame.getSize()); // settings.setWindowSize(frame.getSize());
settings.setWindowLocation(frame.getLocation()); // settings.setWindowLocation(frame.getLocation());
// Save when exit to save file settings. // Save when exit to save file settings.
SettingsManager.save(settings, statusPanel); SettingsManager.save(settings, statusPanel);
statusPanel.update("Ready...", 0); statusPanel.update("Ready...", 0);
frame.repaint(); content.repaint();
} }
public String getVersion() { public String getVersion() {
@ -326,7 +311,7 @@ public class ECUEditor {
getImageList().expandPath(new TreePath(input.getPath())); getImageList().expandPath(new TreePath(input.getPath()));
if(!settings.isOpenExpanded()) { if (!settings.isOpenExpanded()) {
imageList.collapsePath(new TreePath(input.getPath())); imageList.collapsePath(new TreePath(input.getPath()));
} }
@ -334,7 +319,7 @@ public class ECUEditor {
getImageList().repaint(); getImageList().repaint();
// Only set if no other rom has been selected. // Only set if no other rom has been selected.
if(null == getLastSelectedRom()) { if (null == getLastSelectedRom()) {
setLastSelectedRom(input); setLastSelectedRom(input);
} }
@ -356,17 +341,17 @@ public class ECUEditor {
}); });
infoPanel.add(check); infoPanel.add(check);
showMessageDialog(frame, infoPanel, "ECU Revision is Obsolete", INFORMATION_MESSAGE); showMessageDialog(Launcher.getFrame(), infoPanel, "ECU Revision is Obsolete", INFORMATION_MESSAGE);
} }
} }
public void displayTable(TableFrame frame) { public void displayTable(TableFrame frame) {
try { try {
// check if frame has been added. // check if frame has been added.
for(JInternalFrame curFrame : getRightPanel().getAllFrames()) { for (JInternalFrame curFrame : getRightPanel().getAllFrames()) {
if(curFrame.equals(frame)) { if (curFrame.equals(frame)) {
// table is already open. // table is already open.
if(1 == SettingsManager.getSettings().getTableClickBehavior()) { // open/focus frame if (1 == SettingsManager.getSettings().getTableClickBehavior()) { // open/focus frame
// table is already open, so set focus on the frame. // table is already open, so set focus on the frame.
boolean selected = true; boolean selected = true;
frame.toFront(); frame.toFront();
@ -376,7 +361,7 @@ public class ECUEditor {
frame.toBack(); frame.toBack();
selected = false; selected = false;
} }
if(selected) { if (selected) {
frame.requestFocusInWindow(); frame.requestFocusInWindow();
} }
} else { // default to open/close frame } else { // default to open/close frame
@ -415,7 +400,7 @@ public class ECUEditor {
} }
public void closeImage() { public void closeImage() {
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
closeImageWorker = new CloseImageWorker(getLastSelectedRom()); closeImageWorker = new CloseImageWorker(getLastSelectedRom());
closeImageWorker.addPropertyChangeListener(getStatusPanel()); closeImageWorker.addPropertyChangeListener(getStatusPanel());
closeImageWorker.execute(); closeImageWorker.execute();
@ -438,11 +423,11 @@ public class ECUEditor {
public void setLastSelectedRom(Rom lastSelectedRom) { public void setLastSelectedRom(Rom lastSelectedRom) {
this.lastSelectedRom = lastSelectedRom; this.lastSelectedRom = lastSelectedRom;
if (lastSelectedRom == null) { // if (lastSelectedRom == null) {
frame.setTitle(titleText); // frame.setTitle(titleText);
} else { // } else {
frame.setTitle(titleText + " - " + lastSelectedRom.getFileName()); // frame.setTitle(titleText + " - " + lastSelectedRom.getFileName());
} // }
} }
public ECUEditorToolBar getToolBar() { public ECUEditorToolBar getToolBar() {
@ -466,7 +451,7 @@ public class ECUEditor {
} }
public void setUserLevel(int userLevel) { public void setUserLevel(int userLevel) {
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); content.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
SettingsManager.getSettings().setUserLevel(userLevel); SettingsManager.getSettings().setUserLevel(userLevel);
setUserLevelWorker = new SetUserLevelWorker(); setUserLevelWorker = new SetUserLevelWorker();
setUserLevelWorker.addPropertyChangeListener(getStatusPanel()); setUserLevelWorker.addPropertyChangeListener(getStatusPanel());
@ -476,9 +461,9 @@ public class ECUEditor {
public Vector<Rom> getImages() { public Vector<Rom> getImages() {
Vector<Rom> images = new Vector<>(); Vector<Rom> images = new Vector<>();
for (int i = 0; i < imageRoot.getChildCount(); i++) { for (int i = 0; i < imageRoot.getChildCount(); i++) {
if(imageRoot.getChildAt(i) instanceof Rom) { if (imageRoot.getChildAt(i) instanceof Rom) {
Rom rom = (Rom) imageRoot.getChildAt(i); Rom rom = (Rom) imageRoot.getChildAt(i);
if(null != rom) { if (null != rom) {
images.add(rom); images.add(rom);
} }
} }
@ -486,8 +471,7 @@ public class ECUEditor {
return images; return images;
} }
public void refreshUI() public void refreshUI() {
{
getToolBar().updateButtons(); getToolBar().updateButtons();
getEditorMenuBar().updateMenu(); getEditorMenuBar().updateMenu();
getTableToolBar().updateTableToolBar(); getTableToolBar().updateTableToolBar();
@ -499,9 +483,9 @@ public class ECUEditor {
public void refreshTableCompareMenus() { public void refreshTableCompareMenus() {
for (int i = 0; i < imageRoot.getChildCount(); i++) { for (int i = 0; i < imageRoot.getChildCount(); i++) {
if(imageRoot.getChildAt(i) instanceof Rom) { if (imageRoot.getChildAt(i) instanceof Rom) {
Rom rom = (Rom) imageRoot.getChildAt(i); Rom rom = (Rom) imageRoot.getChildAt(i);
if(null != rom) { if (null != rom) {
rom.refreshTableCompareMenus(); rom.refreshTableCompareMenus();
} }
} }
@ -509,7 +493,7 @@ public class ECUEditor {
} }
public void openImage(File inputFile) throws Exception { public void openImage(File inputFile) throws Exception {
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
openImageWorker = new OpenImageWorker(inputFile); openImageWorker = new OpenImageWorker(inputFile);
openImageWorker.addPropertyChangeListener(getStatusPanel()); openImageWorker.addPropertyChangeListener(getStatusPanel());
openImageWorker.execute(); openImageWorker.execute();
@ -528,7 +512,7 @@ public class ECUEditor {
} }
public void launchLogger() { public void launchLogger() {
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
// launchLoggerWorker = new LaunchLoggerWorker(); // launchLoggerWorker = new LaunchLoggerWorker();
// launchLoggerWorker.addPropertyChangeListener(getStatusPanel()); // launchLoggerWorker.addPropertyChangeListener(getStatusPanel());
// launchLoggerWorker.execute(); // launchLoggerWorker.execute();
@ -549,10 +533,6 @@ public class ECUEditor {
public MDIDesktopPane getRightPanel() { public MDIDesktopPane getRightPanel() {
return this.rightPanel; return this.rightPanel;
} }
public AbstractFrame getFrame() {
return frame;
}
} }
class LaunchLoggerWorker extends SwingWorker<Void, Void> { class LaunchLoggerWorker extends SwingWorker<Void, Void> {
@ -568,12 +548,10 @@ class LaunchLoggerWorker extends SwingWorker<Void, Void> {
return null; return null;
} }
public void propertyChange(PropertyChangeEvent evnt) public void propertyChange(PropertyChangeEvent evnt) {
{
SwingWorker source = (SwingWorker) evnt.getSource(); SwingWorker source = (SwingWorker) evnt.getSource();
if (null != source && "state".equals( evnt.getPropertyName() ) if (null != source && "state".equals(evnt.getPropertyName())
&& (source.isDone() || source.isCancelled() ) ) && (source.isDone() || source.isCancelled())) {
{
source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel()); source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel());
} }
} }
@ -583,7 +561,7 @@ class LaunchLoggerWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor(); ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready..."); editor.getStatusPanel().setStatus("Ready...");
setProgress(0); setProgress(0);
editor.frame.setCursor(null); Launcher.getFrame().setCursor(null);
editor.refreshUI(); editor.refreshUI();
} }
} }
@ -594,18 +572,16 @@ class SetUserLevelWorker extends SwingWorker<Void, Void> {
@Override @Override
protected Void doInBackground() throws Exception { protected Void doInBackground() throws Exception {
for(Rom rom : ECUEditorManager.getECUEditor().getImages()) { for (Rom rom : ECUEditorManager.getECUEditor().getImages()) {
rom.refreshDisplayedTables(); rom.refreshDisplayedTables();
} }
return null; return null;
} }
public void propertyChange(PropertyChangeEvent evnt) public void propertyChange(PropertyChangeEvent evnt) {
{
SwingWorker source = (SwingWorker) evnt.getSource(); SwingWorker source = (SwingWorker) evnt.getSource();
if (null != source && "state".equals( evnt.getPropertyName() ) if (null != source && "state".equals(evnt.getPropertyName())
&& (source.isDone() || source.isCancelled() ) ) && (source.isDone() || source.isCancelled())) {
{
source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel()); source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel());
} }
} }
@ -615,7 +591,7 @@ class SetUserLevelWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor(); ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready..."); editor.getStatusPanel().setStatus("Ready...");
setProgress(0); setProgress(0);
editor.frame.setCursor(null); Launcher.getFrame().setCursor(null);
editor.refreshUI(); editor.refreshUI();
} }
} }
@ -653,7 +629,7 @@ class CloseImageWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor(); ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready..."); editor.getStatusPanel().setStatus("Ready...");
setProgress(0); setProgress(0);
editor.frame.setCursor(null); Launcher.getFrame().setCursor(null);
editor.refreshUI(); editor.refreshUI();
System.gc(); System.gc();
} }
@ -688,7 +664,7 @@ class OpenImageWorker extends SwingWorker<Void, Void> {
ECUEditor.openImage(input, definitionFile, inputFile.getName()); ECUEditor.openImage(input, definitionFile, inputFile.getName());
setProgress(100); setProgress(100);
return null; return null;
} catch (RomNotFoundException rex) { } catch (RomNotFoundException rex) {
// rom was not found in current file, skip to next // rom was not found in current file, skip to next
@ -696,33 +672,31 @@ class OpenImageWorker extends SwingWorker<Void, Void> {
} }
// if code executes to this point, no ROM was found, report to user // if code executes to this point, no ROM was found, report to user
showMessageDialog(editor.frame, "ECU Definition Not Found", "Error Loading " + inputFile.getName(), ERROR_MESSAGE); showMessageDialog(Launcher.getFrame(), "ECU Definition Not Found", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (SAXParseException spe) { } catch (SAXParseException spe) {
// catch general parsing exception - enough people don't unzip the defs that a better error message is in order // catch general parsing exception - enough people don't unzip the defs that a better error message is in order
showMessageDialog(editor.frame, "Unable to read XML definitions. Please make sure the definition file is correct. If it is in a ZIP archive, unzip the file and try again.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE); showMessageDialog(Launcher.getFrame(), "Unable to read XML definitions. Please make sure the definition file is correct. If it is in a ZIP archive, unzip the file and try again.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (StackOverflowError ex) { } catch (StackOverflowError ex) {
// handles looped inheritance, which will use up all available memory // handles looped inheritance, which will use up all available memory
showMessageDialog(editor.frame, "Looped \"base\" attribute in XML definitions.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE); showMessageDialog(Launcher.getFrame(), "Looped \"base\" attribute in XML definitions.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (OutOfMemoryError ome) { } catch (OutOfMemoryError ome) {
// handles Java heap space issues when loading multiple Roms. // handles Java heap space issues when loading multiple Roms.
showMessageDialog(editor.frame, "Error loading Image. Out of memeory.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE); showMessageDialog(Launcher.getFrame(), "Error loading Image. Out of memeory.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} catch (Exception ex) { } catch (Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
showMessageDialog(editor.frame, "Error Loading. Unknown Exception.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE); showMessageDialog(Launcher.getFrame(), "Error Loading. Unknown Exception.", "Error Loading " + inputFile.getName(), ERROR_MESSAGE);
} }
return null; return null;
} }
public void propertyChange(PropertyChangeEvent evnt) public void propertyChange(PropertyChangeEvent evnt) {
{
SwingWorker source = (SwingWorker) evnt.getSource(); SwingWorker source = (SwingWorker) evnt.getSource();
if (null != source && "state".equals( evnt.getPropertyName() ) if (null != source && "state".equals(evnt.getPropertyName())
&& (source.isDone() || source.isCancelled() ) ) && (source.isDone() || source.isCancelled())) {
{
source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel()); source.removePropertyChangeListener(ECUEditorManager.getECUEditor().getStatusPanel());
} }
} }
@ -732,7 +706,7 @@ class OpenImageWorker extends SwingWorker<Void, Void> {
ECUEditor editor = ECUEditorManager.getECUEditor(); ECUEditor editor = ECUEditorManager.getECUEditor();
editor.getStatusPanel().setStatus("Ready..."); editor.getStatusPanel().setStatus("Ready...");
setProgress(0); setProgress(0);
editor.frame.setCursor(null); Launcher.getFrame().setCursor(null);
editor.refreshUI(); editor.refreshUI();
System.gc(); System.gc();
} }

View File

@ -56,6 +56,7 @@ import com.romraider.swing.TableToolBar;
import com.romraider.util.JEPUtil; import com.romraider.util.JEPUtil;
import com.romraider.util.SettingsManager; import com.romraider.util.SettingsManager;
import com.romraider.xml.RomAttributeParser; import com.romraider.xml.RomAttributeParser;
import com.rusefi.Launcher;
public abstract class Table extends JPanel implements Serializable { public abstract class Table extends JPanel implements Serializable {
private static final long serialVersionUID = 6559256489995552645L; private static final long serialVersionUID = 6559256489995552645L;
@ -1030,7 +1031,7 @@ public abstract class Table extends JPanel implements Serializable {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
} }
ECUEditorManager.getECUEditor().getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copySelectionWorker = new CopySelectionWorker(this); copySelectionWorker = new CopySelectionWorker(this);
copySelectionWorker.execute(); copySelectionWorker.execute();
@ -1052,7 +1053,7 @@ public abstract class Table extends JPanel implements Serializable {
if(null != ancestorWindow) { if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
} }
ECUEditorManager.getECUEditor().getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copyTableWorker = new CopyTableWorker(this); copyTableWorker = new CopyTableWorker(this);
copyTableWorker.execute(); copyTableWorker.execute();
@ -1446,7 +1447,7 @@ class CopySelectionWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null); ancestorWindow.setCursor(null);
} }
table.setCursor(null); table.setCursor(null);
ECUEditorManager.getECUEditor().getFrame().setCursor(null); Launcher.getFrame().setCursor(null);
} }
} }
@ -1473,6 +1474,6 @@ class CopyTableWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null); ancestorWindow.setCursor(null);
} }
table.setCursor(null); table.setCursor(null);
ECUEditorManager.getECUEditor().getFrame().setCursor(null); Launcher.getFrame().setCursor(null);
} }
} }

View File

@ -41,6 +41,7 @@ import javax.swing.SwingWorker;
import com.romraider.Settings; import com.romraider.Settings;
import com.romraider.editor.ecu.ECUEditorManager; import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.util.SettingsManager; import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
public class Table2D extends Table { public class Table2D extends Table {
private static final long serialVersionUID = -7684570967109324784L; private static final long serialVersionUID = -7684570967109324784L;
@ -249,7 +250,7 @@ public class Table2D extends Table {
if(null != ancestorWindow) { if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
} }
ECUEditorManager.getECUEditor().getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
super.copySelection(); super.copySelection();
copySelection2DWorker = new CopySelection2DWorker(this); copySelection2DWorker = new CopySelection2DWorker(this);
@ -262,7 +263,7 @@ public class Table2D extends Table {
if(null != ancestorWindow) { if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
} }
ECUEditorManager.getECUEditor().getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copyTable2DWorker = new CopyTable2DWorker(this); copyTable2DWorker = new CopyTable2DWorker(this);
copyTable2DWorker.execute(); copyTable2DWorker.execute();
@ -473,7 +474,7 @@ class CopySelection2DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null); ancestorWindow.setCursor(null);
} }
table.setCursor(null); table.setCursor(null);
ECUEditorManager.getECUEditor().getFrame().setCursor(null); Launcher.getFrame().setCursor(null);
} }
} }
@ -504,6 +505,6 @@ class CopyTable2DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null); ancestorWindow.setCursor(null);
} }
table.setCursor(null); table.setCursor(null);
ECUEditorManager.getECUEditor().getFrame().setCursor(null); Launcher.getFrame().setCursor(null);
} }
} }

View File

@ -47,6 +47,7 @@ import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.logger.ecu.ui.swing.vertical.VerticalLabelUI; import com.romraider.logger.ecu.ui.swing.vertical.VerticalLabelUI;
import com.romraider.util.SettingsManager; import com.romraider.util.SettingsManager;
import com.romraider.xml.RomAttributeParser; import com.romraider.xml.RomAttributeParser;
import com.rusefi.Launcher;
public class Table3D extends Table { public class Table3D extends Table {
@ -676,11 +677,10 @@ public class Table3D extends Table {
if(null != ancestorWindow) { if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
} }
ECUEditorManager.getECUEditor().getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copySelection3DWorker = new CopySelection3DWorker(this); copySelection3DWorker = new CopySelection3DWorker(this);
copySelection3DWorker.execute(); copySelection3DWorker.execute();
} }
@Override @Override
@ -689,7 +689,7 @@ public class Table3D extends Table {
if(null != ancestorWindow) { if(null != ancestorWindow) {
ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); ancestorWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
} }
ECUEditorManager.getECUEditor().getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); Launcher.getFrame().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
copyTable3DWorker = new CopyTable3DWorker(this); copyTable3DWorker = new CopyTable3DWorker(this);
copyTable3DWorker.execute(); copyTable3DWorker.execute();
@ -1109,7 +1109,7 @@ class CopySelection3DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null); ancestorWindow.setCursor(null);
} }
table.setCursor(null); table.setCursor(null);
ECUEditorManager.getECUEditor().getFrame().setCursor(null); Launcher.getFrame().setCursor(null);
} }
} }
@ -1137,6 +1137,6 @@ class CopyTable3DWorker extends SwingWorker<Void, Void> {
ancestorWindow.setCursor(null); ancestorWindow.setCursor(null);
} }
table.setCursor(null); table.setCursor(null);
ECUEditorManager.getECUEditor().getFrame().setCursor(null); Launcher.getFrame().setCursor(null);
} }
} }

View File

@ -27,7 +27,7 @@ import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
public abstract class AbstractFrame extends JFrame implements WindowListener, PropertyChangeListener { public abstract class AbstractFrame extends JFrame implements PropertyChangeListener {
public AbstractFrame() throws HeadlessException { public AbstractFrame() throws HeadlessException {
super(); super();
} }
@ -37,29 +37,4 @@ public abstract class AbstractFrame extends JFrame implements WindowListener, Pr
} }
private static final long serialVersionUID = 7948304087075622157L; private static final long serialVersionUID = 7948304087075622157L;
public void windowActivated(WindowEvent arg0) {
}
public void windowClosed(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowOpened(WindowEvent e) {
}
public void propertyChange(PropertyChangeEvent arg0) {
}
} }

View File

@ -30,6 +30,7 @@ import javax.swing.ListSelectionModel;
import com.romraider.editor.ecu.ECUEditorManager; import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.util.SettingsManager; import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
public class DefinitionManager extends javax.swing.JFrame implements ActionListener { public class DefinitionManager extends javax.swing.JFrame implements ActionListener {
@ -40,7 +41,7 @@ public class DefinitionManager extends javax.swing.JFrame implements ActionListe
Vector<String> fileNames; Vector<String> fileNames;
public DefinitionManager() { public DefinitionManager() {
this.setIconImage(ECUEditorManager.getECUEditor().getFrame().getIconImage()); this.setIconImage(Launcher.getFrame().getIconImage());
initComponents(); initComponents();
initSettings(); initSettings();

View File

@ -25,6 +25,7 @@ import com.romraider.editor.ecu.ECUEditorManager;
import com.romraider.maps.Rom; import com.romraider.maps.Rom;
import com.romraider.maps.Table; import com.romraider.maps.Table;
import com.romraider.util.SettingsManager; import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
@ -339,17 +340,17 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
//} else //} else
if (e.getSource() == romProperties) { if (e.getSource() == romProperties) {
showMessageDialog(parent.getFrame(), new RomPropertyPanel(parent.getLastSelectedRom()), showMessageDialog(Launcher.getFrame(), new RomPropertyPanel(parent.getLastSelectedRom()),
parent.getLastSelectedRom().getRomIDString() + " Properties", INFORMATION_MESSAGE); parent.getLastSelectedRom().getRomIDString() + " Properties", INFORMATION_MESSAGE);
} else if (e.getSource() == settings) { } else if (e.getSource() == settings) {
SettingsForm form = new SettingsForm(); SettingsForm form = new SettingsForm();
form.setLocationRelativeTo(parent.getFrame()); form.setLocationRelativeTo(Launcher.getFrame());
form.setVisible(true); form.setVisible(true);
} else if (e.getSource() == compareImages){ } else if (e.getSource() == compareImages){
CompareImagesForm form = new CompareImagesForm(parent.getImages(), parent.getFrame().getIconImage()); CompareImagesForm form = new CompareImagesForm(parent.getImages(), Launcher.getFrame().getIconImage());
form.setLocationRelativeTo(parent.getFrame()); form.setLocationRelativeTo(Launcher.getFrame());
form.setVisible(true); form.setVisible(true);
} else if (e.getSource() == level1) { } else if (e.getSource() == level1) {
@ -382,7 +383,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
+ "Build #: " + BUILDNUMBER + "\n" + "Build #: " + BUILDNUMBER + "\n"
+ SUPPORT_URL; + SUPPORT_URL;
String title = "About " + PRODUCT_NAME; String title = "About " + PRODUCT_NAME;
showMessageDialog(parent.getFrame(), message, title, INFORMATION_MESSAGE, ABOUT_ICON); showMessageDialog(Launcher.getFrame(), message, title, INFORMATION_MESSAGE, ABOUT_ICON);
} }
} }
@ -401,10 +402,10 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
ECUEditor parent = ECUEditorManager.getECUEditor(); ECUEditor parent = ECUEditorManager.getECUEditor();
JFileChooser fc = new JFileChooser(SettingsManager.getSettings().getLastImageDir()); JFileChooser fc = new JFileChooser(SettingsManager.getSettings().getLastImageDir());
fc.setFileFilter(new ECUImageFilter()); fc.setFileFilter(new ECUImageFilter());
if (fc.showSaveDialog(parent.getFrame()) == JFileChooser.APPROVE_OPTION) { if (fc.showSaveDialog(Launcher.getFrame()) == JFileChooser.APPROVE_OPTION) {
File selectedFile = fc.getSelectedFile(); File selectedFile = fc.getSelectedFile();
if (selectedFile.exists()) { if (selectedFile.exists()) {
int option = showConfirmDialog(parent.getFrame(), selectedFile.getName() + " already exists! Overwrite?"); int option = showConfirmDialog(Launcher.getFrame(), selectedFile.getName() + " already exists! Overwrite?");
// option: 0 = Cancel, 1 = No // option: 0 = Cancel, 1 = No
if (option == CANCEL_OPTION || option == 1) { if (option == CANCEL_OPTION || option == 1) {
@ -438,10 +439,10 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
// disable the "All files" option // disable the "All files" option
fc.setAcceptAllFileFilterUsed(false); fc.setAcceptAllFileFilterUsed(false);
if (fc.showSaveDialog(ECUEditorManager.getECUEditor().getFrame()) == JFileChooser.APPROVE_OPTION) { if (fc.showSaveDialog(Launcher.getFrame()) == JFileChooser.APPROVE_OPTION) {
File selectedDir = fc.getSelectedFile(); File selectedDir = fc.getSelectedFile();
if (selectedDir.exists()) { if (selectedDir.exists()) {
int option = showConfirmDialog(ECUEditorManager.getECUEditor().getFrame(), selectedDir.getName() + " already exists! Overwrite?"); int option = showConfirmDialog(Launcher.getFrame(), selectedDir.getName() + " already exists! Overwrite?");
// option: 0 = Cancel, 1 = No // option: 0 = Cancel, 1 = No
if (option == CANCEL_OPTION || option == 1) { if (option == CANCEL_OPTION || option == 1) {
@ -498,7 +499,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
if(null != selectedFile){ if(null != selectedFile){
if(lastSelectedRom.getRealFileSize() != Settings.SIXTEENBIT_SMALL_SIZE) if(lastSelectedRom.getRealFileSize() != Settings.SIXTEENBIT_SMALL_SIZE)
{ {
showMessageDialog(ECUEditorManager.getECUEditor().getFrame(), "Error converting image. Image size is invalid."); showMessageDialog(Launcher.getFrame(), "Error converting image. Image size is invalid.");
} else { } else {
byte[] output = lastSelectedRom.saveFile(); byte[] output = lastSelectedRom.saveFile();
byte[] incOutput = new byte[Settings.SIXTEENBIT_LARGE_SIZE]; byte[] incOutput = new byte[Settings.SIXTEENBIT_LARGE_SIZE];
@ -521,7 +522,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
if(null != selectedFile){ if(null != selectedFile){
if(lastSelectedRom.getRealFileSize() != Settings.SIXTEENBIT_LARGE_SIZE) if(lastSelectedRom.getRealFileSize() != Settings.SIXTEENBIT_LARGE_SIZE)
{ {
showMessageDialog(ECUEditorManager.getECUEditor().getFrame(), "Error converting image. Image size is invalid."); showMessageDialog(Launcher.getFrame(), "Error converting image. Image size is invalid.");
} else { } else {
byte[] output =lastSelectedRom.saveFile(); byte[] output =lastSelectedRom.saveFile();
byte[] decOutput = new byte[Settings.SIXTEENBIT_SMALL_SIZE]; byte[] decOutput = new byte[Settings.SIXTEENBIT_SMALL_SIZE];

View File

@ -53,13 +53,14 @@ import com.romraider.editor.ecu.ECUEditor;
import com.romraider.editor.ecu.ECUEditorManager; import com.romraider.editor.ecu.ECUEditorManager;
//import com.romraider.util.FileAssociator; //import com.romraider.util.FileAssociator;
import com.romraider.util.SettingsManager; import com.romraider.util.SettingsManager;
import com.rusefi.Launcher;
public class SettingsForm extends JFrame implements MouseListener { public class SettingsForm extends JFrame implements MouseListener {
private static final long serialVersionUID = 3910602424260147767L; private static final long serialVersionUID = 3910602424260147767L;
public SettingsForm() { public SettingsForm() {
this.setIconImage(getEditor().getFrame().getIconImage()); this.setIconImage(Launcher.getFrame().getIconImage());
initComponents(); initComponents();
initSettings(); initSettings();

View File

@ -31,6 +31,7 @@ import java.util.List;
import javax.management.modelmbean.XMLParseException; import javax.management.modelmbean.XMLParseException;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import com.rusefi.Launcher;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
@ -369,7 +370,7 @@ public final class DOMRomUnmarshaller {
} catch (InvalidTableNameException ex) { // Table name is invalid, do nothing. } catch (InvalidTableNameException ex) { // Table name is invalid, do nothing.
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
JOptionPane.showMessageDialog(ECUEditorManager.getECUEditor().getFrame(), JOptionPane.showMessageDialog(Launcher.getFrame(),
new DebugPanel(ex, SettingsManager.getSettings().getSupportURL()), "Exception", new DebugPanel(ex, SettingsManager.getSettings().getSupportURL()), "Exception",
JOptionPane.ERROR_MESSAGE); JOptionPane.ERROR_MESSAGE);
@ -581,7 +582,7 @@ public final class DOMRomUnmarshaller {
} catch (Exception ex) { } catch (Exception ex) {
JOptionPane.showMessageDialog( JOptionPane.showMessageDialog(
ECUEditorManager.getECUEditor().getFrame(), Launcher.getFrame(),
new DebugPanel(ex, SettingsManager.getSettings() new DebugPanel(ex, SettingsManager.getSettings()
.getSupportURL()), "Exception", .getSupportURL()), "Exception",
JOptionPane.ERROR_MESSAGE); JOptionPane.ERROR_MESSAGE);

View File

@ -16,6 +16,9 @@ import com.rusefi.ui.util.FrameHelper;
import jssc.SerialPortList; import jssc.SerialPortList;
import javax.swing.*; import javax.swing.*;
import javax.swing.table.TableCellEditor;
import java.awt.*;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig; import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
@ -30,7 +33,7 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
* @see com.rusefi.ui.engine.EngineSnifferPanel * @see com.rusefi.ui.engine.EngineSnifferPanel
* @see com.rusefi.StartupFrame * @see com.rusefi.StartupFrame
*/ */
public class Launcher extends FrameHelper { public class Launcher {
public static final int CONSOLE_VERSION = 20150310; public static final int CONSOLE_VERSION = 20150310;
public static final boolean SHOW_STIMULATOR = false; public static final boolean SHOW_STIMULATOR = false;
public static final String TAB_INDEX = "main_tab"; public static final String TAB_INDEX = "main_tab";
@ -39,8 +42,26 @@ public class Launcher extends FrameHelper {
public static int defaultFontSize; public static int defaultFontSize;
private static Frame staticFrame;
TableEditor tableEditor = new TableEditor();
FrameHelper frame = new FrameHelper() {
@Override
protected void onWindowOpened() {
super.onWindowOpened();
windowOpenedHandler();
}
@Override
protected void onWindowClosed() {
super.onWindowClosed();
windowClosedHandler();
}
};
public Launcher(String port) { public Launcher(String port) {
this.port = port; this.port = port;
staticFrame = frame.getFrame();
FileLog.MAIN.start(); FileLog.MAIN.start();
LinkManager.start(port); LinkManager.start(port);
@ -58,6 +79,9 @@ public class Launcher extends FrameHelper {
tabbedPane.addTab("Engine Sniffer", engineSnifferPanel.getPanel()); tabbedPane.addTab("Engine Sniffer", engineSnifferPanel.getPanel());
tabbedPane.addTab("Sensor Sniffer", new AnalogChartPanel().getPanel()); tabbedPane.addTab("Sensor Sniffer", new AnalogChartPanel().getPanel());
tabbedPane.addTab("Table Editor", tableEditor);
tabbedPane.addTab("LE controls", new FlexibleControls().getPanel()); tabbedPane.addTab("LE controls", new FlexibleControls().getPanel());
// tabbedPane.addTab("ADC", new AdcPanel(new BooleanInputsModel()).createAdcPanel()); // tabbedPane.addTab("ADC", new AdcPanel(new BooleanInputsModel()).createAdcPanel());
@ -77,13 +101,11 @@ public class Launcher extends FrameHelper {
tabbedPane.setSelectedIndex(selectedIndex); tabbedPane.setSelectedIndex(selectedIndex);
} }
StartupFrame.setAppIcon(frame); StartupFrame.setAppIcon(frame.getFrame());
showFrame(tabbedPane); frame.showFrame(tabbedPane);
} }
@Override private void windowOpenedHandler() {
protected void onWindowOpened() {
super.onWindowOpened();
setTitle("N/A"); setTitle("N/A");
LinkManager.open(new LinkManager.LinkStateListener() { LinkManager.open(new LinkManager.LinkStateListener() {
@ -93,11 +115,7 @@ public class Launcher extends FrameHelper {
@Override @Override
public void onConnectionEstablished() { public void onConnectionEstablished() {
try { tableEditor.showContent();
BinaryProtocolCmd.doShowImage(BinaryProtocol.instance.getController());
} catch (Exception e) {
throw new IllegalStateException(e);
}
} }
}); });
@ -111,14 +129,12 @@ public class Launcher extends FrameHelper {
} }
private void setTitle(String value) { private void setTitle(String value) {
frame.setTitle("Console " + CONSOLE_VERSION + "; firmware=" + value + "@" + port); frame.getFrame().setTitle("Console " + CONSOLE_VERSION + "; firmware=" + value + "@" + port);
} }
@Override private void windowClosedHandler() {
protected void onWindowClosed() {
super.onWindowClosed();
/** /**
* looks like reconnectTimer in {@link RpmPanel} keeps AWT alive. Simplest solution would be to 'exit' * looks like reconnectTimer in {@link com.rusefi.ui.RpmPanel} keeps AWT alive. Simplest solution would be to 'exit'
*/ */
SimulatorHelper.onWindowClosed(); SimulatorHelper.onWindowClosed();
Node root = getConfig().getRoot(); Node root = getConfig().getRoot();
@ -155,4 +171,8 @@ public class Launcher extends FrameHelper {
throw new IllegalStateException(e); throw new IllegalStateException(e);
} }
} }
public static Frame getFrame() {
return staticFrame;
}
} }

View File

@ -27,17 +27,19 @@ public class RomRaiderWrapper {
} }
public static ECUEditor startRomRaider() { public static ECUEditor startRomRaider() {
Settings settings = SettingsManager.getSettings(); init();
settings.getEcuDefinitionFiles().clear();
settings.addEcuDefinitionFile(new File(DEFINITION_FILE)); // LookAndFeelManager.initLookAndFeel();
LogManager.initDebugLogging();
LookAndFeelManager.initLookAndFeel();
ECUEditor editor = getECUEditor(); ECUEditor editor = getECUEditor();
editor.initializeEditorUI(); editor.initializeEditorUI();
return editor; return editor;
} }
public static void init() {
Settings settings = SettingsManager.getSettings();
settings.getEcuDefinitionFiles().clear();
settings.addEcuDefinitionFile(new File(DEFINITION_FILE));
LogManager.initDebugLogging();
}
} }

View File

@ -0,0 +1,46 @@
package com.rusefi;
import com.romraider.editor.ecu.ECUEditor;
import com.romraider.util.SettingsManager;
import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.binaryprotocol.BinaryProtocolCmd;
import com.rusefi.ui.util.UiUtils;
import javax.swing.*;
import java.awt.*;
import static com.romraider.editor.ecu.ECUEditorManager.getECUEditor;
public class TableEditor extends JPanel {
public TableEditor() {
super(new BorderLayout());
add(new JLabel("Loading tables"), BorderLayout.CENTER);
}
public void showContent() {
removeAll();
if (!BinaryProtocolCmd.checkForDefinitionFile())
return;
try {
RomRaiderWrapper.init();
ECUEditor editor = getECUEditor();
editor.initializeEditorUI();
add(editor.getContent());
ConfigurationImage image = BinaryProtocol.instance.getController();
ECUEditor.openImage(image.getFileContent(), SettingsManager.getSettings().getEcuDefinitionFiles().elementAt(0),
"rusEfi");
} catch (Exception e) {
throw new IllegalStateException(e);
}
UiUtils.trueLayout(this);
}
}

View File

@ -49,15 +49,21 @@ public class BinaryProtocolCmd {
} }
public static void doShowImage(ConfigurationImage image) throws Exception { public static void doShowImage(ConfigurationImage image) throws Exception {
if (!new File(RomRaiderWrapper.DEFINITION_FILE).exists()) { if (!checkForDefinitionFile())
JOptionPane.showMessageDialog(null, RomRaiderWrapper.DEFINITION_FILE + " not found, turning off table editor");
return; return;
}
RomRaiderWrapper.startRomRaider(); RomRaiderWrapper.startRomRaider();
ECUEditor.openImage(image.getFileContent(), SettingsManager.getSettings().getEcuDefinitionFiles().elementAt(0), ECUEditor.openImage(image.getFileContent(), SettingsManager.getSettings().getEcuDefinitionFiles().elementAt(0),
"rusEfi"); "rusEfi");
} }
public static boolean checkForDefinitionFile() {
if (!new File(RomRaiderWrapper.DEFINITION_FILE).exists()) {
JOptionPane.showMessageDialog(null, RomRaiderWrapper.DEFINITION_FILE + " not found, turning off table editor");
return false;
}
return true;
}
public static void scheduleBurn(ConfigurationImage newVersion) { public static void scheduleBurn(ConfigurationImage newVersion) {
UploadChanges.scheduleBurn(newVersion, bp); UploadChanges.scheduleBurn(newVersion, bp);
} }