Skip to content

Commit 28f78a7

Browse files
Merge pull request #82 from PhilippSalvisberg/73_filter
#73 - Filter successful and disabled tests
2 parents c73fca4 + 4f27db1 commit 28f78a7

File tree

6 files changed

+85
-1
lines changed

6 files changed

+85
-1
lines changed

sqldev/src/main/java/org/utplsql/sqldev/model/preference/PreferenceModel.xtend

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ class PreferenceModel extends HashStructureAdapter {
4646
static final String KEY_SHOW_INFO_COUNTER = "showInfoCounter"
4747
static final String KEY_SHOW_WARNING_INDICATOR = "showWarningIndicator"
4848
static final String KEY_SHOW_INFO_INDICATOR = "showInfoIndicator"
49+
static final String KEY_SHOW_SUCCESSFUL_TESTS = "showSuccessfulTests"
50+
static final String KEY_SHOW_DISABLED_TESTS = "showDisabledTests"
4951
static final String KEY_SHOW_TEST_DESCRIPTION = "showTestDescription"
5052
static final String KEY_SYNC_DETAIL_TAB = "syncDetailTab"
5153
static final String KEY_TEST_PACKAGE_PREFIX = "testPackagePrefix"
@@ -166,6 +168,22 @@ class PreferenceModel extends HashStructureAdapter {
166168
def setShowInfoIndicator(boolean showInfoIndicator) {
167169
getHashStructure.putBoolean(PreferenceModel.KEY_SHOW_INFO_INDICATOR, showInfoIndicator)
168170
}
171+
172+
def isShowSuccessfulTests() {
173+
return getHashStructure.getBoolean(PreferenceModel.KEY_SHOW_SUCCESSFUL_TESTS, true)
174+
}
175+
176+
def setShowSuccessfulTests(boolean showSuccessfulTests) {
177+
getHashStructure.putBoolean(PreferenceModel.KEY_SHOW_SUCCESSFUL_TESTS, showSuccessfulTests)
178+
}
179+
180+
def isShowDisabledTests() {
181+
return getHashStructure.getBoolean(PreferenceModel.KEY_SHOW_DISABLED_TESTS, true)
182+
}
183+
184+
def setShowDisabledTests(boolean showDisabledTests) {
185+
getHashStructure.putBoolean(PreferenceModel.KEY_SHOW_DISABLED_TESTS, showDisabledTests)
186+
}
169187

170188
def isShowTestDescription() {
171189
return getHashStructure.getBoolean(PreferenceModel.KEY_SHOW_TEST_DESCRIPTION, false)

sqldev/src/main/java/org/utplsql/sqldev/ui/preference/PreferencePanel.xtend

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ class PreferencePanel extends DefaultTraversablePanel {
5555
val JCheckBox showInfoCounterCheckBox = new JCheckBox
5656
val JCheckBox showWarningIndicatorCheckBox = new JCheckBox
5757
val JCheckBox showInfoIndicatorCheckBox = new JCheckBox
58+
val JCheckBox showSuccessfulTestsCheckBox = new JCheckBox
59+
val JCheckBox showDisabledTestsCheckBox = new JCheckBox
5860
val JCheckBox showTestDescriptionCheckBox = new JCheckBox
5961
val JCheckBox syncDetailTabCheckBox = new JCheckBox
6062
val JPanel generateTestPanel = new JPanel();
@@ -134,6 +136,12 @@ class PreferencePanel extends DefaultTraversablePanel {
134136
rrTab.add(
135137
runTab.field.label.withText(UtplsqlResources.getString("PREF_SHOW_INFO_INDICATOR_LABEL")).component(
136138
showInfoIndicatorCheckBox))
139+
rrTab.add(
140+
runTab.field.label.withText(UtplsqlResources.getString("PREF_SHOW_SUCCESSFUL_TESTS_LABEL")).component(
141+
showSuccessfulTestsCheckBox))
142+
rrTab.add(
143+
runTab.field.label.withText(UtplsqlResources.getString("PREF_SHOW_DISABLED_TESTS_LABEL")).component(
144+
showDisabledTestsCheckBox))
137145
rrTab.add(
138146
runTab.field.label.withText(UtplsqlResources.getString("PREF_SHOW_TEST_DESCRIPTION_LABEL")).component(
139147
showTestDescriptionCheckBox))
@@ -348,6 +356,8 @@ class PreferencePanel extends DefaultTraversablePanel {
348356
showInfoCounterCheckBox.selected = info.showInfoCounter
349357
showWarningIndicatorCheckBox.selected = info.showWarningIndicator
350358
showInfoIndicatorCheckBox.selected = info.showInfoIndicator
359+
showSuccessfulTestsCheckBox.selected = info.showSuccessfulTests
360+
showDisabledTestsCheckBox.selected = info.showDisabledTests
351361
showTestDescriptionCheckBox.selected = info.showTestDescription
352362
syncDetailTabCheckBox.selected = info.syncDetailTab
353363
testPackagePrefixTextField.text = info.testPackagePrefix
@@ -383,6 +393,8 @@ class PreferencePanel extends DefaultTraversablePanel {
383393
info.showInfoCounter = showInfoCounterCheckBox.selected
384394
info.showWarningIndicator = showWarningIndicatorCheckBox.selected
385395
info.showInfoIndicator = showInfoIndicatorCheckBox.selected
396+
info.showSuccessfulTests = showSuccessfulTestsCheckBox.selected
397+
info.showDisabledTests = showDisabledTestsCheckBox.selected
386398
info.showTestDescription = showTestDescriptionCheckBox.selected
387399
info.syncDetailTab = syncDetailTabCheckBox.selected
388400
info.testPackagePrefix = testPackagePrefixTextField.text

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

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import javax.swing.JSplitPane
4545
import javax.swing.JTabbedPane
4646
import javax.swing.JTable
4747
import javax.swing.RepaintManager
48+
import javax.swing.RowFilter
4849
import javax.swing.SwingConstants
4950
import javax.swing.Timer
5051
import javax.swing.UIManager
@@ -55,6 +56,7 @@ import javax.swing.event.ListSelectionEvent
5556
import javax.swing.event.ListSelectionListener
5657
import javax.swing.plaf.basic.BasicProgressBarUI
5758
import javax.swing.table.DefaultTableCellRenderer
59+
import javax.swing.table.TableRowSorter
5860
import oracle.dbtools.raptor.controls.grid.DefaultDrillLink
5961
import oracle.dbtools.raptor.utils.Connections
6062
import oracle.ide.config.Preferences
@@ -105,6 +107,8 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
105107
JCheckBoxMenuItem showTestDescriptionCheckBoxMenuItem
106108
JCheckBoxMenuItem showWarningIndicatorCheckBoxMenuItem
107109
JCheckBoxMenuItem showInfoIndicatorCheckBoxMenuItem
110+
JCheckBoxMenuItem showSuccessfulTestsCheckBoxMenuItem
111+
JCheckBoxMenuItem showDisabledTestsCheckBoxMenuItem
108112
JCheckBoxMenuItem syncDetailTabCheckBoxMenuItem
109113
RunnerTextField testOwnerTextField
110114
RunnerTextField testPackageTextField
@@ -220,6 +224,30 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
220224
col.preferredWidth = 0
221225
}
222226
}
227+
228+
private def applyFilter(boolean showSuccessfulTests, boolean showDisabledTests) {
229+
val sorter = testOverviewTable.rowSorter as TableRowSorter<TestOverviewTableModel>
230+
val filter = new RowFilter<TestOverviewTableModel, Integer>() {
231+
override include(Entry<? extends TestOverviewTableModel, ? extends Integer> entry) {
232+
val test = entry.model.getTest(entry.identifier)
233+
val counter = test.counter
234+
if (counter !== null) {
235+
if (counter.success > 0) {
236+
if (!showSuccessfulTests) {
237+
return false
238+
}
239+
}
240+
if (counter.disabled > 0) {
241+
if (!showDisabledTests) {
242+
return false
243+
}
244+
}
245+
}
246+
return true
247+
}
248+
}
249+
sorter.rowFilter = filter
250+
}
223251

224252
private def openSelectedTest() {
225253
val rowIndex = testOverviewTable.selectedRow
@@ -338,6 +366,9 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
338366
fixCheckBoxMenuItem(showWarningIndicatorCheckBoxMenuItem)
339367
showInfoIndicatorCheckBoxMenuItem.selected = preferences.showInfoIndicator
340368
applyShowInfoIndicator(showInfoIndicatorCheckBoxMenuItem.selected)
369+
showSuccessfulTestsCheckBoxMenuItem.selected = preferences.showSuccessfulTests
370+
showDisabledTestsCheckBoxMenuItem.selected = preferences.showDisabledTests
371+
applyFilter(showSuccessfulTestsCheckBoxMenuItem.selected, showDisabledTestsCheckBoxMenuItem.selected)
341372
fixCheckBoxMenuItem(showInfoIndicatorCheckBoxMenuItem)
342373
syncDetailTabCheckBoxMenuItem.selected = preferences.syncDetailTab
343374
fixCheckBoxMenuItem(syncDetailTabCheckBoxMenuItem)
@@ -380,10 +411,13 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
380411
testOverviewTableModel.fireTableDataChanged
381412
} else {
382413
if (testOverviewTableModel.rowCount > row) {
383-
val positionOfCurrentTest = testOverviewTable.getCellRect(row, 0, true);
414+
val positionOfCurrentTest = testOverviewTable.getCellRect(testOverviewTable.convertRowIndexToView(row), 0, true);
384415
testOverviewTable.scrollRectToVisible = positionOfCurrentTest
385416
testOverviewTableModel.fireTableRowsUpdated(row, row)
386417
Thread.sleep(5) // reduce flickering
418+
if (!showSuccessfulTestsCheckBoxMenuItem.selected || !showDisabledTestsCheckBoxMenuItem.selected) {
419+
applyFilter(showSuccessfulTestsCheckBoxMenuItem.selected, showDisabledTestsCheckBoxMenuItem.selected)
420+
}
387421
testOverviewTable.scrollRectToVisible = positionOfCurrentTest
388422
}
389423
}
@@ -485,6 +519,12 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
485519
} else if (e.source == showInfoCounterCheckBoxMenuItem) {
486520
applyShowInfoCounter(showInfoCounterCheckBoxMenuItem.selected)
487521
fixCheckBoxMenuItem(showInfoCounterCheckBoxMenuItem)
522+
} else if (e.source == showSuccessfulTestsCheckBoxMenuItem) {
523+
applyFilter(showSuccessfulTestsCheckBoxMenuItem.selected, showDisabledTestsCheckBoxMenuItem.selected)
524+
fixCheckBoxMenuItem(showSuccessfulTestsCheckBoxMenuItem)
525+
} else if (e.source == showDisabledTestsCheckBoxMenuItem) {
526+
applyFilter(showSuccessfulTestsCheckBoxMenuItem.selected, showDisabledTestsCheckBoxMenuItem.selected)
527+
fixCheckBoxMenuItem(showDisabledTestsCheckBoxMenuItem)
488528
} else if (e.source == showTestDescriptionCheckBoxMenuItem) {
489529
applyShowTestDescription(showTestDescriptionCheckBoxMenuItem.selected)
490530
fixCheckBoxMenuItem(showTestDescriptionCheckBoxMenuItem)
@@ -943,6 +983,13 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
943983
testOverviewRunWorksheetMenuItem.addActionListener(this)
944984
testOverviewPopupMenu.add(testOverviewRunWorksheetMenuItem)
945985
testOverviewPopupMenu.add(new JSeparator)
986+
showSuccessfulTestsCheckBoxMenuItem = new JCheckBoxMenuItem(UtplsqlResources.getString("PREF_SHOW_SUCCESSFUL_TESTS_LABEL").replace("?",""), true)
987+
showSuccessfulTestsCheckBoxMenuItem.addActionListener(this)
988+
testOverviewPopupMenu.add(showSuccessfulTestsCheckBoxMenuItem)
989+
showDisabledTestsCheckBoxMenuItem = new JCheckBoxMenuItem(UtplsqlResources.getString("PREF_SHOW_DISABLED_TESTS_LABEL").replace("?",""), true)
990+
showDisabledTestsCheckBoxMenuItem.addActionListener(this)
991+
testOverviewPopupMenu.add(showDisabledTestsCheckBoxMenuItem)
992+
testOverviewPopupMenu.add(new JSeparator)
946993
showTestDescriptionCheckBoxMenuItem = new JCheckBoxMenuItem(UtplsqlResources.getString("PREF_SHOW_TEST_DESCRIPTION_LABEL").replace("?",""), true)
947994
showTestDescriptionCheckBoxMenuItem.addActionListener(this)
948995
testOverviewPopupMenu.add(showTestDescriptionCheckBoxMenuItem)
@@ -956,6 +1003,7 @@ class RunnerPanel implements ActionListener, MouseListener, HyperlinkListener {
9561003
syncDetailTabCheckBoxMenuItem.addActionListener(this)
9571004
testOverviewPopupMenu.add(syncDetailTabCheckBoxMenuItem)
9581005
testOverviewTable.componentPopupMenu = testOverviewPopupMenu
1006+
testOverviewTable.tableHeader.componentPopupMenu = testOverviewPopupMenu
9591007

9601008
// Test tabbed pane (Test Properties)
9611009
val testInfoPanel = new ScrollablePanel

sqldev/src/main/resources/org/utplsql/sqldev/resources/UtplsqlResources.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ PREF_SHOW_WARNINGS_COUNTER_LABEL=Show warnings counter?
4141
PREF_SHOW_INFO_COUNTER_LABEL=Show info counter?
4242
PREF_SHOW_WARNING_INDICATOR_LABEL=Show warning indicator?
4343
PREF_SHOW_INFO_INDICATOR_LABEL=Show info indicator?
44+
PREF_SHOW_SUCCESSFUL_TESTS_LABEL=Show successful tests?
45+
PREF_SHOW_DISABLED_TESTS_LABEL=Show disabled tests?
4446
PREF_SHOW_TEST_DESCRIPTION_LABEL=Show description (if present)?
4547
PREF_SYNC_DETAIL_TAB_LABEL=Synchronize detail tab based on test status?
4648
PREF_TEST_PACKAGE_PREFIX_LABEL=Test package prefix

sqldev/src/main/resources/org/utplsql/sqldev/resources/UtplsqlResources_de.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ PREF_SHOW_WARNINGS_COUNTER_LABEL=Warnungen-Z
1818
PREF_SHOW_INFO_COUNTER_LABEL=Info-Zähler anzeigen?
1919
PREF_SHOW_WARNING_INDICATOR_LABEL=Warnung-Indikator anzeigen?
2020
PREF_SHOW_INFO_INDICATOR_LABEL=Info-Indikator anzeigen?
21+
PREF_SHOW_SUCCESSFUL_TESTS_LABEL=Erfolgreiche Tests anzeigen?
22+
PREF_SHOW_DISABLED_TESTS_LABEL=Deaktivierte Tests anzeigen?
2123
PREF_SHOW_TEST_DESCRIPTION_LABEL=Beschreibung anzeigen (falls vorhanden)?
2224
PREF_SYNC_DETAIL_TAB_LABEL=Detailansicht basierend auf dem Teststatus synchronisieren?
2325
PREF_TEST_PACKAGE_PREFIX_LABEL=Test Package Präfix

sqldev/src/test/java/org/utplsql/sqldev/test/preference/PreferenceModelTest.xtend

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ class PreferenceModelTest {
3737
Assert.assertFalse(model.showInfoCounter)
3838
Assert.assertFalse(model.showWarningIndicator)
3939
Assert.assertFalse(model.showInfoIndicator)
40+
Assert.assertTrue(model.showSuccessfulTests)
41+
Assert.assertTrue(model.showDisabledTests)
4042
Assert.assertFalse(model.isShowTestDescription)
4143
Assert.assertTrue(model.syncDetailTab)
4244
Assert.assertEquals("test_", model.testPackagePrefix)

0 commit comments

Comments
 (0)