mirror of
https://github.com/mitb-archive/filebot
synced 2025-03-10 06:20:27 -04:00
Fix ChecksumTable display issues (and force GridColor to light gray because it's just white by default on Mac)
This commit is contained in:
parent
020aa5e10b
commit
434f2e59d9
@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
package net.filebot.ui.sfv;
|
package net.filebot.ui.sfv;
|
||||||
|
|
||||||
|
|
||||||
import static net.filebot.hash.VerificationUtilities.*;
|
import static net.filebot.hash.VerificationUtilities.*;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
@ -14,7 +13,6 @@ import javax.swing.table.TableColumn;
|
|||||||
|
|
||||||
import net.filebot.util.ui.SwingUI.DragDropRowTableUI;
|
import net.filebot.util.ui.SwingUI.DragDropRowTableUI;
|
||||||
|
|
||||||
|
|
||||||
class ChecksumTable extends JTable {
|
class ChecksumTable extends JTable {
|
||||||
|
|
||||||
public ChecksumTable() {
|
public ChecksumTable() {
|
||||||
@ -32,6 +30,7 @@ class ChecksumTable extends JTable {
|
|||||||
|
|
||||||
// force white background (e.g. gtk-laf default table background is gray)
|
// force white background (e.g. gtk-laf default table background is gray)
|
||||||
setBackground(Color.WHITE);
|
setBackground(Color.WHITE);
|
||||||
|
setGridColor(Color.LIGHT_GRAY);
|
||||||
|
|
||||||
// highlight CRC32 patterns in filenames in green and with smaller font-size
|
// highlight CRC32 patterns in filenames in green and with smaller font-size
|
||||||
setDefaultRenderer(String.class, new HighlightPatternCellRenderer(EMBEDDED_CHECKSUM));
|
setDefaultRenderer(String.class, new HighlightPatternCellRenderer(EMBEDDED_CHECKSUM));
|
||||||
@ -39,13 +38,11 @@ class ChecksumTable extends JTable {
|
|||||||
setDefaultRenderer(ChecksumCell.class, new ChecksumCellRenderer());
|
setDefaultRenderer(ChecksumCell.class, new ChecksumCellRenderer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ChecksumTableModel createDefaultDataModel() {
|
protected ChecksumTableModel createDefaultDataModel() {
|
||||||
return new ChecksumTableModel();
|
return new ChecksumTableModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected JTableHeader createDefaultTableHeader() {
|
protected JTableHeader createDefaultTableHeader() {
|
||||||
return new JTableHeader(columnModel) {
|
return new JTableHeader(columnModel) {
|
||||||
@ -66,13 +63,11 @@ class ChecksumTable extends JTable {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ChecksumTableModel getModel() {
|
public ChecksumTableModel getModel() {
|
||||||
return (ChecksumTableModel) super.getModel();
|
return (ChecksumTableModel) super.getModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createDefaultColumnsFromModel() {
|
public void createDefaultColumnsFromModel() {
|
||||||
super.createDefaultColumnsFromModel();
|
super.createDefaultColumnsFromModel();
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
package net.filebot.ui.sfv;
|
package net.filebot.ui.sfv;
|
||||||
|
|
||||||
|
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
@ -12,7 +11,6 @@ import javax.swing.table.DefaultTableCellRenderer;
|
|||||||
|
|
||||||
import net.filebot.ui.sfv.ChecksumRow.State;
|
import net.filebot.ui.sfv.ChecksumRow.State;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DefaultTableCellRenderer with highlighting of text patterns.
|
* DefaultTableCellRenderer with highlighting of text patterns.
|
||||||
*/
|
*/
|
||||||
@ -20,12 +18,10 @@ class HighlightPatternCellRenderer extends DefaultTableCellRenderer {
|
|||||||
|
|
||||||
private final Pattern pattern;
|
private final Pattern pattern;
|
||||||
|
|
||||||
|
|
||||||
public HighlightPatternCellRenderer(Pattern pattern) {
|
public HighlightPatternCellRenderer(Pattern pattern) {
|
||||||
this.pattern = pattern;
|
this.pattern = pattern;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
|
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
|
||||||
super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
|
super.getTableCellRendererComponent(table, value, isSelected, false, row, column);
|
||||||
@ -35,25 +31,19 @@ class HighlightPatternCellRenderer extends DefaultTableCellRenderer {
|
|||||||
|
|
||||||
// highlight patterns by using a smaller font-size and changing the font-color to a dark green
|
// highlight patterns by using a smaller font-size and changing the font-color to a dark green
|
||||||
// do not change the font-color if cell is selected, because that would look ugly (imagine green text on blue background ...)
|
// do not change the font-color if cell is selected, because that would look ugly (imagine green text on blue background ...)
|
||||||
Matcher matcher = pattern.matcher(value.toString());
|
Matcher matcher = pattern.matcher(String.valueOf(value));
|
||||||
|
|
||||||
// use no-break, because we really don't want line-wrapping in our table cells
|
// use no-break, because we really don't want line-wrapping in our table cells
|
||||||
StringBuffer htmlText = new StringBuffer("<html><nobr>");
|
StringBuffer htmlText = new StringBuffer("<html><nobr>");
|
||||||
|
|
||||||
while (matcher.find()) {
|
while (matcher.find()) {
|
||||||
matcher.appendReplacement(htmlText, createReplacement(isSelected ? null : (isError ? "red" : "#009900"), "smaller", isError ? "bold" : null));
|
matcher.appendReplacement(htmlText, createReplacement(isSelected ? null : isError ? "red" : "#009900", "smaller", isError ? "bold" : null));
|
||||||
}
|
}
|
||||||
|
matcher.appendTail(htmlText).append("</nobr></html>");
|
||||||
matcher.appendTail(htmlText);
|
|
||||||
|
|
||||||
htmlText.append("</nobr></html>");
|
|
||||||
|
|
||||||
setText(htmlText.toString());
|
setText(htmlText.toString());
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected String createReplacement(String cssColor, String cssFontSize, String cssFontWeight) {
|
protected String createReplacement(String cssColor, String cssFontSize, String cssFontWeight) {
|
||||||
// build replacement string like
|
// build replacement string like
|
||||||
// e.g. <span style='font-size: smaller; color: #009900;'>$0</span>
|
// e.g. <span style='font-size: smaller; color: #009900;'>$0</span>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user