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

View File

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

View File

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

View File

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