@@ -270,26 +270,31 @@ private void generateLegend(boolean useShortenedNames){
270270
271271 public void showDialog () {
272272 if (dialog == null ) {
273- intervalPanel = new IntervalChooserPanel ();
274- if (MainWindow .runObject [myRun ].hasLogFiles ())
275- dialog = new RangeDialog (this , "Select Range" , intervalPanel , false );
276- else //only has summary files
277- dialog = new RangeDialog (this , "Select Range" , intervalPanel , true );
278- }
273+ if (MainWindow .runObject [myRun ].hasLogFiles ())
274+ intervalPanel = new IntervalChooserPanel ();
275+ else // Intervals are fixed for the summary modes, so don't display choosable interval panel
276+ intervalPanel = null ;
277+ dialog = new RangeDialog (this , "Select Range" , intervalPanel , false );
278+ }
279+
279280 dialog .displayDialog ();
280281 if (!dialog .isCancelled ()){
281- startInterval = (int )intervalPanel .getStartInterval ();
282- endInterval = (int )intervalPanel .getEndInterval ();
283282 processorList = dialog .getSelectedProcessors ();
284283 startTime = dialog .getStartTime ();
285- if (MainWindow .runObject [myRun ].hasLogFiles ()){
286- intervalSize = intervalPanel .getIntervalSize ();
287- }
288- else {//sum detail mode
289- startInterval = 0 ;
290- endInterval = (int ) MainWindow .runObject [myRun ].getSumDetailNumIntervals () - 1 ;
291- intervalSize = (long ) MainWindow .runObject [myRun ].getSumDetailIntervalSize ();
292- }
284+
285+ if (MainWindow .runObject [myRun ].hasLogFiles ()) {
286+ intervalSize = intervalPanel .getIntervalSize ();
287+ startInterval = (int )intervalPanel .getStartInterval ();
288+ endInterval = (int )intervalPanel .getEndInterval ();
289+
290+ } else { // sum detail mode
291+ intervalSize = (long ) MainWindow .runObject [myRun ].getSumDetailIntervalSize ();
292+ startInterval = (int ) (startTime / intervalSize );
293+ final long endTime = dialog .getEndTime ();
294+ // For intervalSize of 1, endTime of 2 should give endInterval of 1 ([1,2)), endTime of 2.5 should give
295+ // endInterval of 2 ([2, 3)), so take ceil and subtract one
296+ endInterval = (int ) Math .ceil (((double )endTime ) / intervalSize ) - 1 ;
297+ }
293298
294299 System .out .println ("Props: intervalSize:" +intervalSize +"- startInterval:" +startInterval +"- endInterval:" +endInterval +"- startTime:" + startTime );
295300
@@ -352,7 +357,9 @@ else if( MainWindow.runObject[myRun].hasSumDetailFiles()) //Bilge
352357 {
353358 // Do serial file reading because all we have is the sum files
354359 //System.out.println("hasSumDetailFiles - LOAD DATA. numIntervals: " + numIntervals);
355- MainWindow .runObject [myRun ].LoadGraphData (intervalSize , 0 , numIntervals -1 , false , processorList );
360+ MainWindow .runObject [myRun ].LoadGraphData (intervalSize , startInterval , endInterval , false ,
361+ processorList );
362+
356363 int [][] sumDetailData = MainWindow .runObject [myRun ].getSumDetailData ();
357364
358365 for (int i =0 ;i <numIntervals ;i ++){
0 commit comments