package cz.abclinuxu.datoveschranky; import cz.abclinuxu.datoveschranky.common.entities.DocumentIdent; import cz.abclinuxu.datoveschranky.common.entities.Message; import cz.abclinuxu.datoveschranky.common.entities.MessageEnvelope; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import javax.swing.table.AbstractTableModel; /** * * @author xrosecky */ public class MessageTableModel extends AbstractTableModel { private final List<List<String>> table; public MessageTableModel() { table = Collections.emptyList(); } public MessageTableModel(File file, Message mess) { table = new ArrayList<List<String>>(); MessageEnvelope envelope = mess.getEnvelope(); table.add(pair("Soubor", file.getAbsolutePath())); table.add(pair("Jméno odesílatele", envelope.getSender().getIdentity())); table.add(pair("Adresa odesílatele", envelope.getSender().getAddress())); table.add(pair("Jméno příjemce", envelope.getRecipient().getIdentity())); table.add(pair("Adresa příjemce", envelope.getRecipient().getAddress())); table.add(pair("ID zprávy", envelope.getMessageID())); table.add(pair("Předmět zprávy", envelope.getAnnotation())); table.add(pair("Označení odesílatele", ident(envelope.getSenderIdent()))); table.add(pair("Označení příjemce", ident(envelope.getRecipientIdent()))); if (mess.getTimeStamp() != null) { table.add(pair("Otisk zprávy", mess.getTimeStamp().getHash().toString())); } } static private List<String> pair(String a, String b) { return Arrays.asList(a, b); } static private String ident(DocumentIdent ident) { if (ident != null && ident.getIdent() != null && ident.getRefNumber() != null) { return ident.getIdent() + "/" + ident.getRefNumber(); } else { return ""; } } public int getColumnCount() { return 2; } public int getRowCount() { return table.size(); } @Override public String getColumnName(int col) { switch (col) { case 0: return "atribut"; case 1: return "hodnota"; default: throw new AssertionError("table has only two columns"); } } public Object getValueAt(int row, int col) { return table.get(row).get(col); } }