From fa68ba048164587e6a33354beaf6852b5749d64a Mon Sep 17 00:00:00 2001 From: Eugene Vigdorchik Date: Mon, 21 Feb 2005 14:08:22 +0300 Subject: [PATCH] (no message) --- .../refactoring/BaseRefactoringProcessor.java | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/source/com/intellij/refactoring/BaseRefactoringProcessor.java b/source/com/intellij/refactoring/BaseRefactoringProcessor.java index 6df3003860ab..ff40820d5f30 100644 --- a/source/com/intellij/refactoring/BaseRefactoringProcessor.java +++ b/source/com/intellij/refactoring/BaseRefactoringProcessor.java @@ -139,7 +139,7 @@ public abstract class BaseRefactoringProcessor { LOG.assertTrue(usages[0] != null); if (!preprocessUsages(usages)) return; - ensureFilesWritable(usages[0]); + if (!myIsPreviewUsages) ensureFilesWritable(usages[0]); boolean toPreview = isPreviewUsages(usages[0]); if (toPreview) { FindUsagesCommand findUsagesCommand = new FindUsagesCommand() { @@ -174,7 +174,7 @@ public abstract class BaseRefactoringProcessor { public void run() { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() { - doRefactoring(usages, null); + doRefactoring(usages, new HashSet()); } }); } @@ -283,17 +283,12 @@ public abstract class BaseRefactoringProcessor { private void doRefactoring(UsageInfo[] usages, Set excludedUsages) { if (usages != null) { - ArrayList array = new ArrayList(); - for (int i = 0; i < usages.length; i++) { - UsageInfo usage = usages[i]; - if (excludedUsages != null && excludedUsages.contains(usage)) { - continue; - } - //if (usage.isExcluded()) continue; - final PsiElement element = usage.getElement(); - if (element == null) continue; - if (!element.isWritable()) continue; - array.add(usage); + ArrayList array = new ArrayList(Arrays.asList(usages)); + array.removeAll(excludedUsages); + + for (Iterator iterator = array.iterator(); iterator.hasNext();) { + final PsiElement element = iterator.next().getElement(); + if (element == null || !element.isWritable()) iterator.remove(); } usages = array.toArray(new UsageInfo[array.size()]); }