refactoring, cancel custom template by Escape

This commit is contained in:
Eugene Kudelevsky
2010-02-09 21:15:20 +03:00
parent bb0ad6306c
commit 86f3440d47
15 changed files with 29 additions and 24 deletions
@@ -65,7 +65,7 @@ public class CreateConstructorFromCallFix extends CreateFromUsageBaseFix {
editor.getCaretModel().moveToOffset(textRange.getStartOffset());
startTemplate(editor, template, project, new TemplateEditingAdapter() {
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
try {
@@ -108,7 +108,7 @@ public abstract class CreateConstructorFromThisOrSuperFix extends CreateFromUsag
editor.getCaretModel().moveToOffset(textRange.getStartOffset());
startTemplate(editor, template, project, new TemplateEditingAdapter() {
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
try {
@@ -166,7 +166,7 @@ public class CreateLocalVarFromInstanceofAction extends BaseIntentionAction {
newEditor.getDocument().deleteString(range.getStartOffset(), range.getEndOffset());
CreateFromUsageBaseFix.startTemplate(newEditor, template, project, new TemplateEditingAdapter() {
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument());
@@ -231,7 +231,7 @@ public class CreateMethodFromUsageFix extends CreateFromUsageBaseFix {
if (!shouldBeAbstract) {
startTemplate(newEditor, template, project, new TemplateEditingAdapter() {
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
PsiDocumentManager.getInstance(project).commitDocument(newEditor.getDocument());
@@ -145,7 +145,7 @@ public abstract class GenerateMembersHandlerBase implements CodeInsightActionHan
editor.getCaretModel().moveToOffset(offset);
editor.getScrollingModel().scrollToCaret(ScrollType.CENTER);
TemplateManager.getInstance(myProject).startTemplate(editor, template, new TemplateEditingAdapter() {
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
if (index + 1 < templates.size()){
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
@@ -141,7 +141,7 @@ public class TestIntegrationUtils {
if (!automatic) {
adapter = new TemplateEditingAdapter() {
@Override
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
PsiDocumentManager.getInstance(project).commitDocument(editor.getDocument());
@@ -67,7 +67,7 @@ public abstract class TemplateInsertHandler implements InsertHandler {
final RangeMarker offsetRangeMarker = document.createRangeMarker(templateStartOffset, templateStartOffset);
TemplateManager.getInstance(editor.getProject()).startTemplate(editor, template, new TemplateEditingAdapter() {
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
lookupItem.setAttribute(EXPANDED_TEMPLATE_ATTR, Boolean.TRUE);
if (!offsetRangeMarker.isValid()) return;
@@ -93,7 +93,8 @@ public class CustomTemplateCallback {
}
@Override
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
if (brokenOff) return;
templateFinished[0] = true;
if (templateEnded[0] && listener != null) {
listener.finished(true, true);
@@ -26,7 +26,7 @@ public abstract class TemplateEditingAdapter implements TemplateEditingListener
public void beforeTemplateFinished(final TemplateState state, final Template template) {
}
public void templateFinished(Template template) {
public void templateFinished(Template template, boolean brokenOff) {
}
public void templateCancelled(Template template) {
@@ -23,7 +23,7 @@ import com.intellij.codeInsight.template.impl.TemplateState;
*/
public interface TemplateEditingListener {
void beforeTemplateFinished(TemplateState state, Template template);
void templateFinished(Template template);
void templateFinished(Template template, boolean brokenOff);
void templateCancelled(Template template);
void currentVariableChanged(TemplateState templateState, Template template, int oldIndex, int newIndex);
void templateExpanded(Template template);
@@ -322,7 +322,7 @@ public class TemplateState implements Disposable {
int nextVariableNumber = getNextVariableNumber(-1);
if (nextVariableNumber == -1) {
finishTemplateEditing();
finishTemplateEditing(false);
}
else {
setCurrentVariableNumber(nextVariableNumber);
@@ -538,7 +538,7 @@ public class TemplateState implements Disposable {
final TextResult value = getVariableValue(variableName);
if (value != null && value.getText().length() > 0) {
if (!myProcessor.process(variableName, value.getText())) {
finishTemplateEditing(); // nextTab(); ?
finishTemplateEditing(false); // nextTab(); ?
return;
}
}
@@ -686,7 +686,7 @@ public class TemplateState implements Disposable {
reformat();
}
});
finishTemplateEditing();
finishTemplateEditing(false);
return;
}
focusCurrentHighlighter(false);
@@ -735,13 +735,17 @@ public class TemplateState implements Disposable {
};
}
public void gotoEnd() {
public void gotoEnd(boolean brokenOff) {
calcResults(false);
doReformat();
finishTemplateEditing();
finishTemplateEditing(brokenOff);
}
private void finishTemplateEditing() {
public void gotoEnd() {
gotoEnd(false);
}
private void finishTemplateEditing(boolean brokenOff) {
if (myTemplate == null) return;
LookupManager.getInstance(myProject).hideActiveLookup();
@@ -774,7 +778,7 @@ public class TemplateState implements Disposable {
setCurrentVariableNumber(-1);
currentVariableChanged(oldVar);
((TemplateManagerImpl)TemplateManager.getInstance(myProject)).clearTemplateState(editor);
fireTemplateFinished();
fireTemplateFinished(brokenOff);
myListeners.clear();
myProject = null;
}
@@ -992,12 +996,12 @@ public class TemplateState implements Disposable {
myListeners.add(listener);
}
private void fireTemplateFinished() {
private void fireTemplateFinished(boolean brokenOff) {
if (myFinished) return;
myFinished = true;
TemplateEditingListener[] listeners = myListeners.toArray(new TemplateEditingListener[myListeners.size()]);
for (TemplateEditingListener listener : listeners) {
listener.templateFinished(myTemplate);
listener.templateFinished(myTemplate, brokenOff);
}
}
@@ -36,7 +36,7 @@ public class EscapeHandler extends EditorActionHandler {
final TemplateState templateState = TemplateManagerImpl.getTemplateState(editor);
if (templateState != null && !templateState.isFinished()) {
CommandProcessor.getInstance().setCurrentCommandName(CodeInsightBundle.message("finish.template.command"));
templateState.gotoEnd();
templateState.gotoEnd(true);
return;
}
}
@@ -202,8 +202,8 @@ public class VariableInplaceRenamer {
}
@Override
public void templateFinished(Template template) {
super.templateFinished(template);
public void templateFinished(Template template, boolean brokenOff) {
super.templateFinished(template, brokenOff);
if (myNewName != null) {
performAutomaticRename(myNewName, PsiTreeUtil.getParentOfType(containingFile.findElementAt(renameOffset), PsiNameIdentifierOwner.class));
}
@@ -220,7 +220,7 @@ public class XmlTagInsertHandler implements InsertHandler<LookupElement> {
final boolean weInsertedSomeCodeThatCouldBeInvalidated1 = weInsertedSomeCodeThatCouldBeInvalidated;
templateManager.startTemplate(editor, template, new TemplateEditingAdapter() {
public void templateFinished(final Template template) {
public void templateFinished(final Template template, boolean brokenOff) {
final int offset = editor.getCaretModel().getOffset();
if (weInsertedSomeCodeThatCouldBeInvalidated1 &&
@@ -99,7 +99,7 @@ public class XmlTagInplaceRenamer {
final Template t = buildTemplate(tag, pair);
TemplateManager.getInstance(project).startTemplate(myEditor, t, new TemplateEditingAdapter() {
public void templateFinished(final Template template) {
public void templateFinished(final Template template, boolean brokenOff) {
finish();
}