本文整理汇总了Java中com.intellij.openapi.command.undo.GlobalUndoableAction类的典型用法代码示例。如果您正苦于以下问题:Java GlobalUndoableAction类的具体用法?Java GlobalUndoableAction怎么用?Java GlobalUndoableAction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
GlobalUndoableAction类属于com.intellij.openapi.command.undo包,在下文中一共展示了GlobalUndoableAction类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: handleQualifiedNameChange
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
@Override
public void handleQualifiedNameChange(@NotNull final PsiPackage psiPackage, @NotNull final String newQualifiedName) {
ApplicationManager.getApplication().assertWriteAccessAllowed();
final String oldQualifedName = psiPackage.getQualifiedName();
final boolean anyChanged = changePackagePrefixes(psiPackage, oldQualifedName, newQualifiedName);
if (anyChanged) {
UndoManager.getInstance(psiPackage.getProject()).undoableActionPerformed(new GlobalUndoableAction() {
@Override
public void undo() {
changePackagePrefixes(psiPackage, newQualifiedName, oldQualifedName);
}
@Override
public void redo() {
changePackagePrefixes(psiPackage, oldQualifedName, newQualifiedName);
}
});
}
}
示例2: handleQualifiedNameChange
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
@Override
public void handleQualifiedNameChange(final PsiPackage psiPackage, final String newQualifiedName) {
ApplicationManager.getApplication().assertWriteAccessAllowed();
final String oldQualifedName = psiPackage.getQualifiedName();
final boolean anyChanged = changePackagePrefixes(psiPackage, oldQualifedName, newQualifiedName);
if (anyChanged) {
UndoManager.getInstance(psiPackage.getProject()).undoableActionPerformed(new GlobalUndoableAction() {
@Override
public void undo() {
changePackagePrefixes(psiPackage, newQualifiedName, oldQualifedName);
}
@Override
public void redo() {
changePackagePrefixes(psiPackage, oldQualifedName, newQualifiedName);
}
});
}
}
示例3: processAddOrRemove
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
public void processAddOrRemove(final AndroidDataSource dataSource, final boolean add) {
final Project project = myDbFacade.getProject();
final UndoableAction action = new GlobalUndoableAction() {
public void undo() throws UnexpectedUndoException {
if (add) {
removeDataSourceInner(project, dataSource);
}
else {
addDataSourceInner(project, dataSource);
}
}
public void redo() throws UnexpectedUndoException {
if (add) {
addDataSourceInner(project, dataSource);
}
else {
removeDataSourceInner(project, dataSource);
}
}
};
final String commandName = add ? DatabaseMessages.message("command.name.add.data.source")
: DatabaseMessages.message("command.name.remove.data.source");
new WriteCommandAction(project, commandName) {
protected void run(@NotNull final Result result) throws Throwable {
action.redo();
UndoManager.getInstance(project).undoableActionPerformed(action);
}
@Override
protected UndoConfirmationPolicy getUndoConfirmationPolicy() {
return UndoConfirmationPolicy.REQUEST_CONFIRMATION;
}
}.execute();
}
示例4: actionPerformed
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
public void actionPerformed(final AnActionEvent e) {
final Project project = getProject(e);
GlobalUndoableAction action = new GlobalUndoableAction() {
public void undo() throws UnexpectedUndoException {
}
public void redo() throws UnexpectedUndoException {
WorkingContextManager.getInstance(project).clearContext();
}
};
UndoableCommand.execute(project, action, "Clear context", "Context");
}
示例5: replaceInjectionsWithUndo
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
public static <T> void replaceInjectionsWithUndo(final Project project, final T add, final T remove,
final List<? extends PsiElement> psiElementsToRemove,
final PairProcessor<T, T> actualProcessor) {
final UndoableAction action = new GlobalUndoableAction() {
@Override
public void undo() {
actualProcessor.process(remove, add);
}
@Override
public void redo() {
actualProcessor.process(add, remove);
}
};
final List<PsiFile> psiFiles = ContainerUtil.mapNotNull(psiElementsToRemove, new NullableFunction<PsiElement, PsiFile>() {
@Override
public PsiFile fun(final PsiElement psiAnnotation) {
return psiAnnotation instanceof PsiCompiledElement ? null : psiAnnotation.getContainingFile();
}
});
new WriteCommandAction.Simple(project, "Language Injection Configuration Update", PsiUtilCore.toPsiFileArray(psiFiles)) {
@Override
public void run() {
for (PsiElement annotation : psiElementsToRemove) {
annotation.delete();
}
actualProcessor.process(add, remove);
UndoManager.getInstance(project).undoableActionPerformed(action);
}
@Override
protected UndoConfirmationPolicy getUndoConfirmationPolicy() {
return UndoConfirmationPolicy.REQUEST_CONFIRMATION;
}
}.execute();
}
示例6: replaceInjectionsWithUndo
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
public static <T> void replaceInjectionsWithUndo(final Project project, final T add, final T remove,
final List<? extends PsiElement> psiElementsToRemove,
final PairProcessor<T, T> actualProcessor) {
final UndoableAction action = new GlobalUndoableAction() {
public void undo() {
actualProcessor.process(remove, add);
}
public void redo() {
actualProcessor.process(add, remove);
}
};
final List<PsiFile> psiFiles = ContainerUtil.mapNotNull(psiElementsToRemove, new NullableFunction<PsiElement, PsiFile>() {
public PsiFile fun(final PsiElement psiAnnotation) {
return psiAnnotation instanceof PsiCompiledElement ? null : psiAnnotation.getContainingFile();
}
});
new WriteCommandAction.Simple(project, "Language Injection Configuration Update", PsiUtilCore.toPsiFileArray(psiFiles)) {
public void run() {
for (PsiElement annotation : psiElementsToRemove) {
annotation.delete();
}
actualProcessor.process(add, remove);
UndoManager.getInstance(project).undoableActionPerformed(action);
}
@Override
protected UndoConfirmationPolicy getUndoConfirmationPolicy() {
return UndoConfirmationPolicy.REQUEST_CONFIRMATION;
}
}.execute();
}
示例7: doOKAction
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
@Override
protected void doOKAction() {
super.doOKAction();
mySettings.setContainingClassName((String)myClassComboBox.getSelectedItem());
mySettings.setStatic(myStaticCheckBox.isSelected());
GrTypeElement typeElement = getEnteredTypeName();
if (typeElement == null) {
mySettings.setType(CommonClassNames.JAVA_LANG_OBJECT);
}
else {
PsiType type = typeElement.getType();
if (type instanceof PsiPrimitiveType) {
type = TypesUtil.boxPrimitiveType(type, typeElement.getManager(), ProjectScope.getAllScope(myProject));
}
final String typeQualifiedName = type.getCanonicalText();
if (typeQualifiedName != null) {
mySettings.setType(typeQualifiedName);
}
else {
mySettings.setType(type.getPresentableText());
}
}
final Document document = PsiDocumentManager.getInstance(myProject).getDocument(myContext.getContainingFile());
CommandProcessor.getInstance().executeCommand(myProject, new Runnable() {
@Override
public void run() {
UndoManager.getInstance(myProject).undoableActionPerformed(new GlobalUndoableAction(document) {
@Override
public void undo() throws UnexpectedUndoException {
final DItemElement itemElement;
if (mySettings.isMethod()) {
final List<ParamInfo> myPairList = mySettings.getParams();
final String[] argumentsTypes = QuickfixUtil.getArgumentsTypes(myPairList);
itemElement =
myDynamicManager.findConcreteDynamicMethod(mySettings.getContainingClassName(), mySettings.getName(), argumentsTypes);
}
else {
itemElement = myDynamicManager.findConcreteDynamicProperty(mySettings.getContainingClassName(), mySettings.getName());
}
if (itemElement == null) {
Messages.showWarningDialog(myProject, GroovyInspectionBundle.message("Cannot.perform.undo.operation"),
GroovyInspectionBundle.message("Undo.disable"));
return;
}
final DClassElement classElement = myDynamicManager.getClassElementByItem(itemElement);
if (classElement == null) {
Messages.showWarningDialog(myProject, GroovyInspectionBundle.message("Cannot.perform.undo.operation"),
GroovyInspectionBundle.message("Undo.disable"));
return;
}
removeElement(itemElement);
if (classElement.getMethods().isEmpty() && classElement.getProperties().isEmpty()) {
myDynamicManager.removeClassElement(classElement);
}
}
@Override
public void redo() throws UnexpectedUndoException {
addElement(mySettings);
}
});
addElement(mySettings);
}
}, "Add dynamic element", null);
}
示例8: doOKAction
import com.intellij.openapi.command.undo.GlobalUndoableAction; //导入依赖的package包/类
protected void doOKAction() {
super.doOKAction();
mySettings.setContainingClassName((String)myClassComboBox.getSelectedItem());
mySettings.setStatic(myStaticCheckBox.isSelected());
GrTypeElement typeElement = getEnteredTypeName();
if (typeElement == null) {
mySettings.setType(CommonClassNames.JAVA_LANG_OBJECT);
}
else {
PsiType type = typeElement.getType();
if (type instanceof PsiPrimitiveType) {
type = TypesUtil.boxPrimitiveType(type, typeElement.getManager(), ProjectScope.getAllScope(myProject));
}
final String typeQualifiedName = type.getCanonicalText();
if (typeQualifiedName != null) {
mySettings.setType(typeQualifiedName);
}
else {
mySettings.setType(type.getPresentableText());
}
}
final Document document = PsiDocumentManager.getInstance(myProject).getDocument(myContext.getContainingFile());
CommandProcessor.getInstance().executeCommand(myProject, new Runnable() {
public void run() {
UndoManager.getInstance(myProject).undoableActionPerformed(new GlobalUndoableAction(document) {
public void undo() throws UnexpectedUndoException {
final DItemElement itemElement;
if (mySettings.isMethod()) {
final List<ParamInfo> myPairList = mySettings.getParams();
final String[] argumentsTypes = QuickfixUtil.getArgumentsTypes(myPairList);
itemElement =
myDynamicManager.findConcreteDynamicMethod(mySettings.getContainingClassName(), mySettings.getName(), argumentsTypes);
}
else {
itemElement = myDynamicManager.findConcreteDynamicProperty(mySettings.getContainingClassName(), mySettings.getName());
}
if (itemElement == null) {
Messages.showWarningDialog(myProject, GroovyInspectionBundle.message("Cannot.perform.undo.operation"),
GroovyInspectionBundle.message("Undo.disable"));
return;
}
final DClassElement classElement = myDynamicManager.getClassElementByItem(itemElement);
if (classElement == null) {
Messages.showWarningDialog(myProject, GroovyInspectionBundle.message("Cannot.perform.undo.operation"),
GroovyInspectionBundle.message("Undo.disable"));
return;
}
removeElement(itemElement);
if (classElement.getMethods().size() == 0 && classElement.getProperties().size() == 0) {
myDynamicManager.removeClassElement(classElement);
}
}
public void redo() throws UnexpectedUndoException {
addElement(mySettings);
}
});
addElement(mySettings);
}
}, "Add dynamic element", null);
}