PushDialog: undo action supported for sync target editing; appropriate ISE fixed

This commit is contained in:
Nadya Zabrodina
2015-04-14 17:04:25 +04:00
parent b98aa8ed5b
commit 233ead98d3
@@ -17,6 +17,7 @@ package git4idea.push;
import com.intellij.dvcs.push.PushTargetPanel;
import com.intellij.dvcs.push.ui.*;
import com.intellij.openapi.command.undo.UndoConstants;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.event.DocumentAdapter;
@@ -53,10 +54,7 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.*;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.*;
import java.text.ParseException;
import java.util.Comparator;
import java.util.List;
@@ -130,6 +128,8 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
}
}
});
//record undo only in active edit mode and set to ignore by default
myTargetEditor.getDocument().putUserData(UndoConstants.DONT_RECORD_UNDO, Boolean.TRUE);
}
private void updateComponents(@Nullable GitPushTarget target) {
@@ -399,6 +399,14 @@ public class GitPushTargetPanel extends PushTargetPanel<GitPushTarget> {
processActiveUserChanges(listener);
}
});
myTargetEditor.addHierarchyListener(new HierarchyListener() {
@Override
public void hierarchyChanged(HierarchyEvent e) {
if ((e.getChangeFlags() & HierarchyEvent.SHOWING_CHANGED) != 0) {
myTargetEditor.getDocument().putUserData(UndoConstants.DONT_RECORD_UNDO, !myTargetEditor.isShowing());
}
}
});
}
private void processActiveUserChanges(@NotNull PushTargetEditorListener listener) {