Updated popup windows to now use the top level RomRaider icon instead of the default Java icon.

This commit is contained in:
Scotthew 2012-09-24 16:37:21 -07:00 committed by Dale Schultz
parent 74a3a49f5f
commit 05b825395e
4 changed files with 126 additions and 121 deletions

View File

@ -22,46 +22,46 @@ package com.romraider.swing;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector; import java.util.Vector;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame; import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
import javax.swing.ListSelectionModel;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
import javax.swing.border.EtchedBorder;
import com.romraider.maps.Rom; import com.romraider.maps.Rom;
import com.romraider.maps.Table; import com.romraider.maps.Table;
import javax.swing.border.EtchedBorder;
import javax.swing.DefaultListModel;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JComboBox;
import javax.swing.JScrollPane;
import javax.swing.ListCellRenderer;
import javax.swing.JButton;
import javax.swing.ListSelectionModel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class CompareImagesForm extends JFrame implements ActionListener { public class CompareImagesForm extends JFrame implements ActionListener {
private static final long serialVersionUID = -8937472127815934398L; private static final long serialVersionUID = -8937472127815934398L;
private Vector<Rom> roms; private final Vector<Rom> roms;
private JPanel contentPane; private final JPanel contentPane;
private JComboBox comboBoxImageLeft; private final JComboBox comboBoxImageLeft;
private JComboBox comboBoxImageRight; private final JComboBox comboBoxImageRight;
private JButton btnCompare; private final JButton btnCompare;
private JList listChanges; private final JList listChanges;
private DefaultListModel listModelChanges = new DefaultListModel(); private final DefaultListModel listModelChanges = new DefaultListModel();
private ChangeListCellRenderer changeRenderer = new ChangeListCellRenderer(); private final ChangeListCellRenderer changeRenderer = new ChangeListCellRenderer();
private JScrollPane scrollPaneResults; private final JScrollPane scrollPaneResults;
private JLabel lblImageResultString; private final JLabel lblImageResultString;
public static Color equal = new Color(52,114,53); public static Color equal = new Color(52,114,53);
public static Color different = new Color(193, 27, 23); public static Color different = new Color(193, 27, 23);
public static Color missing = new Color(251,185,23); public static Color missing = new Color(251,185,23);
public CompareImagesForm(Vector<Rom> roms) { public CompareImagesForm(Vector<Rom> roms, Image parentImage) {
this.setIconImage(parentImage);
setResizable(false); setResizable(false);
this.roms = roms; this.roms = roms;
@ -71,63 +71,63 @@ public class CompareImagesForm extends JFrame implements ActionListener {
this.contentPane = new JPanel(); this.contentPane = new JPanel();
this.contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); this.contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(this.contentPane); setContentPane(this.contentPane);
JLabel lblSelectImages = new JLabel("Selected Images"); JLabel lblSelectImages = new JLabel("Selected Images");
lblSelectImages.setBounds(10, 11, 79, 14); lblSelectImages.setBounds(10, 11, 79, 14);
contentPane.setLayout(null); contentPane.setLayout(null);
JPanel panelImageSelector = new JPanel(); JPanel panelImageSelector = new JPanel();
panelImageSelector.setBounds(10, 36, 574, 94); panelImageSelector.setBounds(10, 36, 574, 94);
panelImageSelector.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null)); panelImageSelector.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
panelImageSelector.setLayout(null); panelImageSelector.setLayout(null);
JLabel lblImageLeft = new JLabel("Image (Left):"); JLabel lblImageLeft = new JLabel("Image (Left):");
lblImageLeft.setBounds(10, 10, 70, 14); lblImageLeft.setBounds(10, 10, 70, 14);
panelImageSelector.add(lblImageLeft); panelImageSelector.add(lblImageLeft);
this.comboBoxImageLeft = new JComboBox(); this.comboBoxImageLeft = new JComboBox();
this.comboBoxImageLeft.setBounds(89, 7, 475, 20); this.comboBoxImageLeft.setBounds(89, 7, 475, 20);
this.comboBoxImageLeft.setToolTipText("Select an image to compare."); this.comboBoxImageLeft.setToolTipText("Select an image to compare.");
this.comboBoxImageLeft.setRenderer( new ComboBoxRenderer() ); this.comboBoxImageLeft.setRenderer( new ComboBoxRenderer() );
panelImageSelector.add(this.comboBoxImageLeft); panelImageSelector.add(this.comboBoxImageLeft);
JLabel lblImageRight = new JLabel("Image (Right):"); JLabel lblImageRight = new JLabel("Image (Right):");
lblImageRight.setBounds(10, 35, 70, 14); lblImageRight.setBounds(10, 35, 70, 14);
panelImageSelector.add(lblImageRight); panelImageSelector.add(lblImageRight);
this.comboBoxImageRight = new JComboBox(); this.comboBoxImageRight = new JComboBox();
this.comboBoxImageRight.setBounds(89, 32, 475, 20); this.comboBoxImageRight.setBounds(89, 32, 475, 20);
this.comboBoxImageRight.setToolTipText("Select an image to compare."); this.comboBoxImageRight.setToolTipText("Select an image to compare.");
this.comboBoxImageRight.setRenderer( new ComboBoxRenderer() ); this.comboBoxImageRight.setRenderer( new ComboBoxRenderer() );
panelImageSelector.add(this.comboBoxImageRight); panelImageSelector.add(this.comboBoxImageRight);
this.btnCompare = new JButton("Compare"); this.btnCompare = new JButton("Compare");
this.btnCompare.addActionListener(this); this.btnCompare.addActionListener(this);
this.btnCompare.setBounds(10, 64, 89, 23); this.btnCompare.setBounds(10, 64, 89, 23);
panelImageSelector.add(this.btnCompare); panelImageSelector.add(this.btnCompare);
this.contentPane.add(panelImageSelector); this.contentPane.add(panelImageSelector);
this.contentPane.add(lblSelectImages); this.contentPane.add(lblSelectImages);
JLabel lblResults = new JLabel("Results:"); JLabel lblResults = new JLabel("Results:");
lblResults.setBounds(10, 141, 46, 14); lblResults.setBounds(10, 141, 46, 14);
contentPane.add(lblResults); contentPane.add(lblResults);
lblImageResultString = new JLabel("Compare images..."); lblImageResultString = new JLabel("Compare images...");
lblImageResultString.setBounds(66, 141, 518, 14); lblImageResultString.setBounds(66, 141, 518, 14);
contentPane.add(lblImageResultString); contentPane.add(lblImageResultString);
scrollPaneResults = new JScrollPane(); scrollPaneResults = new JScrollPane();
scrollPaneResults.setBounds(10, 166, 574, 245); scrollPaneResults.setBounds(10, 166, 574, 245);
contentPane.add(scrollPaneResults); contentPane.add(scrollPaneResults);
this.listChanges = new JList(this.listModelChanges); this.listChanges = new JList(this.listModelChanges);
scrollPaneResults.setViewportView(this.listChanges); scrollPaneResults.setViewportView(this.listChanges);
listChanges.setCellRenderer(changeRenderer); listChanges.setCellRenderer(changeRenderer);
listChanges.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); listChanges.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
populateComboBoxes(); populateComboBoxes();
} }
public void populateComboBoxes() public void populateComboBoxes()
{ {
for(int i=0; i<roms.size(); i++) { for(int i=0; i<roms.size(); i++) {
@ -139,25 +139,25 @@ public class CompareImagesForm extends JFrame implements ActionListener {
comboBoxImageRight.setSelectedIndex(1); comboBoxImageRight.setSelectedIndex(1);
} }
} }
public void compareTables(Rom left, Rom right) public void compareTables(Rom left, Rom right)
{ {
listModelChanges.clear(); listModelChanges.clear();
Vector<Table> leftTables = left.getTables(); Vector<Table> leftTables = left.getTables();
Vector<Table> rightTables = right.getTables(); Vector<Table> rightTables = right.getTables();
int equal = 0; int equal = 0;
int different = 0; int different = 0;
int missing = 0; int missing = 0;
String leftTableName; String leftTableName;
String rightTableName; String rightTableName;
String leftTableAsString; String leftTableAsString;
String rightTableAsString; String rightTableAsString;
Boolean found = false; Boolean found = false;
// Compare the tables. // Compare the tables.
for(int x=0;x<leftTables.size();x++) { for(int x=0;x<leftTables.size();x++) {
found = false; found = false;
leftTableName = leftTables.get(x).getName().trim().toLowerCase(); leftTableName = leftTables.get(x).getName().trim().toLowerCase();
@ -185,7 +185,7 @@ public class CompareImagesForm extends JFrame implements ActionListener {
listModelChanges.addElement(new ListItem(3, leftTables.get(x).getName())); listModelChanges.addElement(new ListItem(3, leftTables.get(x).getName()));
} }
} }
// Check if rightTables has tables that do not exist in left table. // Check if rightTables has tables that do not exist in left table.
for(int x=0;x<rightTables.size();x++) { for(int x=0;x<rightTables.size();x++) {
found = false; found = false;
@ -199,10 +199,10 @@ public class CompareImagesForm extends JFrame implements ActionListener {
} }
if(!found) { if(!found) {
missing++; missing++;
listModelChanges.addElement(new ListItem(3, rightTables.get(x).getName())); listModelChanges.addElement(new ListItem(3, rightTables.get(x).getName()));
} }
} }
// Fill out the result string. // Fill out the result string.
if(equal > 0 && different == 0 && missing == 0) { if(equal > 0 && different == 0 && missing == 0) {
lblImageResultString.setText("Images are equal."); lblImageResultString.setText("Images are equal.");
@ -213,8 +213,8 @@ public class CompareImagesForm extends JFrame implements ActionListener {
} else { } else {
lblImageResultString.setText("Images are NOT equal. Equal Tables: "+equal+", Changed Tables: "+different+", Missing Tables: "+missing); lblImageResultString.setText("Images are NOT equal. Equal Tables: "+equal+", Changed Tables: "+different+", Missing Tables: "+missing);
lblImageResultString.setForeground(CompareImagesForm.missing); lblImageResultString.setForeground(CompareImagesForm.missing);
} }
// Check if the list has items. // Check if the list has items.
if(listModelChanges.size() < 1) if(listModelChanges.size() < 1)
{ {
@ -223,25 +223,25 @@ public class CompareImagesForm extends JFrame implements ActionListener {
lblImageResultString.setForeground(Color.RED); lblImageResultString.setForeground(Color.RED);
return; return;
} }
// Add list items for 0 counts. // Add list items for 0 counts.
if(equal == 0) if(equal == 0)
{ {
listModelChanges.addElement(new ListItem(1, "No Equal Tables.")); listModelChanges.addElement(new ListItem(1, "No Equal Tables."));
} }
if(different == 0) if(different == 0)
{ {
listModelChanges.addElement(new ListItem(2, "No Changed Tables.")); listModelChanges.addElement(new ListItem(2, "No Changed Tables."));
} }
if(missing == 0) if(missing == 0)
{ {
listModelChanges.addElement(new ListItem(3, "No Missing Tables.")); listModelChanges.addElement(new ListItem(3, "No Missing Tables."));
} }
} }
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
@ -258,7 +258,7 @@ public class CompareImagesForm extends JFrame implements ActionListener {
} }
this.setCursor(Cursor.getDefaultCursor()); this.setCursor(Cursor.getDefaultCursor());
} }
class ComboBoxRenderer extends JLabel implements ListCellRenderer class ComboBoxRenderer extends JLabel implements ListCellRenderer
{ {
@ -273,7 +273,7 @@ public class CompareImagesForm extends JFrame implements ActionListener {
@Override @Override
public Component getListCellRendererComponent(JList list, Object value, public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) { int index, boolean isSelected, boolean cellHasFocus) {
if(isSelected) { if(isSelected) {
setBackground(list.getSelectionBackground()); setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground()); setForeground(list.getSelectionForeground());
@ -281,7 +281,7 @@ public class CompareImagesForm extends JFrame implements ActionListener {
setBackground(list.getBackground()); setBackground(list.getBackground());
setForeground(list.getForeground()); setForeground(list.getForeground());
} }
if(value != null) if(value != null)
{ {
// Set the text to the rom file name. // Set the text to the rom file name.
@ -290,20 +290,20 @@ public class CompareImagesForm extends JFrame implements ActionListener {
setFont(list.getFont()); setFont(list.getFont());
} }
return this; return this;
} }
} }
class ChangeListCellRenderer extends JLabel implements ListCellRenderer { class ChangeListCellRenderer extends JLabel implements ListCellRenderer {
private static final long serialVersionUID = -3645192077787635239L; private static final long serialVersionUID = -3645192077787635239L;
public ChangeListCellRenderer() public ChangeListCellRenderer()
{ {
setOpaque(true); setOpaque(true);
setHorizontalAlignment(LEFT); setHorizontalAlignment(LEFT);
setVerticalAlignment(CENTER); setVerticalAlignment(CENTER);
} }
@Override @Override
public Component getListCellRendererComponent(JList paramList, Object value, public Component getListCellRendererComponent(JList paramList, Object value,
int index, boolean isSelected, boolean cellHasFocus) { int index, boolean isSelected, boolean cellHasFocus) {
@ -314,56 +314,56 @@ public class CompareImagesForm extends JFrame implements ActionListener {
} else { } else {
setBackground(paramList.getBackground()); setBackground(paramList.getBackground());
} }
// Set the foreground color based on the item type. // Set the foreground color based on the item type.
ListItem item = (ListItem)value; ListItem item = (ListItem)value;
switch(item.getType()) { switch(item.getType()) {
case 1: case 1:
// equal - default green // equal - default green
setForeground(CompareImagesForm.equal); setForeground(CompareImagesForm.equal);
break; break;
case 2: case 2:
// different - default red // different - default red
setForeground(CompareImagesForm.different); setForeground(CompareImagesForm.different);
break; break;
case 3: case 3:
// missing - default yellow // missing - default yellow
setForeground(CompareImagesForm.missing); setForeground(CompareImagesForm.missing);
break; break;
default: default:
setForeground(paramList.getForeground()); setForeground(paramList.getForeground());
break; break;
} }
setText(item.getValue()); setText(item.getValue());
return this; return this;
} }
} }
class ListItem { class ListItem {
private int type; private int type;
private String value; private String value;
public ListItem(int type, String value) { public ListItem(int type, String value) {
this.type = type; this.type = type;
this.value = value; this.value = value;
} }
public int getType() { public int getType() {
return type; return type;
} }
public void setType(int type) { public void setType(int type) {
this.type = type; this.type = type;
} }
public String getValue() { public String getValue() {
return value; return value;
} }
public void setValue(String value) { public void setValue(String value) {
this.value = value; this.value = value;
} }
} }
} }

View File

@ -19,15 +19,17 @@
package com.romraider.swing; package com.romraider.swing;
import com.romraider.editor.ecu.ECUEditor;
import javax.swing.JFileChooser;
import javax.swing.ListSelectionModel;
import java.awt.Font; import java.awt.Font;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File; import java.io.File;
import java.util.Vector; import java.util.Vector;
import javax.swing.JFileChooser;
import javax.swing.ListSelectionModel;
import com.romraider.editor.ecu.ECUEditor;
public class DefinitionManager extends javax.swing.JFrame implements ActionListener { public class DefinitionManager extends javax.swing.JFrame implements ActionListener {
private static final long serialVersionUID = -3920843496218196737L; private static final long serialVersionUID = -3920843496218196737L;
@ -38,6 +40,7 @@ public class DefinitionManager extends javax.swing.JFrame implements ActionListe
Vector<String> fileNames; Vector<String> fileNames;
public DefinitionManager(ECUEditor parent) { public DefinitionManager(ECUEditor parent) {
this.setIconImage(parent.getIconImage());
initComponents(); initComponents();
this.parent = parent; this.parent = parent;
initSettings(); initSettings();
@ -108,39 +111,39 @@ public class DefinitionManager extends javax.swing.JFrame implements ActionListe
getContentPane().setLayout(layout); getContentPane().setLayout(layout);
layout.setHorizontalGroup( layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup() .add(layout.createSequentialGroup()
.addContainerGap() .addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 448, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
.add(layout.createSequentialGroup()
.add(btnSave)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnApply)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnUndo)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnCancel))
.add(layout.createSequentialGroup()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(defLabel)
.add(layout.createSequentialGroup() .add(layout.createSequentialGroup()
.add(btnMoveDown) .add(btnSave)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnMoveUp))) .add(btnApply)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 80, Short.MAX_VALUE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnAddDefinition))) .add(btnUndo)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnRemoveDefinition))) .add(btnCancel))
.addContainerGap()) .add(layout.createSequentialGroup()
); .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(defLabel)
.add(layout.createSequentialGroup()
.add(btnMoveDown)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnMoveUp)))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 80, Short.MAX_VALUE)
.add(btnAddDefinition)))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(btnRemoveDefinition)))
.addContainerGap())
);
layout.linkSize(new java.awt.Component[]{btnAddDefinition, btnMoveDown, btnMoveUp, btnRemoveDefinition}, org.jdesktop.layout.GroupLayout.HORIZONTAL); layout.linkSize(new java.awt.Component[]{btnAddDefinition, btnMoveDown, btnMoveUp, btnRemoveDefinition}, org.jdesktop.layout.GroupLayout.HORIZONTAL);
layout.setVerticalGroup( layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup() .add(layout.createSequentialGroup()
.addContainerGap() .addContainerGap()
.add(defLabel) .add(defLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
@ -151,17 +154,18 @@ public class DefinitionManager extends javax.swing.JFrame implements ActionListe
.add(btnMoveDown) .add(btnMoveDown)
.add(btnRemoveDefinition, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(btnRemoveDefinition, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 23, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(btnAddDefinition)) .add(btnAddDefinition))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(btnSave) .add(btnSave)
.add(btnApply) .add(btnApply)
.add(btnUndo) .add(btnUndo)
.add(btnCancel)) .add(btnCancel))
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
); );
pack(); pack();
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//GEN-END:initComponents
@Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnCancel) { if (e.getSource() == btnCancel) {
dispose(); dispose();

View File

@ -307,7 +307,7 @@ public class ECUEditorMenuBar extends JMenuBar implements ActionListener {
form.setVisible(true); form.setVisible(true);
} else if (e.getSource() == compareImages){ } else if (e.getSource() == compareImages){
CompareImagesForm form = new CompareImagesForm(parent.getImages()); CompareImagesForm form = new CompareImagesForm(parent.getImages(), parent.getIconImage());
form.setLocationRelativeTo(parent); form.setLocationRelativeTo(parent);
form.setVisible(true); form.setVisible(true);

View File

@ -54,6 +54,7 @@ public class SettingsForm extends JFrame implements MouseListener {
ECUEditor parent; ECUEditor parent;
public SettingsForm(ECUEditor parent) { public SettingsForm(ECUEditor parent) {
this.setIconImage(parent.getIconImage());
this.parent = parent; this.parent = parent;
settings = parent.getSettings(); settings = parent.getSettings();
initComponents(); initComponents();