diff --git a/src/main/java/com/romraider/maps/DataCell.java b/src/main/java/com/romraider/maps/DataCell.java index 18e8a3a1..2afb53ab 100644 --- a/src/main/java/com/romraider/maps/DataCell.java +++ b/src/main/java/com/romraider/maps/DataCell.java @@ -50,13 +50,8 @@ public class DataCell extends JLabel implements MouseListener, Serializable { private Table table; private final Color scaleTextColor = new Color(0, 0, 0); - - private final Color highlightColor = getSettings().getHighlightColor(); private final Color highlightTextColor = new Color(255, 255, 255); - - private final Color selectColor = getSettings().getSelectColor(); private final Color selectTextColor = new Color(0, 0, 0); - private final Color liveDataTraceTextColor = new Color(229, 20, 0); private Boolean selected = false; @@ -157,7 +152,7 @@ public class DataCell extends JLabel implements MouseListener, Serializable { public Color getCompareColor() { if(table instanceof Table1D) { Table1D checkTable = (Table1D)table; - if(checkTable.isAxis()) { + if(checkTable.isAxis() && !getSettings().isColorAxis()) { return getSettings().getAxisColor(); } } @@ -176,7 +171,7 @@ public class DataCell extends JLabel implements MouseListener, Serializable { public Color getBinColor() { if(table instanceof Table1D) { Table1D checkTable = (Table1D)table; - if(checkTable.isAxis()) { + if(checkTable.isAxis() && !getSettings().isColorAxis()) { return getSettings().getAxisColor(); } } @@ -220,16 +215,17 @@ public class DataCell extends JLabel implements MouseListener, Serializable { } private Color getCellBackgroundColor() { + Settings settings = getSettings(); if(isStaticValue) { - return getSettings().getAxisColor(); + return settings.getAxisColor(); } Color backgroundColor; if(highlighted) { - backgroundColor = highlightColor; + backgroundColor = settings.getHighlightColor(); } else if(selected) { - backgroundColor = selectColor; - } else if(!table.comparing) { + backgroundColor = settings.getSelectColor(); + } else if(!table.isComparing()) { backgroundColor = getBinColor(); }else { backgroundColor = getCompareColor(); @@ -261,7 +257,7 @@ public class DataCell extends JLabel implements MouseListener, Serializable { } Border border; - if(table.comparing) { + if(table.isComparing()) { if (compareToValue < binValue) { border = createLineBorder(increaseBorderColor, 2); } else if (compareToValue > binValue) { @@ -290,7 +286,7 @@ public class DataCell extends JLabel implements MouseListener, Serializable { DecimalFormat formatter = new DecimalFormat(scale.getFormat()); String displayString = ""; - if (!table.comparing) { + if (!table.isComparing()) { if(table.getDisplayValueType() == Settings.DATA_TYPE_REAL) { displayString = formatter.format(getRealValue()); } else { @@ -327,36 +323,12 @@ public class DataCell extends JLabel implements MouseListener, Serializable { return staticText; } + // Always display the bin or real value as the tooltip. String displayToolTipString = ""; - - if (!table.comparing) { - if(table.getDisplayValueType() == Settings.DATA_TYPE_REAL) { - displayToolTipString = Double.toString(getRealValue()); - } else { - displayToolTipString = Double.toString(getBinValue()); - } - - } else if (table.getCompareDisplay() == Settings.COMPARE_DISPLAY_ABSOLUTE) { - if(table.getDisplayValueType() == Settings.DATA_TYPE_REAL) { - displayToolTipString = Double.toString(getRealCompareValue()); - } else { - displayToolTipString = Double.toString(getCompareValue()); - } - - } else if (table.getCompareDisplay() == Settings.COMPARE_DISPLAY_PERCENT) { - if (getCompareValue() == 0.0) { - displayToolTipString = PERCENT_FORMAT.format(0.0); - } else { - if(table.getDisplayValueType() == Settings.DATA_TYPE_REAL) { - displayToolTipString = Double.toString(getRealCompareValue()); - } else { - displayToolTipString = Double.toString(getCompareValue()); - } - } - } - - if(traced) { - displayToolTipString = displayToolTipString + (isNullOrEmpty(liveValue) ? "" : (':' + liveValue)); + if(table.getDisplayValueType() == Settings.DATA_TYPE_REAL) { + displayToolTipString = Double.toString(getRealValue()); + } else { + displayToolTipString = Double.toString(getBinValue()); } return displayToolTipString; } diff --git a/src/main/java/com/romraider/maps/Table.java b/src/main/java/com/romraider/maps/Table.java index 8e3037af..e930b825 100644 --- a/src/main/java/com/romraider/maps/Table.java +++ b/src/main/java/com/romraider/maps/Table.java @@ -109,7 +109,7 @@ public abstract class Table extends JPanel implements Serializable { protected double maxBin = 0.0; protected double minBin = 0.0; - public boolean comparing = false; + private boolean comparing = false; protected int compareDisplay = Settings.COMPARE_DISPLAY_ABSOLUTE; protected int compareValueType = Settings.DATA_TYPE_BIN; @@ -1220,7 +1220,7 @@ public abstract class Table extends JPanel implements Serializable { if(null == getComparedToTables() || getComparedToTables().size() < 1) { return; } - + Window ancestorWindow = SwingUtilities.getWindowAncestor(this); if(null != ancestorWindow) { @@ -1232,6 +1232,14 @@ public abstract class Table extends JPanel implements Serializable { refreshTableCompareWorker = new RefreshTableCompareWorker(this); refreshTableCompareWorker.execute(); } + + public boolean isComparing() { + return this.comparing; + } + + public void setComparing(boolean comparing) { + this.comparing = comparing; + } } class CopySelectionWorker extends SwingWorker { diff --git a/src/main/java/com/romraider/maps/Table2D.java b/src/main/java/com/romraider/maps/Table2D.java index ee75ceaf..ff45f587 100644 --- a/src/main/java/com/romraider/maps/Table2D.java +++ b/src/main/java/com/romraider/maps/Table2D.java @@ -74,6 +74,12 @@ public class Table2D extends Table { axis.refreshDataBounds(); } + @Override + public void refreshCompares() { + super.refreshCompares(); + axis.refreshCompares(); + } + @Override public void populateCompareValues(Table otherTable) { loaded = false; @@ -381,16 +387,42 @@ public class Table2D extends Table { axis.setCompareDisplay(compareDisplay); } + @Override + public void setCompareValueType(int compareValueType) { + super.setCompareValueType(compareValueType); + axis.setCompareValueType(compareValueType); + } + + @Override + public void setDisplayValueType(int displayValueType) { + super.setDisplayValueType(displayValueType); + axis.setDisplayValueType(displayValueType); + } + @Override public void addComparedToTable(Table table) { - super.addComparedToTable(table); if(!(table instanceof Table2D)) { return; } + Table2D table2D = (Table2D) table; + + super.addComparedToTable(table2D); axis.addComparedToTable(table2D.axis); } + @Override + public void removeComparedToTable(Table table) { + if(!(table instanceof Table2D)) { + return; + } + + Table2D table2D = (Table2D) table; + + super.removeComparedToTable(table2D); + axis.removeComparedToTable(table2D.axis); + } + @Override public boolean equals(Object other) { try { @@ -447,6 +479,12 @@ public class Table2D extends Table { axis.repaint(); } } + + @Override + public void setComparing(boolean comparing) { + super.setComparing(comparing); + axis.setComparing(comparing); + } } class CopySelection2DWorker extends SwingWorker { diff --git a/src/main/java/com/romraider/maps/Table3D.java b/src/main/java/com/romraider/maps/Table3D.java index f4a41023..22281eb3 100644 --- a/src/main/java/com/romraider/maps/Table3D.java +++ b/src/main/java/com/romraider/maps/Table3D.java @@ -818,6 +818,20 @@ public class Table3D extends Table { yAxis.setCompareDisplay(compareDisplay); } + @Override + public void setCompareValueType(int compareValueType) { + super.setCompareValueType(compareValueType); + xAxis.setCompareValueType(compareValueType); + yAxis.setCompareValueType(compareValueType); + } + + @Override + public void setDisplayValueType(int displayValueType) { + super.setDisplayValueType(displayValueType); + xAxis.setDisplayValueType(displayValueType); + yAxis.setDisplayValueType(displayValueType); + } + @Override public void addComparedToTable(Table table) { if(!(table instanceof Table3D)) { @@ -831,6 +845,26 @@ public class Table3D extends Table { yAxis.addComparedToTable(table3D.yAxis); } + @Override + public void removeComparedToTable(Table table) { + if(!(table instanceof Table3D)) { + return; + } + + Table3D table3D = (Table3D) table; + + super.removeComparedToTable(table3D); + xAxis.removeComparedToTable(table3D.xAxis); + yAxis.removeComparedToTable(table3D.yAxis); + } + + @Override + public void refreshCompares() { + super.refreshCompares(); + xAxis.refreshCompares(); + yAxis.refreshCompares(); + } + @Override public boolean equals(Object other) { try { @@ -898,6 +932,13 @@ public class Table3D extends Table { yAxis.repaint(); } } + + @Override + public void setComparing(boolean comparing) { + super.setComparing(comparing); + xAxis.setComparing(comparing); + yAxis.setComparing(comparing); + } } class CopySelection3DWorker extends SwingWorker { diff --git a/src/main/java/com/romraider/swing/SettingsForm.java b/src/main/java/com/romraider/swing/SettingsForm.java index 8b9db01f..524614ad 100644 --- a/src/main/java/com/romraider/swing/SettingsForm.java +++ b/src/main/java/com/romraider/swing/SettingsForm.java @@ -65,6 +65,7 @@ public class SettingsForm extends JFrame implements MouseListener { maxColor.addMouseListener(this); minColor.addMouseListener(this); highlightColor.addMouseListener(this); + selectColor.addMouseListener(this); axisColor.addMouseListener(this); increaseColor.addMouseListener(this); decreaseColor.addMouseListener(this); @@ -103,6 +104,7 @@ public class SettingsForm extends JFrame implements MouseListener { maxColor.setBackground(settings.getMaxColor()); minColor.setBackground(settings.getMinColor()); highlightColor.setBackground(settings.getHighlightColor()); + selectColor.setBackground(settings.getSelectColor()); axisColor.setBackground(settings.getAxisColor()); increaseColor.setBackground(settings.getIncreaseBorder()); decreaseColor.setBackground(settings.getDecreaseBorder()); @@ -127,6 +129,7 @@ public class SettingsForm extends JFrame implements MouseListener { valueLimitWarning.setSelected(settings.isValueLimitWarning()); warningColor.setBackground(settings.getWarningColor()); + chckbxColorAxis.setSelected(settings.isColorAxis()); if(settings.getTableClipboardFormat().equalsIgnoreCase(Settings.AIRBOYS_CLIPBOARD_FORMAT)) { this.rdbtnAirboys.setSelected(true); @@ -161,11 +164,13 @@ public class SettingsForm extends JFrame implements MouseListener { jPanel2 = new javax.swing.JPanel(); lblAxis = new javax.swing.JLabel(); lblHighlight = new javax.swing.JLabel(); + lblSelect = new javax.swing.JLabel(); lblMin = new javax.swing.JLabel(); lblMax = new javax.swing.JLabel(); maxColor = new javax.swing.JLabel(); minColor = new javax.swing.JLabel(); highlightColor = new javax.swing.JLabel(); + selectColor = new javax.swing.JLabel(); axisColor = new javax.swing.JLabel(); warningColor = new javax.swing.JLabel(); lblWarning = new javax.swing.JLabel(); @@ -183,6 +188,7 @@ public class SettingsForm extends JFrame implements MouseListener { saveDebugTables = new javax.swing.JCheckBox(); displayHighTables = new javax.swing.JCheckBox(); valueLimitWarning = new javax.swing.JCheckBox(); + chckbxColorAxis = new javax.swing.JCheckBox(); jPanel4 = new javax.swing.JPanel(); extensionHex = new javax.swing.JCheckBox(); extensionBin = new javax.swing.JCheckBox(); @@ -234,6 +240,7 @@ public class SettingsForm extends JFrame implements MouseListener { lblAxis.setText("Axis Cell:"); lblHighlight.setText("Highlighted Cell:"); + lblSelect.setText("Selected Cell:"); lblMin.setText("Minimum Value:"); @@ -251,6 +258,10 @@ public class SettingsForm extends JFrame implements MouseListener { highlightColor.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); highlightColor.setOpaque(true); + selectColor.setBackground(new java.awt.Color(255, 0, 0)); + selectColor.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); + selectColor.setOpaque(true); + axisColor.setBackground(new java.awt.Color(255, 0, 0)); axisColor.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); axisColor.setOpaque(true); @@ -261,54 +272,65 @@ public class SettingsForm extends JFrame implements MouseListener { lblWarning.setText("Warning:"); - org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2); - jPanel2.setLayout(jPanel2Layout); + GroupLayout jPanel2Layout = new GroupLayout(jPanel2); jPanel2Layout.setHorizontalGroup( - jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2Layout.createSequentialGroup() - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) - .add(lblWarning) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(4, 4, 4) - .add(lblMin)) - .add(lblMax))) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(maxColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 50, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 22, Short.MAX_VALUE) - .add(lblHighlight) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(highlightColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 50, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(jPanel2Layout.createSequentialGroup() - .add(minColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 50, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 55, Short.MAX_VALUE) - .add(lblAxis) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(axisColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 50, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .add(warningColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 50, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)) - .addContainerGap()) + jPanel2Layout.createParallelGroup(Alignment.TRAILING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addGroup(jPanel2Layout.createParallelGroup(Alignment.TRAILING) + .addComponent(lblWarning) + .addGroup(jPanel2Layout.createParallelGroup(Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addGap(4) + .addComponent(lblMin)) + .addComponent(lblMax))) + .addPreferredGap(ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(Alignment.TRAILING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addComponent(maxColor, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(ComponentPlacement.RELATED, 139, Short.MAX_VALUE) + .addComponent(lblHighlight) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(highlightColor, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE)) + .addGroup(jPanel2Layout.createSequentialGroup() + .addGroup(jPanel2Layout.createParallelGroup(Alignment.LEADING) + .addGroup(Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addComponent(minColor, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(ComponentPlacement.RELATED, 172, Short.MAX_VALUE) + .addComponent(lblAxis)) + .addGroup(jPanel2Layout.createSequentialGroup() + .addComponent(warningColor, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(ComponentPlacement.RELATED, 151, Short.MAX_VALUE) + .addComponent(lblSelect))) + .addPreferredGap(ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(Alignment.LEADING) + .addComponent(selectColor, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(axisColor, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE)))) + .addContainerGap()) ); jPanel2Layout.setVerticalGroup( - jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) - .add(jPanel2Layout.createSequentialGroup() - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(lblMax) - .add(maxColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(highlightColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(lblHighlight)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(lblMin) - .add(minColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(axisColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(lblAxis)) - .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) - .add(jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) - .add(warningColor, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 15, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) - .add(lblWarning))) + jPanel2Layout.createParallelGroup(Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addGroup(jPanel2Layout.createParallelGroup(Alignment.BASELINE) + .addComponent(lblMax) + .addComponent(maxColor, GroupLayout.PREFERRED_SIZE, 15, GroupLayout.PREFERRED_SIZE) + .addComponent(highlightColor, GroupLayout.PREFERRED_SIZE, 15, GroupLayout.PREFERRED_SIZE) + .addComponent(lblHighlight)) + .addPreferredGap(ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(Alignment.BASELINE) + .addComponent(lblMin) + .addComponent(minColor, GroupLayout.PREFERRED_SIZE, 15, GroupLayout.PREFERRED_SIZE) + .addComponent(axisColor, GroupLayout.PREFERRED_SIZE, 15, GroupLayout.PREFERRED_SIZE) + .addComponent(lblAxis)) + .addPreferredGap(ComponentPlacement.RELATED) + .addGroup(jPanel2Layout.createParallelGroup(Alignment.LEADING) + .addGroup(jPanel2Layout.createParallelGroup(Alignment.BASELINE) + .addComponent(warningColor, GroupLayout.PREFERRED_SIZE, 15, GroupLayout.PREFERRED_SIZE) + .addComponent(lblWarning)) + .addComponent(selectColor, GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE) + .addComponent(lblSelect)) + .addContainerGap()) ); + jPanel2.setLayout(jPanel2Layout); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Cell Borders")); lblIncrease.setText("Increased:"); @@ -367,6 +389,10 @@ public class SettingsForm extends JFrame implements MouseListener { valueLimitWarning.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); valueLimitWarning.setMargin(new java.awt.Insets(0, 0, 0, 0)); + chckbxColorAxis.setText("Color Axis"); + chckbxColorAxis.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); + chckbxColorAxis.setMargin(new java.awt.Insets(0, 0, 0, 0)); + jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("File Associations")); extensionHex.setText("HEX"); extensionHex.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); @@ -380,8 +406,6 @@ public class SettingsForm extends JFrame implements MouseListener { btnRemoveAssocs.setText("Remove Associations"); - - org.jdesktop.layout.GroupLayout jPanel4Layout = new org.jdesktop.layout.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( @@ -553,35 +577,45 @@ public class SettingsForm extends JFrame implements MouseListener { // Init Table Display Tab GroupLayout jPanelTableDisplayLayout = new GroupLayout(jPanelTableDisplay); jPanelTableDisplayLayout.setHorizontalGroup( - jPanelTableDisplayLayout.createParallelGroup(Alignment.TRAILING) + jPanelTableDisplayLayout.createParallelGroup(Alignment.LEADING) .addGroup(jPanelTableDisplayLayout.createSequentialGroup() .addContainerGap() - .addGroup(jPanelTableDisplayLayout.createParallelGroup(Alignment.TRAILING) + .addGroup(jPanelTableDisplayLayout.createParallelGroup(Alignment.LEADING) + .addComponent(lblCellHeight) + .addComponent(lblFont)) + .addPreferredGap(ComponentPlacement.RELATED) .addGroup(jPanelTableDisplayLayout.createParallelGroup(Alignment.LEADING) - .addComponent(saveDebugTables) - .addComponent(displayHighTables) - .addComponent(valueLimitWarning)) + .addComponent(btnChooseFont) .addGroup(jPanelTableDisplayLayout.createSequentialGroup() - .addGroup(jPanelTableDisplayLayout.createParallelGroup(Alignment.LEADING) - .addComponent(lblCellHeight) - .addComponent(lblFont)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(jPanelTableDisplayLayout.createParallelGroup(Alignment.LEADING) - .addComponent(btnChooseFont) + .addComponent(cellHeight, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE) + .addPreferredGap(ComponentPlacement.RELATED, 155, Short.MAX_VALUE) + .addComponent(lblCellWidth) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(cellWidth, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE))) + .addGap(47)) + .addGroup(jPanelTableDisplayLayout.createSequentialGroup() + .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE) + .addContainerGap()) + .addGroup(jPanelTableDisplayLayout.createSequentialGroup() + .addComponent(jPanel3, GroupLayout.DEFAULT_SIZE, 417, Short.MAX_VALUE) + .addContainerGap()) + .addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanelTableDisplayLayout.createSequentialGroup() - .addComponent(cellHeight, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED, 139, Short.MAX_VALUE) - .addComponent(lblCellWidth) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(cellWidth, GroupLayout.PREFERRED_SIZE, 50, GroupLayout.PREFERRED_SIZE))))) - .addGap(47)) - .addGroup(Alignment.LEADING, jPanelTableDisplayLayout.createSequentialGroup() - .addComponent(jPanel4, GroupLayout.DEFAULT_SIZE, 411, Short.MAX_VALUE) - .addContainerGap()) - .addGroup(Alignment.LEADING, jPanelTableDisplayLayout.createSequentialGroup() - .addComponent(jPanel3, GroupLayout.DEFAULT_SIZE, 411, Short.MAX_VALUE) - .addContainerGap()) - .addComponent(jPanel2, GroupLayout.DEFAULT_SIZE, 411, Short.MAX_VALUE) + .addContainerGap() + .addComponent(saveDebugTables) + .addContainerGap(184, Short.MAX_VALUE)) + .addGroup(jPanelTableDisplayLayout.createSequentialGroup() + .addContainerGap() + .addComponent(displayHighTables) + .addContainerGap(214, Short.MAX_VALUE)) + .addGroup(jPanelTableDisplayLayout.createSequentialGroup() + .addContainerGap() + .addComponent(valueLimitWarning) + .addContainerGap(246, Short.MAX_VALUE)) + .addGroup(jPanelTableDisplayLayout.createSequentialGroup() + .addContainerGap() + .addComponent(chckbxColorAxis) + .addContainerGap(324, Short.MAX_VALUE)) ); jPanelTableDisplayLayout.setVerticalGroup( jPanelTableDisplayLayout.createParallelGroup(Alignment.LEADING) @@ -598,7 +632,9 @@ public class SettingsForm extends JFrame implements MouseListener { .addComponent(displayHighTables) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(valueLimitWarning) - .addGap(27) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(chckbxColorAxis) + .addPreferredGap(ComponentPlacement.RELATED) .addGroup(jPanelTableDisplayLayout.createParallelGroup(Alignment.BASELINE) .addComponent(lblCellWidth) .addComponent(cellWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) @@ -751,6 +787,12 @@ public class SettingsForm extends JFrame implements MouseListener { if (color != null) { highlightColor.setBackground(color); } + } else if (e.getSource() == selectColor) { + Color color = JColorChooser.showDialog(this.getContentPane(), + "Background Color", settings.getSelectColor()); + if (color != null) { + selectColor.setBackground(color); + } } else if (e.getSource() == axisColor) { Color color = JColorChooser.showDialog(this.getContentPane(), "Background Color", settings.getAxisColor()); @@ -847,6 +889,7 @@ public class SettingsForm extends JFrame implements MouseListener { getSettings().setMaxColor(maxColor.getBackground()); getSettings().setMinColor(minColor.getBackground()); getSettings().setHighlightColor(highlightColor.getBackground()); + getSettings().setSelectColor(selectColor.getBackground()); getSettings().setAxisColor(axisColor.getBackground()); getSettings().setIncreaseBorder(increaseColor.getBackground()); getSettings().setDecreaseBorder(decreaseColor.getBackground()); @@ -870,6 +913,7 @@ public class SettingsForm extends JFrame implements MouseListener { getSettings().setValueLimitWarning(valueLimitWarning.isSelected()); getSettings().setWarningColor(warningColor.getBackground()); + getSettings().setColorAxis(chckbxColorAxis.isSelected()); if(rdbtnAirboys.isSelected()) { @@ -956,6 +1000,7 @@ public class SettingsForm extends JFrame implements MouseListener { private javax.swing.JCheckBox extensionBin; private javax.swing.JCheckBox extensionHex; private javax.swing.JLabel highlightColor; + private javax.swing.JLabel selectColor; private javax.swing.JLabel increaseColor; private javax.swing.JLabel labelTableClick; private javax.swing.JLabel lblClickBehavior; @@ -973,6 +1018,7 @@ public class SettingsForm extends JFrame implements MouseListener { private javax.swing.JLabel lblDecrease; private javax.swing.JLabel lblFont; private javax.swing.JLabel lblHighlight; + private javax.swing.JLabel lblSelect; private javax.swing.JLabel lblIncrease; private javax.swing.JLabel lblMax; private javax.swing.JLabel lblMin; @@ -984,6 +1030,7 @@ public class SettingsForm extends JFrame implements MouseListener { private javax.swing.JCheckBox saveDebugTables; private javax.swing.JComboBox tableClickCount; private javax.swing.JCheckBox valueLimitWarning; + private javax.swing.JCheckBox chckbxColorAxis; private javax.swing.JLabel warningColor; private ButtonGroup clipboardButtonGroup; private javax.swing.JRadioButton rdbtnDefault; diff --git a/src/main/java/com/romraider/swing/TableFrame.java b/src/main/java/com/romraider/swing/TableFrame.java index f89f2d51..39c765bb 100644 --- a/src/main/java/com/romraider/swing/TableFrame.java +++ b/src/main/java/com/romraider/swing/TableFrame.java @@ -140,7 +140,7 @@ public class TableFrame extends JInternalFrame implements InternalFrameListener, getTable().paste(); } else if (e.getSource() == menu.getCompareOff()) { - getTable().comparing = false; + getTable().setComparing(false); getTable().setCompareValueType(Settings.DATA_TYPE_BIN); getTableMenuBar().getCompareToBin().setSelected(true); getTable().removeFromCompareTo(); @@ -189,7 +189,7 @@ public class TableFrame extends JInternalFrame implements InternalFrameListener, } private void compareByTable(Table selectedTable) { - getTable().comparing = true; + getTable().setComparing(true); if(null == selectedTable) { return; } diff --git a/src/main/java/com/romraider/xml/DOMSettingsBuilder.java b/src/main/java/com/romraider/xml/DOMSettingsBuilder.java index 4df22bec..6a63b97e 100644 --- a/src/main/java/com/romraider/xml/DOMSettingsBuilder.java +++ b/src/main/java/com/romraider/xml/DOMSettingsBuilder.java @@ -178,6 +178,11 @@ public final class DOMSettingsBuilder { valueLimitWarning.setAttribute("value", String.valueOf(settings.isValueLimitWarning())); options.appendChild(valueLimitWarning); + // color axis + IIOMetadataNode colorAxis = new IIOMetadataNode("coloraxis"); + colorAxis.setAttribute("value", String.valueOf(settings.isColorAxis())); + options.appendChild(colorAxis); + // show table toolbar border IIOMetadataNode showTableToolbarBorder = new IIOMetadataNode("showtabletoolbarborder"); showTableToolbarBorder.setAttribute("value", String.valueOf(settings.isShowTableToolbarBorder())); @@ -232,6 +237,12 @@ public final class DOMSettingsBuilder { highlight.setAttribute("g", String.valueOf(settings.getHighlightColor().getGreen())); highlight.setAttribute("b", String.valueOf(settings.getHighlightColor().getBlue())); colors.appendChild(highlight); + // select + IIOMetadataNode select = new IIOMetadataNode("select"); + select.setAttribute("r", String.valueOf(settings.getSelectColor().getRed())); + select.setAttribute("g", String.valueOf(settings.getSelectColor().getGreen())); + select.setAttribute("b", String.valueOf(settings.getSelectColor().getBlue())); + colors.appendChild(select); // increased cell border IIOMetadataNode increaseBorder = new IIOMetadataNode("increaseborder"); increaseBorder.setAttribute("r", String.valueOf(settings.getIncreaseBorder().getRed())); diff --git a/src/main/java/com/romraider/xml/DOMSettingsUnmarshaller.java b/src/main/java/com/romraider/xml/DOMSettingsUnmarshaller.java index 51a46ec4..c10d6735 100644 --- a/src/main/java/com/romraider/xml/DOMSettingsUnmarshaller.java +++ b/src/main/java/com/romraider/xml/DOMSettingsUnmarshaller.java @@ -157,6 +157,9 @@ public final class DOMSettingsUnmarshaller { } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("valuelimitwarning")) { settings.setValueLimitWarning(Boolean.parseBoolean(unmarshallAttribute(n, "value", "true"))); + } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("coloraxis")) { + settings.setColorAxis(Boolean.parseBoolean(unmarshallAttribute(n, "value", "false"))); + } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("showtabletoolbarborder")) { settings.setShowTableToolbarBorder(Boolean.parseBoolean(unmarshallAttribute(n, "value", "false"))); @@ -211,6 +214,9 @@ public final class DOMSettingsUnmarshaller { } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("highlight")) { settings.setHighlightColor(unmarshallColor(n)); + } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("select")) { + settings.setSelectColor(unmarshallColor(n)); + } else if (n.getNodeType() == ELEMENT_NODE && n.getNodeName().equalsIgnoreCase("increaseborder")) { settings.setIncreaseBorder(unmarshallColor(n));