diff --git a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java index 527125019b49..6221b8867153 100644 --- a/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/editor/impl/CaretModelImpl.java @@ -264,7 +264,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, @Nullable @Override public Caret addCaret(@NotNull VisualPosition pos) { - myEditor.assertIsDispatchThread(); + EditorImpl.assertIsDispatchThread(); CaretImpl caret = new CaretImpl(myEditor); caret.moveToVisualPosition(pos, false); if (addCaret(caret)) { @@ -291,7 +291,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, @Override public boolean removeCaret(@NotNull Caret caret) { - myEditor.assertIsDispatchThread(); + EditorImpl.assertIsDispatchThread(); if (myCarets.size() <= 1 || !(caret instanceof CaretImpl)) { return false; } @@ -307,7 +307,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, @Override public void removeSecondaryCarets() { - myEditor.assertIsDispatchThread(); + EditorImpl.assertIsDispatchThread(); if (!supportsMultipleCarets()) { return; } @@ -329,7 +329,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, @Override public void runForEachCaret(@NotNull final CaretAction action, final boolean reverseOrder) { - myEditor.assertIsDispatchThread(); + EditorImpl.assertIsDispatchThread(); if (!supportsMultipleCarets()) { action.perform(getPrimaryCaret()); return; @@ -358,7 +358,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, @Override public void runBatchCaretOperation(@NotNull Runnable runnable) { - myEditor.assertIsDispatchThread(); + EditorImpl.assertIsDispatchThread(); doWithCaretMerging(runnable); } @@ -442,7 +442,7 @@ public class CaretModelImpl implements CaretModel, PrioritizedDocumentListener, @Override public void setCaretsAndSelections(@NotNull final List caretStates, final boolean updateSystemSelection) { - myEditor.assertIsDispatchThread(); + EditorImpl.assertIsDispatchThread(); if (caretStates.isEmpty()) { throw new IllegalArgumentException("At least one caret should exist"); } diff --git a/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java b/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java index 6099561c7283..26d9908c932c 100644 --- a/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java +++ b/platform/platform-impl/src/com/intellij/ui/TableExpandableItemsHandler.java @@ -23,6 +23,7 @@ import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; +import javax.swing.table.JTableHeader; import javax.swing.table.TableColumnModel; import javax.swing.table.TableModel; import java.awt.*; @@ -110,7 +111,8 @@ public class TableExpandableItemsHandler extends AbstractExpandableItemsHandler< public Pair getCellRendererAndBounds(TableCell key) { if (key.row < 0 || key.row >= myComponent.getRowCount() || key.column < 0 || key.column >= myComponent.getColumnCount() || - key.row == myComponent.getEditingRow() && key.column == myComponent.getEditingColumn()) { + key.row == myComponent.getEditingRow() && key.column == myComponent.getEditingColumn() || + hasDraggingOrResizingColumn()) { return null; } @@ -143,4 +145,9 @@ public class TableExpandableItemsHandler extends AbstractExpandableItemsHandler< return new TableCell(rowIndex, columnIndex); } + + private boolean hasDraggingOrResizingColumn() { + JTableHeader header = myComponent.getTableHeader(); + return header != null && (header.getResizingColumn() != null || header.getDraggedColumn() != null); + } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/roots/VcsRootProblemNotifier.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/roots/VcsRootProblemNotifier.java index c720834fa594..0bae5907771e 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/roots/VcsRootProblemNotifier.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/roots/VcsRootProblemNotifier.java @@ -37,7 +37,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.event.HyperlinkEvent; -import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; @@ -83,17 +82,16 @@ public class VcsRootProblemNotifier { return; } - Collection unregisteredRoots = getUnregisteredRoots(errors); - Collection important = getImportantMappings(unregisteredRoots); + Collection importantUnregisteredRoots = getImportantUnregisteredMappings(errors); Collection invalidRoots = getInvalidRoots(errors); - if (invalidRoots.isEmpty() && (important.isEmpty() || myReportedUnregisteredRoots.containsAll(important))) { + if (invalidRoots.isEmpty() && (importantUnregisteredRoots.isEmpty() || myReportedUnregisteredRoots.containsAll(importantUnregisteredRoots))) { return; } - myReportedUnregisteredRoots.addAll(unregisteredRoots); + myReportedUnregisteredRoots.addAll(importantUnregisteredRoots); - String title = makeTitle(unregisteredRoots, invalidRoots); - String description = makeDescription(unregisteredRoots, invalidRoots); + String title = makeTitle(importantUnregisteredRoots, invalidRoots); + String description = makeDescription(importantUnregisteredRoots, invalidRoots); synchronized (NOTIFICATION_LOCK) { expireNotification(); @@ -105,17 +103,6 @@ public class VcsRootProblemNotifier { } } - @NotNull - private List getImportantMappings(@NotNull Collection unregisteredRoots) { - return ContainerUtil.filter(unregisteredRoots, new Condition() { - @Override - public boolean value(VcsRootError error) { - String mapping = error.getMapping(); - return isUnderProjectDir(mapping) && !isIgnored(mapping); - } - }); - } - private boolean isUnderProjectDir(@NotNull String mapping) { return mapping.equals(VcsDirectoryMapping.PROJECT_CONSTANT) || FileUtil.isAncestor(myProject.getBasePath(), mapping, false); } @@ -207,24 +194,24 @@ public class VcsRootProblemNotifier { } @NotNull - private static Collection getUnregisteredRoots(@NotNull Collection errors) { - return filterErrorsByType(errors, VcsRootError.Type.UNREGISTERED_ROOT); + private List getImportantUnregisteredMappings(@NotNull Collection errors) { + return ContainerUtil.filter(errors, new Condition() { + @Override + public boolean value(VcsRootError error) { + String mapping = error.getMapping(); + return error.getType() == VcsRootError.Type.UNREGISTERED_ROOT && isUnderProjectDir(mapping) && !isIgnored(mapping); + } + }); } @NotNull private static Collection getInvalidRoots(@NotNull Collection errors) { - return filterErrorsByType(errors, VcsRootError.Type.EXTRA_MAPPING); - } - - @NotNull - private static Collection filterErrorsByType(@NotNull Collection errors, @NotNull VcsRootError.Type type) { - Collection roots = new ArrayList(); - for (VcsRootError error : errors) { - if (error.getType() == type) { - roots.add(error); + return ContainerUtil.filter(errors, new Condition() { + @Override + public boolean value(VcsRootError error) { + return error.getType() == VcsRootError.Type.EXTRA_MAPPING; } - } - return roots; + }); } private static class MyNotificationListener implements NotificationListener {