2007-12-23 14:28:04 -05:00
|
|
|
|
2014-04-19 02:30:29 -04:00
|
|
|
package net.filebot.ui.sfv;
|
2007-12-23 14:28:04 -05:00
|
|
|
|
|
|
|
|
2014-04-19 02:30:29 -04:00
|
|
|
import static net.filebot.hash.VerificationUtilities.*;
|
2009-02-15 12:58:32 -05:00
|
|
|
|
2009-02-16 12:03:38 -05:00
|
|
|
import java.awt.Color;
|
2009-08-10 12:20:18 -04:00
|
|
|
import java.awt.event.MouseEvent;
|
2009-02-16 12:03:38 -05:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
import javax.swing.JTable;
|
|
|
|
import javax.swing.ListSelectionModel;
|
2009-08-10 12:20:18 -04:00
|
|
|
import javax.swing.table.JTableHeader;
|
2007-12-23 14:28:04 -05:00
|
|
|
import javax.swing.table.TableColumn;
|
|
|
|
|
2014-07-29 02:45:15 -04:00
|
|
|
import net.filebot.util.ui.SwingUI.DragDropRowTableUI;
|
2009-02-15 12:58:32 -05:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
|
2009-02-15 07:20:43 -05:00
|
|
|
class ChecksumTable extends JTable {
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2009-02-15 07:20:43 -05:00
|
|
|
public ChecksumTable() {
|
2008-06-02 15:12:28 -04:00
|
|
|
setFillsViewportHeight(true);
|
2007-12-23 14:28:04 -05:00
|
|
|
setAutoCreateRowSorter(true);
|
|
|
|
setAutoCreateColumnsFromModel(true);
|
|
|
|
setAutoResizeMode(AUTO_RESIZE_SUBSEQUENT_COLUMNS);
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
setRowHeight(20);
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2009-02-15 07:20:43 -05:00
|
|
|
setDragEnabled(true);
|
2008-09-14 09:19:21 -04:00
|
|
|
setUI(new DragDropRowTableUI());
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2009-02-16 12:03:38 -05:00
|
|
|
// force white background (e.g. gtk-laf default table background is gray)
|
|
|
|
setBackground(Color.WHITE);
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2008-10-14 13:33:38 -04:00
|
|
|
// highlight CRC32 patterns in filenames in green and with smaller font-size
|
2009-08-10 07:46:24 -04:00
|
|
|
setDefaultRenderer(String.class, new HighlightPatternCellRenderer(EMBEDDED_CHECKSUM));
|
2009-02-15 07:20:43 -05:00
|
|
|
setDefaultRenderer(ChecksumRow.State.class, new StateIconCellRenderer());
|
|
|
|
setDefaultRenderer(ChecksumCell.class, new ChecksumCellRenderer());
|
2007-12-23 14:28:04 -05:00
|
|
|
}
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
|
|
|
|
@Override
|
2009-08-10 12:20:18 -04:00
|
|
|
protected ChecksumTableModel createDefaultDataModel() {
|
2008-03-23 18:41:25 -04:00
|
|
|
return new ChecksumTableModel();
|
2007-12-23 14:28:04 -05:00
|
|
|
}
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
|
2009-08-10 12:20:18 -04:00
|
|
|
@Override
|
|
|
|
protected JTableHeader createDefaultTableHeader() {
|
|
|
|
return new JTableHeader(columnModel) {
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2009-08-10 12:20:18 -04:00
|
|
|
@Override
|
|
|
|
public String getToolTipText(MouseEvent evt) {
|
|
|
|
try {
|
|
|
|
int columnIndex = columnModel.getColumnIndexAtX(evt.getX());
|
|
|
|
int modelIndex = columnModel.getColumn(columnIndex).getModelIndex();
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2009-08-10 12:20:18 -04:00
|
|
|
// display column root of checksum column
|
|
|
|
return getModel().getColumnRoot(modelIndex).getPath();
|
|
|
|
} catch (Exception e) {
|
|
|
|
// ignore, column is not a checksum column
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2009-08-10 12:20:18 -04:00
|
|
|
|
2008-07-30 18:37:01 -04:00
|
|
|
@Override
|
|
|
|
public ChecksumTableModel getModel() {
|
|
|
|
return (ChecksumTableModel) super.getModel();
|
|
|
|
}
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2008-07-30 18:37:01 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
@Override
|
|
|
|
public void createDefaultColumnsFromModel() {
|
|
|
|
super.createDefaultColumnsFromModel();
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
for (int i = 0; i < getColumnCount(); i++) {
|
|
|
|
TableColumn column = getColumnModel().getColumn(i);
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
if (i == 0) {
|
|
|
|
column.setPreferredWidth(45);
|
|
|
|
} else if (i == 1) {
|
|
|
|
column.setPreferredWidth(400);
|
|
|
|
} else if (i >= 2) {
|
|
|
|
column.setPreferredWidth(150);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-07-25 18:47:19 -04:00
|
|
|
|
2007-12-23 14:28:04 -05:00
|
|
|
}
|