org.icepdf.ri.common.utility.attachment.FileTableModel Maven / Gradle / Ivy
package org.icepdf.ri.common.utility.attachment;
import org.icepdf.core.pobjects.EmbeddedFileStream;
import org.icepdf.core.pobjects.FileSpecification;
import org.icepdf.core.util.Utils;
import javax.swing.table.AbstractTableModel;
import java.util.HashMap;
import java.util.ResourceBundle;
import java.util.Set;
/**
* Table model for displaying file data using the following columns: name, description, modified, size and
* compressed size.
*
* @since 6.2
*/
@SuppressWarnings("serial")
public class FileTableModel extends AbstractTableModel {
public static final int NAME_COLUMN = 0;
public static final int DESCRIPTION_COLUMN = 1;
public static final int MODIFIED_COLUMN = 2;
public static final int SIZE_COLUMN = 3;
public static final int COMPRESSION_COLUMN = 4;
public static final int DATA_COLUMN = 5;
private String[] columnNames;
private Object[][] data;
public FileTableModel(ResourceBundle messageBundle, HashMap files) {
// build the headers.
columnNames = new String[]{
messageBundle.getString("viewer.utilityPane.attachments.column.fileName.title"),
messageBundle.getString("viewer.utilityPane.attachments.column.description.title"),
messageBundle.getString("viewer.utilityPane.attachments.column.modified.title"),
messageBundle.getString("viewer.utilityPane.attachments.column.size.title"),
messageBundle.getString("viewer.utilityPane.attachments.column.compressedSize.title"),
};
// build the column data.
if (files != null) {
Set keys = files.keySet();
int rows = keys.size();
int columns = 6;
data = new Object[rows][columns];
int i = 0;
for (String key : keys) {
FileSpecification fileSpecification = files.get(key);
EmbeddedFileStream embeddedFileStream = fileSpecification.getEmbeddedFileStream();
data[i][NAME_COLUMN] = fileSpecification.getUnicodeFileSpecification() != null ?
fileSpecification.getUnicodeFileSpecification() : fileSpecification.getFileSpecification() != null ?
fileSpecification.getFileSpecification() : "";
data[i][DESCRIPTION_COLUMN] = fileSpecification.getDescription() != null ?
fileSpecification.getDescription() : "";
data[i][MODIFIED_COLUMN] = embeddedFileStream.getParamLastModifiedData() != null ?
embeddedFileStream.getParamLastModifiedData() : "";
data[i][SIZE_COLUMN] = Utils.byteFormatter(embeddedFileStream.getParamUncompressedSize(), true);
data[i][COMPRESSION_COLUMN] = Utils.byteFormatter(embeddedFileStream.getCompressedSize(), true);
data[i][DATA_COLUMN] = fileSpecification;
i++;
}
}
}
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy