mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
leaks
This commit is contained in:
@@ -19,7 +19,10 @@
|
||||
*/
|
||||
package com.intellij.openapi.project;
|
||||
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.ide.highlighter.InternalFileType;
|
||||
import com.intellij.openapi.actionSystem.DataContext;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
@@ -36,6 +39,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.io.File;
|
||||
|
||||
public class ProjectUtil {
|
||||
@@ -134,4 +138,19 @@ public class ProjectUtil {
|
||||
if (fileType instanceof InternalFileType) return true;
|
||||
return file.getPath().contains("/"+ DIRECTORY_BASED_PROJECT_DIR +"/");
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Project guessCurrentProject(JComponent component) {
|
||||
Project project = null;
|
||||
Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
|
||||
if (openProjects.length > 0) project = openProjects[0];
|
||||
if (project == null) {
|
||||
DataContext dataContext = component == null ? DataManager.getInstance().getDataContext() : DataManager.getInstance().getDataContext(component);
|
||||
project = PlatformDataKeys.PROJECT.getData(dataContext);
|
||||
}
|
||||
if (project == null) {
|
||||
project = ProjectManager.getInstance().getDefaultProject();
|
||||
}
|
||||
return project;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-19
@@ -18,10 +18,8 @@ package com.intellij.application.options;
|
||||
import com.intellij.application.options.codeStyle.CodeStyleSchemesModel;
|
||||
import com.intellij.application.options.codeStyle.LanguageSelector;
|
||||
import com.intellij.codeStyle.CodeStyleFacade;
|
||||
import com.intellij.ide.DataManager;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.PlatformDataKeys;
|
||||
import com.intellij.openapi.application.ApplicationBundle;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.command.CommandProcessor;
|
||||
@@ -35,7 +33,7 @@ import com.intellij.openapi.editor.highlighter.EditorHighlighter;
|
||||
import com.intellij.openapi.editor.markup.*;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.project.ProjectUtil;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
@@ -183,7 +181,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
|
||||
|
||||
int currOffs = myEditor.getScrollingModel().getVerticalScrollOffset();
|
||||
|
||||
final Project finalProject = getCurrentProject();
|
||||
final Project finalProject = ProjectUtil.guessCurrentProject(getPanel());
|
||||
CommandProcessor.getInstance().executeCommand(finalProject, new Runnable() {
|
||||
public void run() {
|
||||
replaceText(finalProject);
|
||||
@@ -197,7 +195,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
|
||||
|
||||
private int getAdjustedRightMargin() {
|
||||
int result = getRightMargin();
|
||||
return result > 0 ? result : CodeStyleFacade.getInstance(getCurrentProject()).getRightMargin();
|
||||
return result > 0 ? result : CodeStyleFacade.getInstance(ProjectUtil.guessCurrentProject(getPanel())).getRightMargin();
|
||||
}
|
||||
|
||||
protected abstract int getRightMargin();
|
||||
@@ -294,19 +292,6 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
|
||||
return psiFile;
|
||||
}
|
||||
|
||||
protected Project getCurrentProject() {
|
||||
Project project = null;
|
||||
Project[] openProjects = ProjectManager.getInstance().getOpenProjects();
|
||||
if (openProjects.length > 0) project = openProjects[0];
|
||||
if (project == null) {
|
||||
project = PlatformDataKeys.PROJECT.getData(DataManager.getInstance().getDataContext(getPanel()));
|
||||
}
|
||||
if (project == null) {
|
||||
project = ProjectManager.getInstance().getDefaultProject();
|
||||
}
|
||||
return project;
|
||||
}
|
||||
|
||||
private void highlightChanges(Document beforeReformat) {
|
||||
if (mySkipPreviewHighlighting) {
|
||||
return;
|
||||
@@ -593,7 +578,7 @@ public abstract class CodeStyleAbstractPanel implements Disposable {
|
||||
}
|
||||
|
||||
public final void applyPredefinedSettings(@NotNull PredefinedCodeStyle codeStyle) {
|
||||
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(getCurrentProject()).clone();
|
||||
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(ProjectUtil.guessCurrentProject(getPanel())).clone();
|
||||
codeStyle.apply(settings);
|
||||
reset(settings);
|
||||
onSomethingChanged();
|
||||
|
||||
+3
-1
@@ -28,6 +28,7 @@ import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.fileTypes.FileTypeEditorHighlighterProviders;
|
||||
import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectUtil;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager;
|
||||
@@ -168,7 +169,8 @@ public abstract class MultilanguageCodeStyleAbstractPanel extends CodeStyleAbstr
|
||||
@Nullable
|
||||
protected EditorHighlighter createHighlighter(final EditorColorsScheme scheme) {
|
||||
FileType fileType = getFileType();
|
||||
return FileTypeEditorHighlighterProviders.INSTANCE.forFileType(fileType).getEditorHighlighter(getCurrentProject(), fileType, null, scheme);
|
||||
return FileTypeEditorHighlighterProviders.INSTANCE.forFileType(fileType).getEditorHighlighter(
|
||||
ProjectUtil.guessCurrentProject(getPanel()), fileType, null, scheme);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+2
-8
@@ -26,6 +26,7 @@ import com.intellij.openapi.diff.DiffPanel;
|
||||
import com.intellij.openapi.diff.ex.DiffPanelEx;
|
||||
import com.intellij.openapi.diff.ex.DiffPanelOptions;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.ExcludingTraversalPolicy;
|
||||
@@ -45,12 +46,6 @@ public class FileHistoryDialog extends HistoryDialog<FileHistoryDialogModel> {
|
||||
super(p, gw, f, doInit);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
myDiffPanel.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected FileHistoryDialogModel createModel(LocalHistoryFacade vcs) {
|
||||
return new EntireFileHistoryDialogModel(myProject, myGateway, vcs, myFile);
|
||||
@@ -58,10 +53,9 @@ public class FileHistoryDialog extends HistoryDialog<FileHistoryDialogModel> {
|
||||
|
||||
@Override
|
||||
protected Pair<JComponent, Dimension> createDiffPanel(JPanel root, ExcludingTraversalPolicy traversalPolicy) {
|
||||
myDiffPanel = DiffManager.getInstance().createDiffPanel(getFrame(), myProject);
|
||||
myDiffPanel = DiffManager.getInstance().createDiffPanel(getFrame(), myProject,this);
|
||||
DiffPanelOptions o = ((DiffPanelEx)myDiffPanel).getOptions();
|
||||
o.setRequestFocusOnNewContent(false);
|
||||
|
||||
return Pair.create((JComponent)myDiffPanel.getComponent(), null);
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,7 @@ public abstract class DiffElement<T> implements Disposable {
|
||||
return null;
|
||||
}
|
||||
if (request != null) {
|
||||
myDiffPanel = DiffManager.getInstance().createDiffPanel(parentWindow, project);
|
||||
myDiffPanel = DiffManager.getInstance().createDiffPanel(parentWindow, project,this);
|
||||
myDiffPanel.setRequestFocus(false);
|
||||
myDiffPanel.setDiffRequest(request);
|
||||
myDiffPanel.setTitle1(getName());
|
||||
|
||||
@@ -15,9 +15,11 @@
|
||||
*/
|
||||
package com.intellij.openapi.diff;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.editor.markup.MarkupEditorFilter;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
@@ -62,6 +64,9 @@ public abstract class DiffManager {
|
||||
|
||||
/**
|
||||
* @param window this window will be disposed, when user clicks on the line number
|
||||
* You must call Disposer.dispose() when done.
|
||||
* @deprecated use {@link #createDiffPanel(Window, Project, Disposable)} instead
|
||||
*/
|
||||
public abstract DiffPanel createDiffPanel(Window window, Project project);
|
||||
public abstract DiffPanel createDiffPanel(Window window, Project project, @NotNull Disposable parentDisposable);
|
||||
}
|
||||
|
||||
@@ -23,13 +23,14 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DialogBuilder {
|
||||
public class DialogBuilder implements Disposable {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.ui.DialogBuilder");
|
||||
|
||||
@NonNls public static final String REQUEST_FOCUS_ENABLED = "requestFocusEnabled";
|
||||
@@ -40,7 +41,6 @@ public class DialogBuilder {
|
||||
private String myDimensionServiceKey;
|
||||
private ArrayList<ActionDescriptor> myActions = null;
|
||||
private final MyDialogWrapper myDialogWrapper;
|
||||
private final ArrayList<Disposable> myDisposables = new ArrayList<Disposable>();
|
||||
private Runnable myCancelOperation = null;
|
||||
private Runnable myOkOperation = null;
|
||||
|
||||
@@ -54,10 +54,16 @@ public class DialogBuilder {
|
||||
|
||||
public DialogBuilder(Project project) {
|
||||
myDialogWrapper = new MyDialogWrapper(project, true);
|
||||
Disposer.register(myDialogWrapper.getDisposable(), this);
|
||||
}
|
||||
|
||||
public DialogBuilder(Component parent) {
|
||||
myDialogWrapper = new MyDialogWrapper(parent, true);
|
||||
Disposer.register(myDialogWrapper.getDisposable(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
}
|
||||
|
||||
private MyDialogWrapper showImpl(boolean isModal) {
|
||||
@@ -118,8 +124,8 @@ public class DialogBuilder {
|
||||
return closeAction;
|
||||
}
|
||||
|
||||
public void addDisposable(Disposable disposable) {
|
||||
myDisposables.add(disposable);
|
||||
public void addDisposable(@NotNull Disposable disposable) {
|
||||
Disposer.register(this, disposable);
|
||||
}
|
||||
|
||||
public void setButtonsAlignment(int alignment) {
|
||||
@@ -292,9 +298,6 @@ public class DialogBuilder {
|
||||
|
||||
public void dispose() {
|
||||
myPreferedFocusComponent = null;
|
||||
for (Disposable disposable : myDisposables) {
|
||||
Disposer.dispose(disposable);
|
||||
}
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,6 @@ public class DiffUtil {
|
||||
frameWrapper.setImage(ImageLoader.loadFromResource("/diff/Diff.png"));
|
||||
frameWrapper.setPreferredFocusedComponent(diffPanel.getPreferredFocusedComponent());
|
||||
frameWrapper.closeOnEsc();
|
||||
frameWrapper.addDisposable(diffPanel);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
+1
-8
@@ -22,7 +22,6 @@ import com.intellij.openapi.fileEditor.ex.FileEditorProviderManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -68,15 +67,9 @@ public class BinaryDiffTool implements DiffTool {
|
||||
return new Action[]{close};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dispose() {
|
||||
super.dispose();
|
||||
Disposer.dispose(myPanel);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JComponent createCenterPanel() {
|
||||
myPanel = DiffManager.getInstance().createDiffPanel(getWindow(), project);
|
||||
myPanel = DiffManager.getInstance().createDiffPanel(getWindow(), project,getDisposable());
|
||||
myPanel.setDiffRequest(data);
|
||||
myPanel.setTitle1(src.getPath());
|
||||
myPanel.setTitle2(trg.getPath());
|
||||
|
||||
+14
-7
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.openapi.diff.impl.external;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.diff.DiffManager;
|
||||
import com.intellij.openapi.diff.DiffPanel;
|
||||
@@ -26,10 +27,7 @@ import com.intellij.openapi.diff.impl.mergeTool.MergeTool;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.markup.MarkupEditorFilter;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.JDOMExternalizable;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.util.*;
|
||||
import com.intellij.util.config.*;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -120,6 +118,13 @@ public class DiffManagerImpl extends DiffManager implements JDOMExternalizable {
|
||||
return new DiffPanelImpl(window, project, true, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public DiffPanel createDiffPanel(Window window, Project project, @NotNull Disposable parentDisposable) {
|
||||
DiffPanel diffPanel = createDiffPanel(window, project);
|
||||
Disposer.register(parentDisposable, diffPanel);
|
||||
return diffPanel;
|
||||
}
|
||||
|
||||
public static DiffManagerImpl getInstanceEx() {
|
||||
return (DiffManagerImpl)DiffManager.getInstance();
|
||||
}
|
||||
@@ -151,10 +156,10 @@ public class DiffManagerImpl extends DiffManager implements JDOMExternalizable {
|
||||
|
||||
public AbstractProperty.AbstractPropertyContainer getProperties() { return myProperties; }
|
||||
|
||||
public static DiffPanel createDiffPanel(DiffRequest data, Window window) {
|
||||
static DiffPanel createDiffPanel(DiffRequest data, Window window, @NotNull Disposable parentDisposable) {
|
||||
DiffPanel diffPanel = null;
|
||||
try {
|
||||
diffPanel = DiffManager.getInstance().createDiffPanel(window, data.getProject());
|
||||
diffPanel = DiffManager.getInstance().createDiffPanel(window, data.getProject(), parentDisposable);
|
||||
int contentCount = data.getContents().length;
|
||||
LOG.assertTrue(contentCount == 2, String.valueOf(contentCount));
|
||||
LOG.assertTrue(data.getContentTitles().length == contentCount);
|
||||
@@ -162,7 +167,9 @@ public class DiffManagerImpl extends DiffManager implements JDOMExternalizable {
|
||||
return diffPanel;
|
||||
}
|
||||
catch (RuntimeException e) {
|
||||
if (diffPanel != null) diffPanel.dispose();
|
||||
if (diffPanel != null) {
|
||||
Disposer.dispose(diffPanel);
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
+17
-15
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.openapi.diff.impl.external;
|
||||
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.CustomShortcutSet;
|
||||
@@ -22,13 +23,15 @@ import com.intellij.openapi.diff.*;
|
||||
import com.intellij.openapi.diff.impl.ComparisonPolicy;
|
||||
import com.intellij.openapi.diff.impl.DiffPanelImpl;
|
||||
import com.intellij.openapi.diff.impl.DiffUtil;
|
||||
import com.intellij.openapi.ui.FrameWrapper;
|
||||
import com.intellij.openapi.keymap.KeymapManager;
|
||||
import com.intellij.openapi.ui.DialogBuilder;
|
||||
import com.intellij.openapi.ui.FrameWrapper;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.ex.MessagesEx;
|
||||
import com.intellij.openapi.util.Comparing;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -45,10 +48,9 @@ class FrameDiffTool implements DiffTool {
|
||||
boolean shouldOpenDialog = shouldOpenDialog(hints);
|
||||
if (shouldOpenDialog) {
|
||||
final DialogBuilder builder = new DialogBuilder(request.getProject());
|
||||
DiffPanelImpl diffPanel = createDiffPanelIfShouldShow(request, builder.getWindow());
|
||||
DiffPanelImpl diffPanel = createDiffPanelIfShouldShow(request, builder.getWindow(), builder);
|
||||
if (diffPanel == null) return;
|
||||
builder.setCenterPanel(diffPanel.getComponent());
|
||||
builder.addDisposable(diffPanel);
|
||||
builder.setPreferedFocusComponent(diffPanel.getPreferredFocusedComponent());
|
||||
builder.removeAllActions();
|
||||
builder.setTitle(request.getWindowTitle());
|
||||
@@ -61,9 +63,10 @@ class FrameDiffTool implements DiffTool {
|
||||
}.registerCustomShortcutSet(new CustomShortcutSet(KeymapManager.getInstance().getActiveKeymap().getShortcuts("CloseContent")),
|
||||
diffPanel.getComponent());
|
||||
showDiffDialog(builder, hints);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
final FrameWrapper frameWrapper = new FrameWrapper(request.getProject(), request.getGroupKey());
|
||||
DiffPanelImpl diffPanel = createDiffPanelIfShouldShow(request, frameWrapper.getFrame());
|
||||
DiffPanelImpl diffPanel = createDiffPanelIfShouldShow(request, frameWrapper.getFrame(), frameWrapper);
|
||||
if (diffPanel == null) return;
|
||||
frameWrapper.setTitle(request.getWindowTitle());
|
||||
DiffUtil.initDiffFrame(frameWrapper, diffPanel);
|
||||
@@ -80,10 +83,10 @@ class FrameDiffTool implements DiffTool {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static DiffPanelImpl createDiffPanelIfShouldShow(DiffRequest request, Window window) {
|
||||
DiffPanelImpl diffPanel = (DiffPanelImpl)DiffManagerImpl.createDiffPanel(request, window);
|
||||
private static DiffPanelImpl createDiffPanelIfShouldShow(DiffRequest request, Window window, @NotNull Disposable parentDisposable) {
|
||||
DiffPanelImpl diffPanel = (DiffPanelImpl)DiffManagerImpl.createDiffPanel(request, window, parentDisposable);
|
||||
if (checkNoDifferenceAndNotify(diffPanel, request, window)) {
|
||||
diffPanel.dispose();
|
||||
Disposer.dispose(diffPanel);
|
||||
diffPanel = null;
|
||||
}
|
||||
return diffPanel;
|
||||
@@ -106,11 +109,12 @@ class FrameDiffTool implements DiffTool {
|
||||
if (!Comparing.equal(manager.getComparisonPolicy(), ComparisonPolicy.DEFAULT)) {
|
||||
ComparisonPolicy oldPolicy = manager.getComparisonPolicy();
|
||||
manager.setComparisonPolicy(ComparisonPolicy.DEFAULT);
|
||||
DiffPanel maybeDiffPanel = DiffManagerImpl.createDiffPanel(data, window);
|
||||
Disposable parentDisposable = Disposer.newDisposable();
|
||||
DiffPanel maybeDiffPanel = DiffManagerImpl.createDiffPanel(data, window, parentDisposable);
|
||||
manager.setComparisonPolicy(oldPolicy);
|
||||
|
||||
boolean hasDiffs = maybeDiffPanel.hasDifferences();
|
||||
maybeDiffPanel.dispose();
|
||||
Disposer.dispose(parentDisposable);
|
||||
|
||||
if (hasDiffs) return false;
|
||||
}
|
||||
@@ -131,11 +135,9 @@ class FrameDiffTool implements DiffTool {
|
||||
MessagesEx.error(data.getProject(), e.getMessage()).showNow();
|
||||
return false;
|
||||
}
|
||||
String message;
|
||||
if (Arrays.equals(bytes1, bytes2))
|
||||
message = DiffBundle.message("diff.contents.are.identical.message.text");
|
||||
else
|
||||
message = DiffBundle.message("diff.contents.have.differences.only.in.line.separators.message.text");
|
||||
String message = Arrays.equals(bytes1, bytes2)
|
||||
? DiffBundle.message("diff.contents.are.identical.message.text")
|
||||
: DiffBundle.message("diff.contents.have.differences.only.in.line.separators.message.text");
|
||||
Messages.showInfoMessage(data.getProject(), message, DiffBundle.message("no.differences.dialog.title"));
|
||||
return false;
|
||||
//return Messages.showDialog(data.getProject(), message + "\nShow diff anyway?", "No Differences", new String[]{"Yes", "No"}, 1,
|
||||
|
||||
+1
-2
@@ -537,14 +537,13 @@ public class FileDocumentManagerImpl extends FileDocumentManager implements Appl
|
||||
request.setContentTitles(UIBundle.message("file.cache.conflict.diff.content.file.system.content"),
|
||||
UIBundle.message("file.cache.conflict.diff.content.memory.content"));
|
||||
DialogBuilder diffBuilder = new DialogBuilder(project);
|
||||
DiffPanelImpl diffPanel = (DiffPanelImpl)DiffManager.getInstance().createDiffPanel(diffBuilder.getWindow(), project);
|
||||
DiffPanelImpl diffPanel = (DiffPanelImpl)DiffManager.getInstance().createDiffPanel(diffBuilder.getWindow(), project,diffBuilder);
|
||||
diffPanel.getOptions().setShowSourcePolicy(DiffPanelOptions.ShowSourcePolicy.DONT_SHOW);
|
||||
diffBuilder.setCenterPanel(diffPanel.getComponent());
|
||||
diffPanel.setDiffRequest(request);
|
||||
diffBuilder.addOkAction().setText(UIBundle.message("file.cache.conflict.save.changes.button"));
|
||||
diffBuilder.addCancelAction();
|
||||
diffBuilder.setTitle(windowtitle);
|
||||
diffBuilder.addDisposable(diffPanel);
|
||||
if (diffBuilder.show() == DialogWrapper.OK_EXIT_CODE) {
|
||||
builder.getDialogWrapper().close(DialogWrapper.CANCEL_EXIT_CODE);
|
||||
}
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ import javax.swing.*;
|
||||
* Time: 3:13 PM
|
||||
*/
|
||||
public abstract class AbstractRefreshablePanel<T> implements RefreshablePanel {
|
||||
private final static Logger LOG = Logger.getInstance("#com.intellij.openapi.vcs.changes.AbstractRefreshablePanel");
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.openapi.vcs.changes.AbstractRefreshablePanel");
|
||||
private final Ticket myTicket;
|
||||
private final DetailsPanel myDetailsPanel;
|
||||
private final GenericDetailsLoader<Ticket, T> myDetailsLoader;
|
||||
|
||||
@@ -128,7 +128,7 @@ public class VcsChangeDetailsManager {
|
||||
myRequestFromChange = new BinaryDiffRequestFromChange(myProject);
|
||||
myChangeListManager = ChangeListManager.getInstance(myProject);
|
||||
|
||||
myPanel = DiffManager.getInstance().createDiffPanel(null, myProject);
|
||||
myPanel = DiffManager.getInstance().createDiffPanel(null, myProject,this);
|
||||
myPanel.enableToolbar(false);
|
||||
myPanel.removeStatusBar();
|
||||
DiffPanelOptions o = ((DiffPanelEx)myPanel).getOptions();
|
||||
@@ -188,7 +188,6 @@ public class VcsChangeDetailsManager {
|
||||
|
||||
@Override
|
||||
protected void disposeImpl() {
|
||||
Disposer.dispose(myPanel);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -69,14 +69,14 @@ public class VcsHistoryDialog extends DialogWrapper implements DataProvider {
|
||||
private final DiffPanel myDiffPanel;
|
||||
private final Project myProject;
|
||||
|
||||
private final static ColumnInfo REVISION = new ColumnInfo(VcsBundle.message("column.name.revision.version")) {
|
||||
private static final ColumnInfo REVISION = new ColumnInfo(VcsBundle.message("column.name.revision.version")) {
|
||||
public Object valueOf(Object object) {
|
||||
return ((VcsFileRevision)object).getRevisionNumber();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private final static ColumnInfo DATE = new ColumnInfo(VcsBundle.message("column.name.revision.list.date")) {
|
||||
private static final ColumnInfo DATE = new ColumnInfo(VcsBundle.message("column.name.revision.list.date")) {
|
||||
public Object valueOf(Object object) {
|
||||
Date date = ((VcsFileRevision)object).getRevisionDate();
|
||||
if (date == null) return "";
|
||||
@@ -85,21 +85,21 @@ public class VcsHistoryDialog extends DialogWrapper implements DataProvider {
|
||||
|
||||
};
|
||||
|
||||
private final static ColumnInfo MESSAGE = new ColumnInfo(VcsBundle.message("column.name.revision.list.message")) {
|
||||
private static final ColumnInfo MESSAGE = new ColumnInfo(VcsBundle.message("column.name.revision.list.message")) {
|
||||
public Object valueOf(Object object) {
|
||||
return ((VcsFileRevision)object).getCommitMessage();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private final static ColumnInfo AUTHOR = new ColumnInfo(VcsBundle.message("column.name.revision.list.author")) {
|
||||
private static final ColumnInfo AUTHOR = new ColumnInfo(VcsBundle.message("column.name.revision.list.author")) {
|
||||
public Object valueOf(Object object) {
|
||||
return ((VcsFileRevision)object).getAuthor();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private final static ColumnInfo[] COLUMNS = new ColumnInfo[]{REVISION, DATE, AUTHOR, MESSAGE};
|
||||
private static final ColumnInfo[] COLUMNS = new ColumnInfo[]{REVISION, DATE, AUTHOR, MESSAGE};
|
||||
|
||||
private final TableView myList;
|
||||
protected final List<VcsFileRevision> myRevisions;
|
||||
@@ -139,7 +139,7 @@ public class VcsHistoryDialog extends DialogWrapper implements DataProvider {
|
||||
|
||||
myList.getEmptyText().setText(VcsBundle.message("history.empty"));
|
||||
|
||||
myDiffPanel = DiffManager.getInstance().createDiffPanel(getWindow(), myProject);
|
||||
myDiffPanel = DiffManager.getInstance().createDiffPanel(getWindow(), myProject,getDisposable());
|
||||
|
||||
myRevisions.addAll(session.getRevisionList());
|
||||
final VcsRevisionNumber currentRevisionNumber = session.getCurrentRevisionNumber();
|
||||
@@ -315,7 +315,6 @@ public class VcsHistoryDialog extends DialogWrapper implements DataProvider {
|
||||
|
||||
public synchronized void dispose() {
|
||||
myIsDisposed = true;
|
||||
myDiffPanel.dispose();
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user