@Override
 public void setInput(RefactoringStatusContext context) {
   if (context instanceof DartStatusContext) {
     DartStatusContext jsc = (DartStatusContext) context;
     IDocument document = null;
     {
       CompilationUnit cunit = jsc.getCompilationUnit();
       if (cunit.isWorkingCopy()) {
         try {
           document = newDocument(cunit.getSource());
         } catch (DartModelException e) {
           // document is null which is a valid input.
         }
       } else {
         IEditorInput editorInput = new FileEditorInput((IFile) cunit.getResource());
         document =
             getDocument(
                 DartToolsPlugin.getDefault().getCompilationUnitDocumentProvider(), editorInput);
       }
       if (document == null) {
         document = new Document(RefactoringMessages.DartStatusContextViewer_no_source_available);
       }
       updateTitle(cunit);
     }
     setInput(document, createRegion(jsc.getSourceRange()));
   } else if (context instanceof DartStringStatusContext) {
     updateTitle(null);
     DartStringStatusContext sc = (DartStringStatusContext) context;
     setInput(newDocument(sc.getSource()), createRegion(sc.getSourceRange()));
   }
 }