• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java DiffElement类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.intellij.ide.diff.DiffElement的典型用法代码示例。如果您正苦于以下问题:Java DiffElement类的具体用法?Java DiffElement怎么用?Java DiffElement使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



DiffElement类属于com.intellij.ide.diff包,在下文中一共展示了DiffElement类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: addChild

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public DTree addChild(@NotNull DiffElement element, boolean source) {
  init();
  myChildrenList = null;
  final DTree node;
  final String name = element.getName();
  if (myChildren.containsKey(name)) {
    node = myChildren.get(name);
  } else {
    node = new DTree(this, name, element.isContainer());
    myChildren.put(name, node);
  }

  if (source) {
    node.setSource(element);
  } else {
    node.setTarget(element);
  }

  return node;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:21,代码来源:DTree.java


示例2: addChild

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public DTree addChild(@Nonnull DiffElement element, boolean source) {
  init();
  myChildrenList = null;
  final DTree node;
  final String name = element.getName();
  if (myChildren.containsKey(name)) {
    node = myChildren.get(name);
  } else {
    node = new DTree(this, name, element.isContainer());
    myChildren.put(name, node);
  }

  if (source) {
    node.setSource(element);
  } else {
    node.setTarget(element);
  }

  return node;
}
 
开发者ID:consulo,项目名称:consulo,代码行数:21,代码来源:DTree.java


示例3: getOpenFileDescriptor

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
@Nullable
private OpenFileDescriptor getOpenFileDescriptor() {
  Project project = myModel.getProject();
  List<DirDiffElementImpl> elements = myModel.getSelectedElements();
  if (elements.isEmpty()) return null;
  DirDiffElement element = elements.get(0);
  DiffElement source = element.getSource();
  DiffElement target = element.getTarget();
  OpenFileDescriptor descriptor1 = source != null ? source.getOpenFileDescriptor(project) : null;
  OpenFileDescriptor descriptor2 = target != null ? target.getOpenFileDescriptor(project) : null;
  return descriptor2 != null ? descriptor2 : descriptor1;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:13,代码来源:DirDiffPanel.java


示例4: getOpenFileDescriptorsArray

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
@Nullable
private OpenFileDescriptor[] getOpenFileDescriptorsArray() {
  Project project = myModel.getProject();
  List<DirDiffElementImpl> elements = myModel.getSelectedElements();
  List<OpenFileDescriptor> descriptors = new ArrayList<OpenFileDescriptor>();
  for (DirDiffElementImpl element : elements) {
    DiffElement source = element.getSource();
    DiffElement target = element.getTarget();
    OpenFileDescriptor descriptor1 = source != null ? source.getOpenFileDescriptor(project) : null;
    OpenFileDescriptor descriptor2 = target != null ? target.getOpenFileDescriptor(project) : null;
    if (descriptor1 != null) descriptors.add(descriptor1);
    if (descriptor2 != null) descriptors.add(descriptor2);
  }
  return ContainerUtil.toArray(descriptors, new OpenFileDescriptor[descriptors.size()]);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:16,代码来源:DirDiffPanel.java


示例5: isEqual

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
private static boolean isEqual(DiffElement file1, DiffElement file2) {
  if (file1.isContainer() || file2.isContainer()) return false;
  if (file1.getSize() != file2.getSize()) return false;
  try {
    return Arrays.equals(file1.getContent(), file2.getContent());
  }
  catch (IOException e) {
    return false;
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:11,代码来源:DTree.java


示例6: getNavigatableArray

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
@Nullable
private Navigatable[] getNavigatableArray() {
  Project project = myModel.getProject();
  List<DirDiffElementImpl> elements = myModel.getSelectedElements();
  List<Navigatable> navigatables = new ArrayList<>();
  for (DirDiffElementImpl element : elements) {
    DiffElement source = element.getSource();
    DiffElement target = element.getTarget();
    Navigatable navigatable1 = source != null ? source.getNavigatable(project) : null;
    Navigatable navigatable2 = target != null ? target.getNavigatable(project) : null;
    if (navigatable1 != null) navigatables.add(navigatable1);
    if (navigatable2 != null) navigatables.add(navigatable2);
  }
  return toObjectArray(navigatables, Navigatable.class);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:16,代码来源:DirDiffPanel.java


示例7: loadRequest

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
@Nonnull
@Override
protected DiffRequest loadRequest(@Nonnull ElementWrapper element, @Nonnull ProgressIndicator indicator)
        throws ProcessCanceledException, DiffRequestProducerException {
  final Project project = myModel.getProject();
  DiffElement sourceElement = element.sourceElement;
  DiffElement targetElement = element.targetElement;

  DiffContent sourceContent = sourceElement != null ? sourceElement.createDiffContent(project, indicator) :
                              DiffContentFactory.getInstance().createEmpty();
  DiffContent targetContent = targetElement != null ? targetElement.createDiffContent(project, indicator) :
                              DiffContentFactory.getInstance().createEmpty();

  return new SimpleDiffRequest(null, sourceContent, targetContent, null, null);
}
 
开发者ID:consulo,项目名称:consulo,代码行数:16,代码来源:DirDiffPanel.java


示例8: update

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public void update(boolean force) {
  final Project project = myModel.getProject();
  final DirDiffElementImpl element = myModel.getElementAt(myTable.getSelectedRow());
  if (element == null) {
    clearDiffPanel();
    return;
  }
  if (!force
      && myCurrentElement != null
      && (myCurrentElement == element.getSource() || myCurrentElement == element.getTarget())) {
    return;
  }
  clearDiffPanel();
  if (element.getType() == DiffType.CHANGED) {
    try {
      myDiffPanelComponent = element.getSource().getDiffComponent(element.getTarget(), project, myDiffWindow.getWindow(), myModel);
    }
    catch (FilesTooBigForDiffException e) {
      // todo KB: check
      myDiffPanelComponent = null;
      myErrorLabel = new JLabel("Can not build diff for file " + element.getTarget().getPath() + ". File is too big and there are too many changes.");
    }
    if (myDiffPanelComponent != null) {
      myDiffPanel.add(myDiffPanelComponent, BorderLayout.CENTER);
      myCurrentElement = element.getSource();
    } else {
      myDiffPanel.add(getErrorLabel(), BorderLayout.CENTER);
    }
  } else {
    final DiffElement object;
    final DiffElement target;
    if (element.getType() == DiffType.ERROR) {
      object = element.getSource() == null ? element.getTarget() : element.getSource();
      target = element.getSource() == null ? element.getSource() : element.getTarget();
    } else {
      object = element.isSource() ? element.getSource() : element.getTarget();
      target = element.isSource() ? element.getTarget() : element.getSource();
    }
    myViewComponent = object.getViewComponent(project, target, myModel);

    if (myViewComponent != null) {
      myCurrentElement = object;
      myDiffPanel.add(myViewComponent, BorderLayout.CENTER);
      DataProvider dataProvider = myCurrentElement.getDataProvider(project);
      if (dataProvider != null) {
        DataManager.registerDataProvider(myDiffPanel, dataProvider);
      }
      else {
        DataManager.removeDataProvider(myDiffPanel);
      }
    } else {
      myDiffPanel.add(getErrorLabel(), BorderLayout.CENTER);
    }
  }
  myDiffPanel.revalidate();
  myDiffPanel.repaint();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:58,代码来源:DirDiffPanel.java


示例9: getSource

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public DiffElement<?> getSource() {
  return mySource;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:4,代码来源:DTree.java


示例10: setSource

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public void setSource(DiffElement<?> source) {
  mySource = source;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:4,代码来源:DTree.java


示例11: getTarget

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public DiffElement<?> getTarget() {
  return myTarget;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:4,代码来源:DTree.java


示例12: setTarget

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public void setTarget(DiffElement<?> target) {
  myTarget = target;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:4,代码来源:DTree.java


示例13: DirDiffViewer

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public DirDiffViewer(@NotNull DiffContext context, @NotNull ContentDiffRequest request) {
  myContext = context;
  myRequest = request;

  List<DiffContent> contents = request.getContents();
  DiffElement element1 = createDiffElement(contents.get(0));
  DiffElement element2 = createDiffElement(contents.get(1));

  Project project = context.getProject();
  if (project == null) project = DefaultProjectFactory.getInstance().getDefaultProject();

  DirDiffTableModel model = new DirDiffTableModel(project, element1, element2, new DirDiffSettings());

  myDirDiffPanel = new DirDiffPanel(model, new DirDiffWindow((DirDiffFrame)null) {
    @Override
    public Window getWindow() {
      return null;
    }

    @Override
    public Disposable getDisposable() {
      return DirDiffViewer.this;
    }

    @Override
    public void setTitle(String title) {
    }
  });

  myPanel = new JPanel(new BorderLayout());
  myPanel.add(myDirDiffPanel.getPanel(), BorderLayout.CENTER);
  DataManager.registerDataProvider(myPanel, new DataProvider() {
    @Override
    public Object getData(@NonNls String dataId) {
      if (PlatformDataKeys.HELP_ID.is(dataId)) {
        return "reference.dialogs.diff.folder";
      }
      return myDirDiffPanel.getData(dataId);
    }
  });
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:42,代码来源:DirDiffViewer.java


示例14: createDiffElement

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
@NotNull
private static DiffElement createDiffElement(@NotNull DiffContent content) {
  if (content instanceof EmptyContent) {
    return new DiffElement() {
      @Override
      public String getPath() {
        return "";
      }

      @NotNull
      @Override
      public String getName() {
        return "Nothing";
      }

      @Override
      public long getSize() {
        return -1;
      }

      @Override
      public long getTimeStamp() {
        return -1;
      }

      @Override
      public boolean isContainer() {
        return true;
      }

      @Override
      public DiffElement[] getChildren() throws IOException {
        return EMPTY_ARRAY;
      }

      @Nullable
      @Override
      public byte[] getContent() throws IOException {
        return null;
      }

      @Override
      public Object getValue() {
        return null;
      }
    };
  }
  if (content instanceof DirectoryContent) {
    return new VirtualFileDiffElement(((DirectoryContent)content).getFile());
  }
  if (content instanceof FileContent && content.getContentType() instanceof ArchiveFileType) {
    return new JarFileDiffElement(((FileContent)content).getFile());
  }
  throw new IllegalArgumentException(content.getClass() + " " + content.getContentType());
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:56,代码来源:DirDiffViewer.java


示例15: createDiffElement

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
@Nullable
public abstract DiffElement createDiffElement(Object obj);
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:3,代码来源:DirDiffManager.java


示例16: processCommand

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public void processCommand(String[] args, @Nullable String currentDirectory) throws OperationFailedException {
  final String path1 = args[1];
  final String path2 = args[2];
  final VirtualFile file1 = findFile(path1, currentDirectory);
  final VirtualFile file2 = findFile(path2, currentDirectory);
  final boolean areDirs = areDirs(file1, file2);
  final boolean areJars = areJars(file1, file2);
  if (areDirs || areJars) {
    final DirDiffManager diffManager = DirDiffManager.getInstance(ProjectManager.getInstance().getDefaultProject());
    final DiffElement d1 = diffManager.createDiffElement(file1);
    final DiffElement d2 = diffManager.createDiffElement(file2);
    if (d1 == null) {
      throw new OperationFailedException(DiffBundle.message("cannot.create.diff.error", path1));
    }
    if (d2 == null) {
      throw new OperationFailedException(DiffBundle.message("cannot.create.diff.error", path1));
    }
    else if (!diffManager.canShow(d1, d2)) {
      throw new OperationFailedException(DiffBundle.message("cannot.compare.error", path1, path2));
    }

    final DirDiffSettings settings = new DirDiffSettings();
    settings.showInFrame = false;
    diffManager.showDiff(d1, d2, settings, null);
  }
  else {
    file1.refresh(false, false);
    file2.refresh(false, false);

    if (file1.getFileType() == UnknownFileType.INSTANCE) {
      throw new OperationFailedException(DiffBundle.message("unknown.file.type.error", path1));
    }
    else if (file2.getFileType() == UnknownFileType.INSTANCE) {
      throw new OperationFailedException(DiffBundle.message("unknown.file.type.error", path2));
    }

    SimpleDiffRequest request = SimpleDiffRequest.compareFiles(file1, file2, ProjectManager.getInstance().getDefaultProject());
    request.addHint(DiffTool.HINT_SHOW_MODAL_DIALOG);
    DiffManager.getInstance().getIdeaDiffTool().show(request);
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:42,代码来源:DiffApplication.java


示例17: show

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public void show(final DiffRequest data) {
  final DiffContent current = data.getContents()[0];
  final DiffContent upToDate = data.getContents()[1];

  final Project project = data.getProject();
  if ((current instanceof FileContent && upToDate instanceof FileContent)
      || (current.getContentType() instanceof UIBasedFileType && upToDate.getContentType() instanceof UIBasedFileType)) {
    final VirtualFile src = current.getFile();
    final VirtualFile trg = upToDate.getFile();
    if (src != null && trg != null) {
      final PanelCreator creator = new PanelCreator(data);
      if (creator.isCanCreatePanel()) {
        new DialogWrapper(data.getProject()) {
          public DiffPanel myPanel;
          {
            setModal(false);
            init();
          }

          @Override
          protected String getDimensionServiceKey() {
            return "BinaryDiffDialog";
          }

          @NotNull
          @Override
          protected Action[] createActions() {
            final Action close = getCancelAction();
            close.putValue(Action.NAME, "&Close");
            return new Action[]{close};
          }

          @Override
          protected JComponent createCenterPanel() {
            myPanel = creator.create(getWindow(), getDisposable(), BinaryDiffTool.this);
            return myPanel.getComponent();
          }
        }.show();
        return;
      } else {
        final DirDiffManager diffManager = DirDiffManager.getInstance(project);
        final DiffElement before = diffManager.createDiffElement(src);
        final DiffElement after  = diffManager.createDiffElement(trg);

        if (before != null && after != null && diffManager.canShow(after, before)) {
          diffManager.showDiff(before, after);
          return;
        }
      }
    }
  }
  try {
    final boolean equal = Arrays.equals(current.getBytes(), upToDate.getBytes());
    Messages.showMessageDialog(equal
                               ? DiffBundle.message("binary.files.are.identical.message")
                               : DiffBundle.message("binary.files.are.different.message"),
                               equal
                               ? DiffBundle.message("files.are.identical.dialog.title")
                               : DiffBundle.message("files.are.different.dialog.title"),
                               Messages.getInformationIcon());
  } catch (IOException e) {
    LOG.error(e);
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:65,代码来源:BinaryDiffTool.java


示例18: processCommand

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public void processCommand(String[] args) throws OperationFailedException {
  final String path1 = args[1];
  final String path2 = args[2];
  final VirtualFile file1 = findFile(path1);
  final VirtualFile file2 = findFile(path2);
  final boolean areDirs = areDirs(file1, file2);
  final boolean areJars = areJars(file1, file2);
  if (areDirs || areJars) {
    final DirDiffManager diffManager = DirDiffManager.getInstance(ProjectManager.getInstance().getDefaultProject());
    final DiffElement d1 = diffManager.createDiffElement(file1);
    final DiffElement d2 = diffManager.createDiffElement(file2);
    if (d1 == null) {
      throw new OperationFailedException(DiffBundle.message("cannot.create.diff.error", path1));
    }
    if (d2 == null) {
      throw new OperationFailedException(DiffBundle.message("cannot.create.diff.error", path1));
    }
    else if (!diffManager.canShow(d1, d2)) {
      throw new OperationFailedException(DiffBundle.message("cannot.compare.error", path1, path2));
    }

    final DirDiffSettings settings = new DirDiffSettings();
    settings.showInFrame = false;
    diffManager.showDiff(d1, d2, settings, null);
  }
  else {
    file1.refresh(false, false);
    file2.refresh(false, false);

    if (file1.getFileType() == UnknownFileType.INSTANCE) {
      throw new OperationFailedException(DiffBundle.message("unknown.file.type.error", path1));
    }
    else if (file2.getFileType() == UnknownFileType.INSTANCE) {
      throw new OperationFailedException(DiffBundle.message("unknown.file.type.error", path2));
    }

    SimpleDiffRequest request = SimpleDiffRequest.compareFiles(file1, file2, ProjectManager.getInstance().getDefaultProject());
    request.addHint(DiffTool.HINT_SHOW_MODAL_DIALOG);
    DiffManager.getInstance().getIdeaDiffTool().show(request);
  }
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:42,代码来源:DiffApplication.java


示例19: DirDiffViewer

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
public DirDiffViewer(@Nonnull DiffContext context, @Nonnull ContentDiffRequest request) {
  myContext = context;
  myRequest = request;

  List<DiffContent> contents = request.getContents();
  DiffElement element1 = createDiffElement(contents.get(0));
  DiffElement element2 = createDiffElement(contents.get(1));

  Project project = context.getProject();
  if (project == null) project = DefaultProjectFactory.getInstance().getDefaultProject();

  DirDiffTableModel model = new DirDiffTableModel(project, element1, element2, new DirDiffSettings());

  myDirDiffPanel = new DirDiffPanel(model, new DirDiffWindow((DirDiffFrame)null) {
    @Override
    public Window getWindow() {
      return null;
    }

    @Override
    public Disposable getDisposable() {
      return DirDiffViewer.this;
    }

    @Override
    public void setTitle(String title) {
    }
  });

  myPanel = new JPanel(new BorderLayout());
  myPanel.add(myDirDiffPanel.getPanel(), BorderLayout.CENTER);
  DataManager.registerDataProvider(myPanel, new DataProvider() {
    @Override
    public Object getData(@Nonnull @NonNls Key dataId) {
      if (PlatformDataKeys.HELP_ID == dataId) {
        return "reference.dialogs.diff.folder";
      }
      return myDirDiffPanel.getData(dataId);
    }
  });
}
 
开发者ID:consulo,项目名称:consulo,代码行数:42,代码来源:DirDiffViewer.java


示例20: createDiffElement

import com.intellij.ide.diff.DiffElement; //导入依赖的package包/类
@Nonnull
private static DiffElement createDiffElement(@Nonnull DiffContent content) {
  if (content instanceof EmptyContent) {
    return new DiffElement() {
      @Override
      public String getPath() {
        return "";
      }

      @Nonnull
      @Override
      public String getName() {
        return "Nothing";
      }

      @Override
      public long getSize() {
        return -1;
      }

      @Override
      public long getTimeStamp() {
        return -1;
      }

      @Override
      public boolean isContainer() {
        return true;
      }

      @Override
      public DiffElement[] getChildren() throws IOException {
        return EMPTY_ARRAY;
      }

      @Nullable
      @Override
      public byte[] getContent() throws IOException {
        return null;
      }

      @Override
      public Object getValue() {
        return null;
      }
    };
  }
  if (content instanceof DirectoryContent) {
    return new VirtualFileDiffElement(((DirectoryContent)content).getFile());
  }
  if (content instanceof FileContent && content.getContentType() instanceof ArchiveFileType) {
    return new ArchiveFileDiffElement(((FileContent)content).getFile());
  }
  throw new IllegalArgumentException(content.getClass() + " " + content.getContentType());
}
 
开发者ID:consulo,项目名称:consulo,代码行数:56,代码来源:DirDiffViewer.java



注:本文中的com.intellij.ide.diff.DiffElement类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java MIMEType类代码示例发布时间:2022-05-16
下一篇:
Java XChart类代码示例发布时间:2022-05-16
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap