package org.jsmdr.testparsersui;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.text.DateFormat;
import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SpringLayout;
import javax.swing.table.AbstractTableModel;
import org.jsmdr.base.AttributeType;
import org.jsmdr.base.CDR;
public class ParserTestPanel extends JPanel {
JLabel fileLbl;
JTextField fileFld;
JButton fileBtn;
JLabel parserLbl;
JTextField parserFld;
JButton loadParserBtn;
JList cdrList;
JTable cdrTable;
CDRTableModel tableModel;
DefaultListModel listModel;
public ParserTestPanel() {
fileLbl = new JLabel("File");
fileFld = new JTextField("None");
fileFld.setPreferredSize(new Dimension(150,23));
fileBtn = new JButton("Load File");
parserLbl = new JLabel("Parser");
parserFld = new JTextField("None");
parserFld.setPreferredSize(new Dimension(150,23));
loadParserBtn = new JButton("Load Parser");
JPanel topPanel = new JPanel(new FlowLayout());
JPanel buttonPanel = new JPanel(new SpringLayout());
buttonPanel.add(fileLbl);
buttonPanel.add(fileFld);
buttonPanel.add(fileBtn);
buttonPanel.add(parserLbl);
buttonPanel.add(parserFld);
buttonPanel.add(loadParserBtn);
org.jsmdr.configui.base.SpringUtilities.makeCompactGrid(buttonPanel,
2, 3, //rows, cols
10, 10, //initX, initY
10, 10);
buttonPanel.setBorder(BorderFactory.createTitledBorder("Select Items to test"));
topPanel.add(buttonPanel);
listModel = new DefaultListModel();
cdrList = new JList(listModel);
tableModel = new CDRTableModel();
cdrTable = new JTable(tableModel);
JPanel listPanel = new JPanel(new BorderLayout());
listPanel.setBorder(BorderFactory.createEmptyBorder(10,20,10,20));
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add( cdrList );
listPanel.add(scrollPane, BorderLayout.CENTER);
JPanel tablePanel = new JPanel(new BorderLayout());
JScrollPane sPane = new JScrollPane(cdrTable);
cdrTable.setPreferredScrollableViewportSize(new Dimension(500,50));
tablePanel.add(sPane, BorderLayout.CENTER);
tablePanel.setBorder(BorderFactory.createEmptyBorder(10,20,10,20));
this.setLayout(new BorderLayout());
this.add(topPanel, BorderLayout.NORTH);
this.add(listPanel, BorderLayout.CENTER);
this.add(tablePanel, BorderLayout.SOUTH);
}
public void setCDR(CDR cdr) {
tableModel.setCDR(cdr);
}
class CDRTableModel extends AbstractTableModel {
private static final long serialVersionUID = 8265027226641372846L;
CDR cdr;
String[] attributeNames;
CDRTableModel() {
attributeNames = AttributeType.getNames();
System.out.println("AttributeNames.length="+ attributeNames.length);
}
public void setCDR(CDR aCDR) {
cdr = aCDR;
fireTableDataChanged();
}
public int getColumnCount() { return attributeNames.length; }
public int getRowCount() { return 1;}
public String getColumnName(int col) {
return attributeNames[col];
}
public Object getValueAt(int row, int col) {
String val = "";
if (cdr == null)
return val;
switch(col) {
case 0:
if (cdr.getDateTimeAnswered() == null)
val = "null";
else
val= DateFormat.getDateInstance().format(
cdr.getDateTimeAnswered());
break;
case 1:
if (cdr.getDateTimeAnswered() == null)
val = "null";
else
val = DateFormat.getTimeInstance().format(
cdr.getDateTimeAnswered());
break;
case 2:
if (cdr.getCallType() == null)
val = "null";
else
val = cdr.getCallType().toString();
break;
case 3:
if (cdr.getExtensionID() == null)
val = "null";
else
val = cdr.getExtensionID();
break;
case 4:
if (cdr.getDestinationOrCallID() == null)
val = "null";
else
val = cdr.getDestinationOrCallID();
break;
case 5:
val = Integer.toString(cdr.getDurationAnswered());
break;
}
return val;
}
}
}