diff options
Diffstat (limited to 'src/cppcheckplus/text/ViewPanel.java')
-rw-r--r-- | src/cppcheckplus/text/ViewPanel.java | 213 |
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 @@ | |||
1 | package cppcheckplus.text; | ||
2 | |||
3 | import java.awt.BorderLayout; | ||
4 | import java.util.Vector; | ||
5 | |||
6 | import javax.swing.JPanel; | ||
7 | import javax.swing.JScrollPane; | ||
8 | import javax.swing.JTable; | ||
9 | import javax.swing.table.DefaultTableModel; | ||
10 | import javax.swing.table.TableColumn; | ||
11 | |||
12 | import cppcheckplus.control.XChartletFullScreenListenter; | ||
13 | |||
14 | |||
15 | public 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 | } | ||