本文整理汇总了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;未经允许,请勿转载。 |
请发表评论