summaryrefslogtreecommitdiffstats
path: root/src/cppcheckplus/text/ViewPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cppcheckplus/text/ViewPanel.java')
-rw-r--r--src/cppcheckplus/text/ViewPanel.java213
1 files changed, 213 insertions, 0 deletions
diff --git a/src/cppcheckplus/text/ViewPanel.java b/src/cppcheckplus/text/ViewPanel.java
new file mode 100644
index 0000000..c5b79d9
--- /dev/null
+++ b/src/cppcheckplus/text/ViewPanel.java
@@ -0,0 +1,213 @@
1package cppcheckplus.text;
2
3import java.awt.BorderLayout;
4import java.util.Vector;
5
6import javax.swing.JPanel;
7import javax.swing.JScrollPane;
8import javax.swing.JTable;
9import javax.swing.table.DefaultTableModel;
10import javax.swing.table.TableColumn;
11
12import cppcheckplus.control.XChartletFullScreenListenter;
13
14
15public class ViewPanel extends JPanel implements XChartletFullScreenListenter {
16
17 private static final long serialVersionUID = 1L;
18 private DefaultTableModel model;
19 private JScrollPane jsp;
20 private JTable table;
21 private Vector<DeflectRow> results=new Vector<DeflectRow>();
22 private BorderLayout layout;
23 private boolean isFullScreen;
24
25 public JTable getTable() {
26 return table;
27 }
28
29 public void setTable(JTable table) {
30 this.table = table;
31 }
32
33 public ViewPanel() {
34
35 layout = new BorderLayout();
36 setLayout(layout);
37
38 String[] colnames = { "序号", "工具", "文件", "行号", "级别", "类型", "描述", "人工确认" };
39 // 填充数据
40 model = new DefaultTableModel(colnames, 0){
41 @Override
42 public Object getValueAt(int row, int column) {
43 if(results!=null && row<results.size()){
44 switch(column){
45 case 1:
46 return results.elementAt(row).getUntil();
47 case 2:
48 return results.elementAt(row).getFile();
49 case 3:
50 return results.elementAt(row).getLine();
51 case 4:
52 return results.elementAt(row).getLevel();
53 case 5:
54 return results.elementAt(row).getType();
55 case 6:
56 return results.elementAt(row).getDescription();
57 case 7:
58 return results.elementAt(row).getIssure();
59 case 0:
60 return row+1;
61 }
62 }
63 return null;
64 }
65
66 @Override
67 public boolean isCellEditable(int row, int column) {
68 if (column == 7 || column == 2 || column == 5)
69 return true;
70 return false;
71 }
72 /*
73 @Override
74 public int getRowCount() {
75 return results.size();
76 }*/
77
78 @Override
79 public int getColumnCount() {
80 return 8;
81 }
82
83 @Override
84 public void setValueAt(Object aValue, int row, int column){
85 if(results!=null && row<results.size()){
86 switch(column){
87 case 1:
88 results.elementAt(row).setUntil((String)aValue);
89 break;
90 case 2:
91 results.elementAt(row).setFile((String)aValue);
92 break;
93 case 3:
94 results.elementAt(row).setLine((String)aValue);
95 break;
96 case 4:
97 results.elementAt(row).setLevel((String)aValue);
98 break;
99 case 5:
100 results.elementAt(row).setType((String)aValue);
101 break;
102 case 6:
103 results.elementAt(row).setDescription((String)aValue);
104 break;
105 case 7:
106 results.elementAt(row).setIssure((Integer)aValue);
107 break;
108 }
109 }
110 fireTableCellUpdated(row, column);
111 }
112
113 };
114
115 table = new JTable(model);
116 TableColumn c1 = table.getColumnModel().getColumn(0);
117 c1.setPreferredWidth(30);
118 c1.setMaxWidth(30);
119 c1.setMinWidth(30);
120 TableColumn c2 = table.getColumnModel().getColumn(1);
121 c2.setPreferredWidth(60);
122 c2.setMaxWidth(60);
123 c2.setMinWidth(60);
124 TableColumn c3 = table.getColumnModel().getColumn(2);
125 c3.setPreferredWidth(160);
126 c3.setMaxWidth(160);
127 c3.setMinWidth(160);
128 TableColumn c4 = table.getColumnModel().getColumn(3);
129 c4.setPreferredWidth(40);
130 c4.setMaxWidth(40);
131 c4.setMinWidth(40);
132 TableColumn c5 = table.getColumnModel().getColumn(4);
133 c5.setPreferredWidth(30);
134 c5.setMaxWidth(30);
135 c5.setMinWidth(30);
136 TableColumn c6 = table.getColumnModel().getColumn(5);
137 c6.setPreferredWidth(100);
138 c6.setMaxWidth(100);
139 c6.setMinWidth(100);
140 TableColumn c8 = table.getColumnModel().getColumn(7);
141 c8.setPreferredWidth(100);
142 c8.setMaxWidth(100);
143 c8.setMinWidth(100);
144
145 table.getColumnModel().getColumn(7).setCellEditor(new MyButtonEditor());
146 table.getColumnModel().getColumn(7).setCellRenderer(new MyButtonRenderer());
147 table.setRowSelectionAllowed(false);
148
149
150 jsp = new JScrollPane(table);
151 add(jsp, BorderLayout.CENTER);
152 }
153
154 public ViewPanel(Vector<DeflectRow> rows) {
155 this();
156 results = rows;
157 fillTable(results);
158 }
159
160 public void clearTable() {
161 model.setRowCount(0);// 清除原有行
162 results.clear();
163 table.invalidate();
164 }
165
166 public void update(Vector<DeflectRow> rows) {
167 results = rows;
168 fillTable(results);
169 }
170
171 public void initialize() {
172 setLayout(layout);
173 add(jsp);
174 }
175
176 public void fillTable(Vector<DeflectRow> rows) {
177
178 model.setRowCount(0);// 清除原有行
179 int n = 0;
180 if (rows != null && rows.size() > 0) {
181 for (DeflectRow row : rows) {
182 n++;
183 Object[] arr = new Object[8];
184 arr[0] = String.valueOf(n);
185 arr[1] = row.getUntil();
186 arr[2] = row.getFile();
187 arr[3] = row.getLine();
188 arr[4] = row.getLevel();
189 arr[5] = row.getType();
190 arr[6] = row.getDescription();
191 arr[7] = row.getIssure();
192 // 添加数据到表格
193 model.addRow(arr);
194 }
195 }
196 table.invalidate();
197 }
198
199 @Override
200 public void fullScreen(JPanel chartPanellet) {
201 removeAll();
202 isFullScreen = !isFullScreen;
203 if (isFullScreen) {
204 setLayout(new BorderLayout());
205 add(chartPanellet, "Center");
206 } else {
207 initialize();
208 }
209 repaint();
210 revalidate();
211 }
212
213}