/*******************************************************************************
* Copyright (c) 2008 Jerome Negre.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl-3.0-standalone.html
*
* Contributors:
* Jerome Negre - initial API and implementation
******************************************************************************/
package org.jnegre.redpill.ui;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;
import org.jnegre.redpill.Headers;
import org.jnegre.redpill.HttpMessage;
public class HeadersViewer extends MessageViewer {
DefaultTableModel model;
@Override
protected void cleanUp() {
while (model.getRowCount() != 0) {
model.removeRow(0);
}
}
@Override
protected void display(HttpMessage message) {
Headers h = message.getHeaders();
for (String name : h.getHeaderNames()) {
model.addRow(new Object[] { name, h.getHeader(name) });
}
}
public Component getComponent() {
model = new DefaultTableModel(new String[] { "Name", "Value" }, 0){
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
JTable table = new JTable(model);
TableColumnModel cModel = table.getColumnModel();
cModel.getColumn(0).setPreferredWidth(100);
cModel.getColumn(1).setPreferredWidth(250);
JScrollPane pane = new JScrollPane(table);
pane.setPreferredSize(new Dimension(350,350));
return pane;
}
public String getTitle() {
return "Headers";
}
}