mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
zx
This commit is contained in:
+1
-1
@@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2000-2004 by JetBrains s.r.o. All Rights Reserved.
|
||||
* Use is subject to license terms.
|
||||
*/
|
||||
package com.intellij.openapi.vcs.ui;
|
||||
package com.intellij.util.ui;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.DialogWrapper;
|
||||
@@ -13,7 +13,7 @@ import com.intellij.cvsSupport2.cvsoperations.cvsAdd.ui.AbstractAddOptionsDialog
|
||||
import com.intellij.cvsSupport2.ui.Options;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
|
||||
|
||||
@@ -10,8 +10,9 @@ import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.FilePath;
|
||||
import com.intellij.openapi.vcs.actions.VcsContext;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.openapi.vcs.ui.ReplaceFileConfirmationDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.intellij.cvsSupport2.cvshandlers.CvsHandler;
|
||||
import com.intellij.cvsSupport2.cvsoperations.cvsEdit.ui.EditOptionsDialog;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.openapi.vcs.actions.VcsContext;
|
||||
|
||||
/**
|
||||
|
||||
+2
-1
@@ -9,7 +9,8 @@ import com.intellij.cvsSupport2.ui.Options;
|
||||
import com.intellij.cvsSupport2.CvsUtil;
|
||||
import com.intellij.cvsSupport2.cvsoperations.cvsRemove.ui.AbstractDeleteConfirmationDialog;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
||||
+2
-1
@@ -6,7 +6,8 @@ import com.intellij.cvsSupport2.cvsoperations.cvsAdd.AddedFileInfo;
|
||||
import com.intellij.cvsSupport2.ui.Options;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Collection;
|
||||
|
||||
+2
-1
@@ -5,8 +5,9 @@ import com.intellij.cvsSupport2.cvsoperations.cvsTagOrBranch.TagsProviderOnVirtu
|
||||
import com.intellij.cvsSupport2.cvsoperations.dateOrRevision.ui.DateOrRevisionOrTagSettings;
|
||||
import com.intellij.cvsSupport2.cvsoperations.dateOrRevision.ui.DateOrRevisionOrTagSettings;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.openapi.vcs.FilePath;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Collection;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.intellij.cvsSupport2.cvsoperations.cvsEdit.ui;
|
||||
|
||||
import com.intellij.cvsSupport2.config.CvsConfiguration;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.intellij.cvsSupport2.ui;
|
||||
|
||||
import com.intellij.cvsSupport2.config.CvsApplicationLevelConfiguration;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ package com.intellij.debugger.ui;
|
||||
import com.intellij.debugger.impl.DebuggerSession;
|
||||
import com.intellij.debugger.settings.DebuggerSettings;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.table.DefaultTableModel;
|
||||
|
||||
@@ -43,7 +43,7 @@ import com.intellij.openapi.vcs.checkin.VcsOperation;
|
||||
import com.intellij.openapi.vcs.fileView.impl.FileViewPanel;
|
||||
import com.intellij.openapi.vcs.ui.CheckinDialog;
|
||||
import com.intellij.openapi.vcs.ui.CheckinFileDialog;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.openapi.vcs.ui.Refreshable;
|
||||
import com.intellij.openapi.vcs.ui.impl.CheckinProjectPanelImpl;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
|
||||
@@ -31,38 +31,59 @@
|
||||
*/
|
||||
package com.intellij.openapi.vcs.readOnlyHandler;
|
||||
|
||||
import com.intellij.ide.IdeEventQueue;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.components.ProjectComponent;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.DefaultJDOMExternalizer;
|
||||
import com.intellij.openapi.util.InvalidDataException;
|
||||
import com.intellij.openapi.util.JDOMExternalizable;
|
||||
import com.intellij.openapi.util.WriteExternalException;
|
||||
import com.intellij.openapi.vfs.ReadonlyStatusHandler;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ide.IdeEventQueue;
|
||||
import org.jdom.Element;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class ReadonlyStatusHandlerImpl extends ReadonlyStatusHandler implements ProjectComponent{
|
||||
public class ReadonlyStatusHandlerImpl extends ReadonlyStatusHandler implements ProjectComponent, JDOMExternalizable{
|
||||
private final Project myProject;
|
||||
|
||||
public boolean SHOW_DIALOG;
|
||||
|
||||
public ReadonlyStatusHandlerImpl(Project project) {
|
||||
myProject = project;
|
||||
}
|
||||
|
||||
public OperationStatus ensureFilesWritable(VirtualFile[] files) {
|
||||
ApplicationManager.getApplication().assertIsDispatchThread();
|
||||
if (files.length == 0) return new OperationStatus(VirtualFile.EMPTY_ARRAY, VirtualFile.EMPTY_ARRAY);
|
||||
|
||||
long[] modificationStamps = new long[files.length];
|
||||
for (int i = 0; i < files.length; i++) {
|
||||
modificationStamps[i] = files[i].getModificationStamp();
|
||||
}
|
||||
final FileInfo[] fileInfos = createFileInfos(files);
|
||||
if (files.length == 0) return new OperationStatus(VirtualFile.EMPTY_ARRAY, VirtualFile.EMPTY_ARRAY);
|
||||
|
||||
Runnable handleAction = new Runnable() {
|
||||
public void run() {
|
||||
if (SHOW_DIALOG) {
|
||||
HandleReadOnlyStatusDialog dialog = new HandleReadOnlyStatusDialog(myProject, fileInfos);
|
||||
dialog.show();
|
||||
} else {
|
||||
for (int i = 0; i < fileInfos.length; i++) {
|
||||
fileInfos[i].handle();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
ApplicationManager.getApplication().assertIsDispatchThread();
|
||||
|
||||
|
||||
// This event count hack is necessary to allow actions that called this stuff could still get data from their data contexts.
|
||||
// Otherwise data manager stuff will fire up an assertion saying that event count has been changed (due to modal dialog show-up)
|
||||
// The hack itself is safe since we guarantee that focus will return to the same component had it before modal dialog have been shown.
|
||||
int savedEventCount = IdeEventQueue.getInstance().getEventCount();
|
||||
HandleReadOnlyStatusDialog dialog = new HandleReadOnlyStatusDialog(myProject, createFileInfos(files));
|
||||
dialog.show();
|
||||
handleAction.run();
|
||||
IdeEventQueue.getInstance().setEventCount(savedEventCount);
|
||||
|
||||
List<VirtualFile> readOnlyFiles = new ArrayList<VirtualFile>();
|
||||
@@ -106,4 +127,12 @@ public class ReadonlyStatusHandlerImpl extends ReadonlyStatusHandler implements
|
||||
|
||||
public void disposeComponent() {
|
||||
}
|
||||
|
||||
public void readExternal(Element element) throws InvalidDataException {
|
||||
DefaultJDOMExternalizer.readExternal(this, element);
|
||||
}
|
||||
|
||||
public void writeExternal(Element element) throws WriteExternalException {
|
||||
DefaultJDOMExternalizer.writeExternal(this, element);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ import com.intellij.openapi.vcs.VcsException;
|
||||
import com.intellij.openapi.vcs.actions.AbstractVcsAction;
|
||||
import com.intellij.openapi.vcs.actions.VcsContext;
|
||||
import com.intellij.openapi.vcs.ex.ProjectLevelVcsManagerEx;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.openapi.vfs.VfsUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFileManager;
|
||||
import com.intellij.openapi.wm.ToolWindowId;
|
||||
@@ -55,6 +55,7 @@ import com.intellij.peer.PeerFactory;
|
||||
import com.intellij.ui.content.Content;
|
||||
import com.intellij.ui.content.ContentManager;
|
||||
import com.intellij.util.concurrency.Semaphore;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.vcsUtil.VcsUtil;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -35,7 +35,8 @@ import com.intellij.openapi.options.Configurable;
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.vcs.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
import com.intellij.util.ui.OptionsDialog;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
Reference in New Issue
Block a user