@Override
    public Object getData(String dataId) {
      if (PlatformDataKeys.DIFF_VIEWER.is(dataId)) {
        return myDiffPanel;
      }
      if (FocusDiffSide.DATA_KEY.is(dataId)) {
        return myDiffPanel.myCurrentSide == null ? null : myFocusDiffSide;
      }
      if (CommonDataKeys.NAVIGATABLE.is(dataId)) {
        final DiffSideView currentSide = myDiffPanel.myCurrentSide;
        if (currentSide != null) {
          return new DiffNavigatable(currentSide);
        }
      }

      return super.getData(dataId);
    }
 @Nullable
 public static DiffPanelImpl fromDataContext(DataContext dataContext) {
   DiffViewer viewer = PlatformDataKeys.DIFF_VIEWER.getData(dataContext);
   return viewer instanceof DiffPanelImpl ? (DiffPanelImpl) viewer : null;
 }