1 package debugger.gui.debugging.debugviews;
2
3 import debugger.resources.ResourcesFactory;
4 import debugger.resources.pr.RuleModel;
5
6 import javax.swing.event.TableModelListener;
7 import javax.swing.table.TableModel;
8 import java.util.ArrayList;
9
10
12
18
19 public class LHSModel implements TableModel {
20
21 public int getRowCount() {
22 if (getMatchedRuleTable(ResourcesFactory.getCurrentRuleModel()) == null) return 0;
23 return getMatchedRuleTable(ResourcesFactory.getCurrentRuleModel()).size();
24 }
25
26 public int getColumnCount() {
27 return 2;
28 }
29
30 public String getColumnName(int columnIndex) {
31 if (columnIndex == 0) return "Rule LHS";
32 if (columnIndex == 1) return "Matching";
33 return null;
34 }
35
36 public Class getColumnClass(int columnIndex) {
37 return String.class;
38 }
39
40 public boolean isCellEditable(int rowIndex, int columnIndex) {
41 return false;
42 }
43
44 public Object getValueAt(int rowIndex, int columnIndex) {
45 Object result = null;
46 if (columnIndex == 0) result = getMatchedRuleTable(ResourcesFactory.getCurrentRuleModel()).get(rowIndex);
47 if (columnIndex == 1) result = getMatchedText(ResourcesFactory.getCurrentRuleModel()).get(rowIndex);
48 return result;
49 }
50
51 public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
52 }
53
54 public void addTableModelListener(TableModelListener l) {
55 }
56
57 public void removeTableModelListener(TableModelListener l) {
58 }
59
60 private ArrayList getMatchedRuleTable(RuleModel ruleModel) {
61 if (ruleModel == null) return null;
62 ArrayList al = ruleModel.getMatshedRuleTable();
63 for (int i = 0; i < al.size(); i++) {
64 String s = (String) al.get(i);
65 if (s.endsWith("*")) {
66 al.remove(i);
67 s = s.substring(0, s.indexOf("*"));
68 al.add(i, s);
69 }
70 }
71 return al;
72 }
73
74 private ArrayList getMatchedText(RuleModel ruleModel) {
75 if (ruleModel == null) return null;
76 return ruleModel.getMatchedText();
77 }
78 }
79