Skip to content

Commit 5fdf1e2

Browse files
add overview table
1 parent 35d5ed9 commit 5fdf1e2

File tree

2 files changed

+109
-4
lines changed

2 files changed

+109
-4
lines changed

sqldev/src/main/java/org/utplsql/sqldev/ui/runner/RunnerPanel.xtend

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import java.awt.Insets
2424
import javax.swing.JLabel
2525
import javax.swing.JPanel
2626
import javax.swing.JProgressBar
27+
import javax.swing.JScrollPane
28+
import javax.swing.JTable
2729
import javax.swing.plaf.basic.BasicProgressBarUI
2830
import org.utplsql.sqldev.model.LimitedLinkedHashMap
2931
import org.utplsql.sqldev.model.runner.Run
@@ -39,6 +41,8 @@ class RunnerPanel {
3941
JLabel errorCounterValueLabel
4042
JLabel failureCounterValueLabel
4143
JProgressBar progressBar;
44+
TestOverviewTableModel testOverviewTableModel
45+
JTable testOverviewTable
4246

4347
def Component getGUI() {
4448
if (basePanel === null) {
@@ -49,10 +53,17 @@ class RunnerPanel {
4953

5054
def setModel(Run run) {
5155
runs.put(run.reporterId, run)
56+
testOverviewTableModel.model = run.tests
5257
}
5358

5459
def update(String reporterId) {
5560
val run = runs.get(reporterId)
61+
val row = run.totalNumberOfCompletedTests - 1
62+
if (row < 0) {
63+
testOverviewTableModel.fireTableDataChanged
64+
} else {
65+
testOverviewTableModel.fireTableRowsUpdated(row, row)
66+
}
5667
statusLabel.text = run.status
5768
testCounterValueLabel.text = '''«run.totalNumberOfCompletedTests»/«run.totalNumberOfTests»'''
5869
errorCounterValueLabel.text = '''«run.counter.error»'''
@@ -181,9 +192,19 @@ class RunnerPanel {
181192
c.weightx = 1
182193
c.weighty = 0
183194
basePanel.add(progressBar, c)
184-
185-
// Vertical spring
186-
val spring = new JLabel
195+
196+
// Test overview - first part of the horizontal split pane
197+
testOverviewTableModel = new TestOverviewTableModel
198+
testOverviewTable = new JTable(testOverviewTableModel)
199+
val overviewTableIcon = testOverviewTable.columnModel.getColumn(0)
200+
overviewTableIcon.minWidth = 20
201+
overviewTableIcon.preferredWidth = 20
202+
overviewTableIcon.maxWidth = 20
203+
val overviewTableTime = testOverviewTable.columnModel.getColumn(2)
204+
overviewTableTime.preferredWidth = 60
205+
overviewTableTime.maxWidth = 100
206+
testOverviewTable.tableHeader.reorderingAllowed = false
207+
val testOverviewScrollPane = new JScrollPane(testOverviewTable)
187208
c.gridx = 0
188209
c.gridy = 3
189210
c.gridwidth = 6
@@ -193,6 +214,10 @@ class RunnerPanel {
193214
c.fill = GridBagConstraints::BOTH
194215
c.weightx = 1
195216
c.weighty = 1
196-
basePanel.add(spring, c)
217+
basePanel.add(testOverviewScrollPane, c)
218+
219+
// Test details tabbed pane - second part of the horizontal split pane
220+
221+
197222
}
198223
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package org.utplsql.sqldev.ui.runner
2+
3+
import java.util.LinkedHashMap
4+
import javax.swing.Icon
5+
import javax.swing.table.DefaultTableModel
6+
import org.utplsql.sqldev.model.runner.Test
7+
import org.utplsql.sqldev.resources.UtplsqlResources
8+
9+
class TestOverviewTableModel extends DefaultTableModel {
10+
LinkedHashMap<String, Test> tests
11+
12+
new() {
13+
super()
14+
}
15+
16+
def setModel(LinkedHashMap<String, Test> tests) {
17+
this.tests = tests
18+
fireTableDataChanged()
19+
}
20+
21+
override getRowCount() {
22+
if (tests === null) {
23+
return 0
24+
}
25+
return tests.size()
26+
}
27+
28+
override getColumnCount() {
29+
return 3
30+
}
31+
32+
override getValueAt(int row, int col) {
33+
val test = tests.entrySet.get(row).value
34+
35+
if (test === null) {
36+
return null
37+
}
38+
39+
switch (col) {
40+
case 0: {
41+
return test.statusIcon
42+
}
43+
case 1: {
44+
return test.id
45+
}
46+
case 2: {
47+
return test.executionTime
48+
}
49+
default: {
50+
return null
51+
}
52+
}
53+
}
54+
55+
override getColumnName(int col) {
56+
return #[UtplsqlResources.getString("RUNNER_TEST_STATUS"), UtplsqlResources.getString("RUNNER_TEST_ID"),
57+
UtplsqlResources.getString("RUNNER_TEST_EXECUTION_TIME")].get(col)
58+
}
59+
60+
override isCellEditable(int row, int column) {
61+
return false
62+
}
63+
64+
override getColumnClass(int col) {
65+
switch (col) {
66+
case 0: {
67+
return Icon
68+
}
69+
case 1: {
70+
return String
71+
}
72+
case 2: {
73+
return Double
74+
}
75+
default: {
76+
return String
77+
}
78+
}
79+
}
80+
}

0 commit comments

Comments
 (0)