Skip to content

Commit b831163

Browse files
committed
Merge pull request #423 from GoogleCloudPlatform/i416
forcing redraw of snapshot results when snapshot was pre-selected in …
2 parents 04b4ad0 + decec33 commit b831163

File tree

2 files changed

+36
-5
lines changed

2 files changed

+36
-5
lines changed

google-cloud-tools-plugin/src/com/google/gct/idea/debugger/CloudDebugProcess.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,7 @@ public void run() {
286286
return;
287287
}
288288

289-
if (myCurrentSnapshot == null || !myCurrentSnapshot.getId().equals(result.getId())) {
290-
navigateToBreakpoint(result);
291-
}
289+
navigateToBreakpoint(result);
292290
}
293291
}
294292
});

google-cloud-tools-plugin/src/com/google/gct/idea/debugger/ui/CloudDebugHistoricalSnapshots.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,12 +557,24 @@ public void mousePressed(MouseEvent event) {
557557
.showDialog(myProcess.getBreakpointHandler().getXBreakpoint(breakpoint));
558558
}
559559
else if (event.getClickCount() == 1 && breakpoint != null && myTable.getSelectedRows().length == 1) {
560-
getModel().unMarkAsNewlyReceived(breakpoint.getId());
561-
myProcess.navigateToSnapshot(breakpoint.getId());
560+
selectSnapshot(breakpoint, false);
562561
}
563562
}
564563
}
565564

565+
private void selectSnapshot(Breakpoint breakpoint, boolean isSelectedBeforeTrigger) {
566+
getModel().unMarkAsNewlyReceived(breakpoint.getId());
567+
568+
if(isSelectedBeforeTrigger || isNewlySelected(breakpoint)) {
569+
myProcess.navigateToSnapshot(breakpoint.getId());
570+
}
571+
}
572+
573+
private boolean isNewlySelected(Breakpoint breakpoint) {
574+
return myProcess.getCurrentSnapshot() == null
575+
|| !myProcess.getCurrentSnapshot().getId().equals(breakpoint.getId());
576+
}
577+
566578
/**
567579
* Create a hand cursor over a link within a table.
568580
*/
@@ -645,6 +657,27 @@ public void run() {
645657
.setDisposable(myProcess.getXDebugSession().getProject());
646658
myBalloon = builder.createBalloon();
647659
myBalloon.show(new RelativePoint(myTable, new Point(myTable.getWidth() / 2, rectangle.y)), Position.above);
660+
661+
reloadSnapshot();
662+
}
663+
}
664+
665+
/**
666+
* If the snapshot was already selected prior to being triggered,
667+
* e.g. the user selected it while in a pending state,
668+
* we need to force trigger its selection so that the new results are drawn
669+
*/
670+
private void reloadSnapshot() {
671+
int selectedRow = myTable.getSelectedRow();
672+
673+
if(selectedRow != -1
674+
&& selectedRow < getModel().getBreakpoints().size()
675+
&& getModel().isNewlyReceived(selectedRow)) {
676+
Breakpoint breakpoint = getModel().getBreakpoints().get(selectedRow);
677+
678+
if(breakpoint != null && myTable.getSelectedRows().length == 1) {
679+
selectSnapshot(breakpoint, true);
680+
}
648681
}
649682
}
650683
}

0 commit comments

Comments
 (0)