rem: var outlinerView = gDBView.QueryInterface(Components.interfaces.nsIOutlinerView); 
context: function HandleDeleteOrMoveMsgCompleted(folder){  if (IsCurrentLoadedFolder(folder)) {    if (gNextMessageViewIndexAfterDelete != -1) {      var outlinerView = gDBView.QueryInterface(Components.interfaces.nsIOutlinerView);      var outlinerSelection = outlinerView.selection;      viewSize = outlinerView.rowCount;      if (gNextMessageViewIndexAfterDelete >= viewSize) {        if (viewSize > 0)          gNextMessageViewIndexAfterDelete = viewSize - 1;        else          gNextMessageViewIndexAfterDelete = -1;      }      // if we are about to set the selection with a new element then DON'T clear      // the selection then add the next message to select. This just generates      // an extra round of command updating notifications that we are trying to      // optimize away.      if (gNextMessageViewIndexAfterDelete != -1) {        outlinerSelection.select(gNextMessageViewIndexAfterDelete);        // since gNextMessageViewIndexAfterDelete probably has the same value        // as the last index we had selected, the outliner isn't generating a new        // selectionChanged notification for the outliner view. So we aren't loading the         // next message. to fix this, force the selection changed update.        var outlinerView = gDBView.QueryInterface(Components.interfaces.nsIOutlinerView);        if (outlinerView)          outlinerView.selectionChanged();        EnsureRowInThreadOutlinerIsVisible(gNextMessageViewIndexAfterDelete);       }      else {        outlinerSelection.clearSelection(); /* clear selection in either case  */        ClearMessagePane();      }      gNextMessageViewIndexAfterDelete = -1;    }  }}
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/9af4e1c634401e930971dc7aac43be21d249ce64/msgMail3PaneWindow.js/clean/mailnews/base/resources/content/msgMail3PaneWindow.js