package org.jivesoftware.spark.otrplug.pref; import java.awt.BorderLayout; import java.util.Vector; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; import org.jivesoftware.spark.otrplug.util.OTRResources; /** * OTRKeyTable displays a key table. You can add keys using the addEntry() * mathod * * @author Bergunde Holger */ public class OTRKeyTable extends JPanel { /** * */ private static final long serialVersionUID = -2922785387942547350L; private JTable _table; private DefaultTableModel _tableModel; public OTRKeyTable() { final String[] header = { OTRResources.getString("otr.table.jid"), OTRResources.getString("otr.table.public.key"), OTRResources.getString("otr.key.verified") }; _tableModel = new MyTableModel(header); _table = new JTable(_tableModel); _table.getTableHeader().setReorderingAllowed(false); this.setLayout(new BorderLayout()); this.add(new JScrollPane(_table), BorderLayout.CENTER); } class MyTableModel extends DefaultTableModel { /** * */ private static final long serialVersionUID = -2930577433474767242L; public MyTableModel(String[] headers) { super(headers, 0); } @Override public boolean isCellEditable(int row, int column) { if (column == 2) return true; else return false; } @Override public Class<?> getColumnClass(int columnIndex) { if (columnIndex == 2) { return Boolean.class; } else return String.class; } } public void addTableChangeListener(TableModelListener listener) { _tableModel.addTableModelListener(listener); } /** * Adds a key to the table * * @param jid * @param hash * @param verified */ public void addEntry(String jid, String hash, boolean verified) { Vector<Object> data = new Vector<Object>(3); data.add(jid); data.add(hash); data.add(verified); _tableModel.addRow(data); } /** * Returns a specified row * * @param row * @param col */ public Object getValueAt(int row, int col) { return _tableModel.getValueAt(row, col); } }