@@ -405,6 +405,19 @@ public boolean include(final RowFilter.Entry<? extends TestOverviewTableModel, ?
405
405
}
406
406
}
407
407
408
+ private void openItemNode (final ItemNode node ) {
409
+ if (!node .getPackageName ().equals ("***" )) {
410
+ final UtplsqlDao dao = new UtplsqlDao (DatabaseTools .getConnection (currentRun .getConnectionName ()));
411
+ final String source = dao .getSource (node .getOwnerName (), "PACKAGE" , node .getPackageName ().toUpperCase ()).trim ();
412
+ final UtplsqlParser parser = new UtplsqlParser (source );
413
+ int line = 1 ;
414
+ if (node .getUserObject () instanceof Test ) {
415
+ line = parser .getLineOf (node .getProcedureName ());
416
+ }
417
+ openEditor (node .getOwnerName (), "PACKAGE" , node .getPackageName ().toUpperCase (), line , 1 );
418
+ }
419
+ }
420
+
408
421
private void openTest (final Test test ) {
409
422
final UtplsqlDao dao = new UtplsqlDao (DatabaseTools .getConnection (currentRun .getConnectionName ()));
410
423
final String source = dao .getSource (test .getOwnerName (), "PACKAGE" , test .getObjectName ().toUpperCase ()).trim ();
@@ -414,11 +427,21 @@ private void openTest(final Test test) {
414
427
}
415
428
416
429
private void openSelectedTest () {
417
- final int rowIndex = testOverviewTable .getSelectedRow ();
418
- if (rowIndex != -1 ) {
419
- final int row = testOverviewTable .convertRowIndexToModel (rowIndex );
420
- final Test test = testOverviewTableModel .getTest (row );
421
- openTest (test );
430
+ if (!showSuitesCheckBoxMenuItem .isSelected ()) {
431
+ // table
432
+ final int rowIndex = testOverviewTable .getSelectedRow ();
433
+ if (rowIndex != -1 ) {
434
+ final int row = testOverviewTable .convertRowIndexToModel (rowIndex );
435
+ final Test test = testOverviewTableModel .getTest (row );
436
+ openTest (test );
437
+ }
438
+ } else {
439
+ // tree-table
440
+ TreePath path = testOverviewTreeTable .getTree ().getSelectionPath ();
441
+ if (path != null ) {
442
+ ItemNode itemNode = (ItemNode ) path .getLastPathComponent ();
443
+ openItemNode (itemNode );
444
+ }
422
445
}
423
446
}
424
447
@@ -427,14 +450,27 @@ private void openSelectedFailure() {
427
450
if (rowIndex != -1 ) {
428
451
final int row = failuresTable .convertRowIndexToModel (rowIndex );
429
452
final Expectation expectation = failuresTableModel .getExpectation (row );
430
- final Test test = testOverviewTableModel
431
- .getTest (testOverviewTable .convertRowIndexToModel (testOverviewTable .getSelectedRow ()));
432
- final Integer callerLine = expectation .getCallerLine ();
433
- if (callerLine != null ) {
434
- openEditor (test .getOwnerName (), "PACKAGE BODY" , test .getObjectName ().toUpperCase (),
435
- expectation .getCallerLine (), 1 );
453
+ Test test = null ;
454
+ if (!showSuitesCheckBoxMenuItem .isSelected ()) {
455
+ // table
456
+ test = testOverviewTableModel
457
+ .getTest (testOverviewTable .convertRowIndexToModel (testOverviewTable .getSelectedRow ()));
436
458
} else {
437
- openTest (test );
459
+ // tree-table
460
+ TreePath path = testOverviewTreeTable .getTree ().getSelectionPath ();
461
+ if (path != null ) {
462
+ ItemNode itemNode = (ItemNode ) path .getLastPathComponent ();
463
+ test = ((Test )itemNode .getUserObject ());
464
+ }
465
+ }
466
+ if (test != null ) {
467
+ final Integer callerLine = expectation .getCallerLine ();
468
+ if (callerLine != null ) {
469
+ openEditor (test .getOwnerName (), "PACKAGE BODY" , test .getObjectName ().toUpperCase (),
470
+ expectation .getCallerLine (), 1 );
471
+ } else {
472
+ openTest (test );
473
+ }
438
474
}
439
475
}
440
476
}
@@ -1412,7 +1448,19 @@ public Component getTableCellRendererComponent(final JTable table, final Object
1412
1448
testOverviewCodeCoverageMenuItem .setEnabled (true );
1413
1449
}
1414
1450
});
1415
-
1451
+ testOverviewTreeTable .addMouseListener (new MouseAdapter () {
1452
+ @ Override
1453
+ public void mouseClicked (final MouseEvent e ) {
1454
+ if (e .getClickCount () == 2 ) {
1455
+ if (failuresTable .getSelectedRowCount () == 1 ) {
1456
+ // open failure only if a Test node is selected
1457
+ openSelectedFailure ();
1458
+ } else {
1459
+ openSelectedTest ();
1460
+ }
1461
+ }
1462
+ }
1463
+ });
1416
1464
final JTree overviewTreeTableName = testOverviewTreeTable .getTree ();
1417
1465
overviewTreeTableName .setCellRenderer (new DefaultTreeCellRenderer () {
1418
1466
private static final long serialVersionUID = 580783625740405285L ;
0 commit comments