View Javadoc
1   package net.logAnalyzer.utils.gui;
2   
3   import java.io.BufferedReader;
4   import java.io.File;
5   import java.io.FileNotFoundException;
6   import java.io.FileReader;
7   import java.io.IOException;
8   import java.io.Reader;
9   import java.io.StringReader;
10  import java.util.ArrayList;
11  import java.util.Vector;
12  import java.util.regex.Pattern;
13  
14  import javax.swing.table.AbstractTableModel;
15  
16  import net.logAnalyzer.reports.TXTReportRenderer;
17  
18  public class TXTReportTableModel extends AbstractTableModel {
19  
20      // Names of the columns.
21      static protected String[] cNames;
22      
23      private int columnCount = 0;
24      
25      private int rowCount = 0;
26      
27      private ArrayList rows = new ArrayList();
28  
29      private Reader reader;
30  
31      public TXTReportTableModel(String report) {
32          super();
33          this.reader = new StringReader(report);
34          parseReport();
35      }
36  
37      public TXTReportTableModel(File report) throws FileNotFoundException {
38          super();
39          this.reader = new FileReader(report);
40          parseReport();
41      }
42  
43      public int getColumnCount() {
44          return columnCount;
45      }
46  
47      public int getRowCount() {
48          // TODO Auto-generated method stub
49          return rowCount;
50      }
51  
52      public Object getValueAt(int row, int column) {
53          String[] columns = (String[])rows.get(row);
54          return columns[column];
55      }
56  
57      public String getColumnName(int column) {
58          return cNames[column];
59      }
60  
61      public Class getColumnClass(int column) {
62          return String.class;
63      }
64  
65      private void parseReport() {
66          BufferedReader in = new BufferedReader(reader);
67          
68          try {
69              String header = in.readLine();
70                          
71              Pattern pattern = Pattern.compile(Character.toString(TXTReportRenderer.DEFAULT_DELIMITER));
72              cNames = pattern.split(header);
73              columnCount = cNames.length;
74              String line ="";
75             while((line = in.readLine()) != null){
76                 if(line.length()>0){
77                     rows.add(pattern.split(line,columnCount));
78                 }
79              }
80              rowCount = rows.size();
81          } catch (IOException e) {
82              // TODO Auto-generated catch block
83              e.printStackTrace();
84          }
85  
86      }
87  
88  }