2016-12-09 11:31:03 +00:00
|
|
|
package com.bytezone.diskbrowser.duplicates;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import javax.swing.table.AbstractTableModel;
|
|
|
|
|
|
|
|
public class DiskTableModel extends AbstractTableModel
|
|
|
|
{
|
2016-12-09 12:12:35 +00:00
|
|
|
static final String[] headers = { "Name", "Location", "Checksum" };
|
2016-12-09 11:31:03 +00:00
|
|
|
|
|
|
|
Map<String, DiskDetails> fileNameMap;
|
|
|
|
Map<Long, DiskDetails> checkSumMap;
|
|
|
|
List<TableLine> lines = new ArrayList<DiskTableModel.TableLine> ();
|
|
|
|
|
|
|
|
public DiskTableModel (DuplicateHandler duplicateHandler)
|
|
|
|
{
|
|
|
|
fileNameMap = duplicateHandler.getFileNameMap ();
|
|
|
|
checkSumMap = duplicateHandler.getChecksumMap ();
|
|
|
|
|
|
|
|
for (String key : fileNameMap.keySet ())
|
|
|
|
{
|
|
|
|
DiskDetails original = fileNameMap.get (key);
|
|
|
|
|
2016-12-09 12:12:35 +00:00
|
|
|
// if (false)
|
|
|
|
// {
|
|
|
|
// if (original.getDuplicateChecksums ().size () > 0)
|
|
|
|
// {
|
|
|
|
// lines.add (new TableLine (original));
|
|
|
|
// for (DiskDetails duplicate : original.getDuplicateChecksums ())
|
|
|
|
// lines.add (new TableLine (duplicate));
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// else
|
|
|
|
lines.add (new TableLine (original));
|
2016-12-09 11:31:03 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getColumnName (int column)
|
|
|
|
{
|
|
|
|
return headers[column];
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getRowCount ()
|
|
|
|
{
|
|
|
|
return lines.size ();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getColumnCount ()
|
|
|
|
{
|
|
|
|
return headers.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Class<?> getColumnClass (int columnIndex)
|
|
|
|
{
|
|
|
|
switch (columnIndex)
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
return String.class;
|
|
|
|
case 1:
|
|
|
|
return String.class;
|
|
|
|
case 2:
|
|
|
|
return Long.class;
|
|
|
|
default:
|
|
|
|
return Object.class;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Object getValueAt (int rowIndex, int columnIndex)
|
|
|
|
{
|
|
|
|
TableLine line = lines.get (rowIndex);
|
|
|
|
switch (columnIndex)
|
|
|
|
{
|
|
|
|
case 0:
|
|
|
|
return line.shortName;
|
|
|
|
case 1:
|
|
|
|
return line.diskDetails.getRootName ();
|
|
|
|
case 2:
|
|
|
|
return line.checksum;
|
|
|
|
default:
|
|
|
|
return "???";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class TableLine
|
|
|
|
{
|
|
|
|
String shortName;
|
|
|
|
DiskDetails diskDetails;
|
|
|
|
long checksum;
|
|
|
|
|
|
|
|
public TableLine (DiskDetails diskDetails)
|
|
|
|
{
|
|
|
|
this.shortName = diskDetails.getShortName ();
|
|
|
|
this.diskDetails = diskDetails;
|
|
|
|
this.checksum = diskDetails.getChecksum ();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|